Executando verificação de segurança...
91

🍊 O programador Chaves

Se você já assistiu a série Chaves (El Chavo del Ocho - México), deve se lembrar do episódio, onde o Professor Girafales faz uma pergunta ao Chaves:

Se eu tenho 4 laranjas, e como uma, quantas me restam ?

O Chaves enrola, dizendo que é muito fácil, e no final diz que só sabe fazer essa conta com Maças. Eu já assisti umas 100 vezes, e sempre dou risada. Mas o que isso tem a ver com tecnologia, especificamente programação ?

O meu objetivo com este post é mostrar os perigos de estudar programação da forma errada. Sigam me os bons!

⚠️ Não faça como o Chaves

Se você está começando a estudar programação, ou já tem um bom tempo nisso, com certeza já ouviu coisas como: "Você só vai aprender praticando" ou "Sem praticar você não vai aprender". Eu concordo 100%, inclusive muitas pessoas fazem a seguinte analogia:

Se você quer aprender a andar de skate, não basta assistir 500 horas de vídeos sobre Andar de Skate no Youtube. Você tem que praticar.

E realmente isso é realidade na programação. Mas tem um ponto que me incomoda. As pessoas enfatizam a prática, e deixam um pouco de lado a teoria. E isso pode ser perigoso.

⛸️ Voltando a analogia do Skate, você então decide andar muito de skate, em uma rua plana e obviamente irá cair várias vezes, o que é normal. O problema é quando queda após queda, você não enxerga nenhuma melhora, mas continua praticando. Você desconsidera aprender coisas como o espaçamento entre os pés no skate, a curvatura do seu tronco, o posicionamento dos seus braços, entre outros fatores que influenciam uma queda do skate.

Depois de muitas tentativas, você finalmente consegue se manter em cima do skate com frequência, ou seja, aprendeu a andar.

👨‍💻 Esse comportamento também acontece quando estamos aprendendo a programar. Como todo mundo só fala em praticar, você deixa de lado a teoria, e começa a fazer site atrás de site, sem pensar muito em como está fazendo, mas sim no resultado final. Por exemplo, ao tentar centralizar um título na tela (pensando no aprendizado em programação web inicial com HTML e CSS), você começa a chutar propriedades e valores, na esperança de dar certo. Até que finalmente, depois de muitos chutes, com uma gambiarra, você consegue centralizar, e na sua cabeça, você acredita que aprendeu a fazer isto.

O problema é que se o contexto for um pouco alterado, e você tentar centralizar vários itens em um formulário por exemplo, você terá que chutar tudo de novo. Ou seja, você aprendeu a centralizar em um contexto muito específico. Você só sabe centralizar se for um parágrafo dentro de uma div. Se for algo diferente disto, já não consegue. É como o Skatista, que acredita que aprendeu a andar, mas se você mudar um pouco o skate, e o lugar onde ele anda, ele volta a cair. E é como o Chaves: Aprendeu a subtrair em um contexto com Maças, mas quando mudou um ponto, já não foi capaz. Você se tornou inflexível, aprendeu algo apenas no seu ambiente controlado.

Quando estiver aprendendo um recurso de uma linguagem, ou um novo framework, ou uma lib, busque entender o objetivo disto, e como realmente funciona. Tente escrever com suas palavras o que você entendeu sobre o recurso. Tire suas próprias conclusões sobre o tema. E claro, pratique. Irá levar um pouco mais de tempo para você prosseguir nos estudos, mas vale muito a pena.

Aprender a programar sem praticar é impossível. Aprender a programar praticando sem entender a teoria é ser um programador Chaves.

Fique a vontade para deixar sua opinião nos comentários. Qualquer ponto de vista é bem-vindo. Abraços.

Carregando publicação patrocinada...
7
3
2
1
1

Muito obrigado Filipe. A ficha ainda não caiu, tomei um susto quando eu vi o vídeo. Espero trazer mais conteúdos relevantes aqui para a plataforma. Abraço.

Mãe, olha aqui, eu to no canal do Filipeeeeeeee

1
3
1

Bem isso kkkkkk Nos fóruns, direto vejo perguntas sobre CSS, e a primeira coisa que faço é recomendar algum vídeo ou texto explicando sobre o Box Model. Mas eu tenho certeza que a maioria das pessoas ignora, pois ao invés de ter que assistir ou ler algo, ela prefere obter um código pronto de alguém.

2

Cara, o quanto eu sofria quando comecei a estudar CSS por conta de não estudar sobre o Box Model, sério foi uma das coisas que mais me frustou quando comecei, mas depois que entendi isso, eu consegui entender quase que tudo muito mais rápido relacionado a CSS.

1
2

E isso se extende aos usuários de frameworks famosos como o Tailwind (bootstrap com poder). O pessoal simplesmente quer ganhar 3 mil reais e não sabe usar CSS que é antigo e sobreviveu a todos os frameworks e libs muito bem. Almejam uma posição que custa tempo e pegam o primeiro atalho que vem a frente, acho maldade os "tutores" modernos recomendarem libs de css pronto pra iniciantes

2

Excelente! Como eu me identifiquei com ese post rsrs. Muitas vezes me comportei como um programador Chaves, ainda mais naquelas situações onde a gente não sabe como fazer uma determinada coisa, procura no google, encontra um código, copia e cola, e variás e várias vezes vai utilizando esse trecho de código em diversos projetos, até que um dia você precisa fazer uma alteração nesse trecho para implementar uma coisa um pouquinho diferente mas não consegue porque não entendeu como aquele código que você copiou funciona na verdade. Ainda bem que com o tempo a gente vai aprendendo a não fazer mais esse tipo de coisa, mesmo que algumas vezes a gente acabe fazendo "sem querer", ainda mais com CSS, como você citou no seu post.

2

Nossa que texto mais oportuno, iniciei meus estudos a 60 dias e mesmo em dia com os exercícios propostos e interagindo nas aulas, quando nos é proposto um desafio eu travo completamente. Irei buscar mais a teoria dos comandos para fixação. Obrigado.

2

Cara, muito boa sua analogia, parabéns!!
Não posso deixar de dizer que concordo fortemente com suas afirmações. O importante acima de tudo é ter equilibrio e consistência nos estudos. Uma coisa que sempre faço é tentar entender o "como" e "porque". Tento sempre imaginar os possíveis cenários que em que posso aplicar aquele conhecimento.

1

Boa. Essa questão de entender os cenários onde determinado recurso pode ser aplicado é muito bom. Nossa tendência é que quando aprendemos algo novo, queremos colocar goela a baixo em qualquer projeto isso, e na maioria das vezes, sem necessidade.

Por exemplo, a pessoa aprende sobre o useEffect, um hook do React, para causar um efeito colateral de acordo com a mudança de um estado por exemplo. Depois que você aprende, começa a colocar useEffect para tudo, até onde não precisa, e isso pode gerar renderizações desnecessárias, e consequentemente gargalos de performance. Inclusive esse tema de saber entender cenários é um dos próximos posts que pretendo fazer aqui no TabNews.

2

Isso pode se aplicar até mesmo em outras áreas da nossa vida... Eu por exemplo, fiz aulas de música por muito tempo e tive dois tipos de professores, um deles era focado totalmente na prática, e eu achava isso maneiro. Logo depois, tive outro professor que era focado na teoria, e vou ser sincero, achava um saco... Mas agora vejo a importância de ter aprendido a teria para saber como funciona as coisas e o motivo das coisas serem como são... Acho que na programação é muito assim, a gente pode saber fazer, colocar pra rodar e funcionar, mas é muito importante a gente saber o motivo de estar funcionando...

1

Boa analogia. Depois do seu comentário, parei para pensar, e aprendizados que envolvem teoria e prática geralmente são assim: O foco na prática sempre é mais legal, pois você vê um resultado mais concreto, porém a teoria é de extrema importância.

2

Será que dá pra centralizar uma bola quadrada? kkkkkkkk brincadeira.

Li o post e me identifiquei. Iniciei uma formação de qualidade, e estou indo bem com o equilibrio entre uma boa teoria e uma boa prática, na verdade não consigo APRENDER DE VERDADE algo de outra forma. No início do HTML e CSS fazia exatamente isso, chutava as propriedades. Até diria que isso é uma fase, mas não deve se manter assim. Depois de um tempo fazendo isso me irritei comigo mesmo (falava pros elementos "pare, pare, vc me deixa louco!" ahahahah) e pensei "Não pera, tenho que saber o que estou fazendo" então, peguei um artigo completo sobre o flexbox no css-tricks.com e comparava o que precisava, o raciocínio baseado no que aprendi no artigo sobre lógica do flexbox e colocava em prática. Funcionou! Finalmente eu estava fazendo uma coisa sabendo. Claro que é como aquela pessoa que acaba de sair da auto escola e, como se diz, está "todo duro na direção" no sentido de inflexível em comparação a um motorista com mais experiência. Sim, nesse caso ainda não tenho sacadas de posicionamento dos elementos como tem alguem com prática e experiência, como meu professor. Mas assistindo as aulas aprendo muito com ele sobre esses macetes.

Enfim, é realmente importante ce parar e estudar de fato, fixar e aprender aquilo pra não ficar chutando. Pra fazer um pilar, o engenheiro civil não pode ficar chutando as propriedades em busca de acertar. Uma hora vai até parecer que ficou bom, daí vem aquela palavra "funcionou!" mas tem grandes chances de cair. Isso é a base e fundamental pra front end no CSS.
Algumas coisas importantes se isso acontece com você é parar e aprender flexbox lendo, observando e testando o comportamento de tudo que está aprendendo, vai começar a entender as sacadas master! Outra coisa é assistir quem faz (claro, faça isso com quem vc tem certeza que sabe o que está fazendo) pois essa pessoa está criando uma lógica sólida no comportamento dos elementos e organizadas. Outra coisa é aprender position (aconselho fazer uma "ligação" se vc já trabalhou com imagens no word, pense nisso quando estiver entendendo o position), e claro, o display. Além disso, os padrões dos elementos, isso ajuda muito. Alguns elementos vem com propriedade como position e display padrões, mas cada um tem suas peculiaridades. Aprenda todos!

Mais importante que saber CSS e HTML é novatos em TI saber Chaves e Pica-pau, se vc é um desses, saiba que é um requisito. Taí o post te cobrando referencias em Chaves ("Sim mula, digo... não mula"). hahahahaha

Agora, com licença, que vou pegar um café.

1

kkkkkkkk muito boa as referências. Realmente da para encaixar o Chaves em muitos exemplos. CSS para quem está começando realmente vai ser chute atrás de chute. Mas como você mencionou, o problema é quando isso se estende muito. Você não precisar decorar as propriedades, mas precisa saber o que realmente elas fazem, e saber que elas existem.

2

Excelente analogia! Estou começando no mundo da programação e tudo acontece examente como no texto. Valeu por dispor de tempo para dar essa força pra quem quer estudar.

Algo que me surpreendeu aqui foi a escrita, eu ja estava começando a acreditar que programador ou era extramente preguiçoso ou "analfabeto". obg

2

Obrigado Clodoaldo. Uma das minhas primeiras postagens aqui no TabNews foi: "O Tabnews te ajuda mais do que você imagina". Um dos tópicos é justamente sobre como essa plataforma pode te ajudar a ler/escrever e organizar suas idéias melhor. O hábito de ler (que eu não tinha até 6 meses atrás), e escrever 1 ou 2 posts aqui no Tabnews por semana tem feito e muito a diferença para mim.

Outro ponto que eu já fiz post também, é que eu acredito um dia no Tabnews como diferencial para conseguir um emprego como dev, pois através dos meus posts, posso provar que sou muito mais do que uma pessoa que só escreve código. Eu sei argumentar, discutir, organizar minhas idéias, etc. Só que fazer isso sem um cuidado com o português é um tiro no pé, além de não passar credibilidade.

Post sobre como o TabNews pode te transformar: https://www.tabnews.com.br/matheuspazinati/participar-do-tabnews-te-ajuda-mais-do-que-voce-imagina

Post sobre o Tabnews como diferencial na sua carreira: https://www.tabnews.com.br/matheuspazinati/tabnews-pode-te-ajudar-a-conseguir-seu-primeiro-emprego-na-area

Abraços.

2

Super legal esse post. Acho que você conseguiu dar um overview, partindo do ponto de vista de um dev bem inicante, melhor que isso conseguiu apontar suas limitações e melhoras, eu passei por isso um tempo atrás, e acho que é super valido, mas as tentativas sem base são validas também, pois pelo menos pra mim eu vejo isso como uma formar de me divertir, alem de pesquisar bastante eu adoro praticar as coisas, mas sempre busco uma base bem aguçada e um senso crítico apurado <3

1

Não é ruim aplicar na prática algo que você ainda não viu na teoria. Pelo contrário, é até bom você já levar esse "soco", do tipo: "Nossa, apliquei isso aqui, não tenho a mínima idéia do que ele está fazendo, mas funcionou. Já vou anotar este recurso para estudar tal dia". Para mim, o problema está quando você diz a mesma frase mas para no "funcionou.", ou seja, "Não sei o que este recurso faz, mas funcionou, então ta ótimo". Este ponto eu acho perigoso.

2

Muito bom cara!
Minha forma de estudar tem um pouco de relação com o que você falou. Geralmente eu sento e estudo o básico de programa ou tecnologia nova até me sentir confiante para fazer algum projetinho. Daí parto para a prática, tento avançar e vou indo até onde der. Quando esbarro em algum problema ou algo novo, tento conciliar a prática com pequenos estudos e geralmente dá certo. Até que chega em um ponto que realmente não dá para continuar forçando dar certo e o melhor é para e estudar de forma mais aprofundada para realmente entender o que estou fazendo. Nem sempre consigo um equílíbrio ideal mas vem funcionando para mim.

1

É um bom caminho para seguir. O ponto chave é saber identificar quando você parou de tentar, e só esta chutando coisas absurdas para dar certo. Quando você já está estudando programação há um tempo, começa a ter uns pensamentos tipo: "Ok, funcionou, mas eu tenho certeza que tem uma forma melhor de fazer isso aqui", ai é onde você pode se aprofundar, etc. O problema é quando você não tem essa percepção, e acha que sua função com 50 if's está correta só porque funcionou.

2

Você me descreveu, sou um programador Chaves em diversas circunstâncias, em alguns contextos eu consigo me adaptar bem, por ter entendido de fato o conceito, mas em boa parte do dia a dia me sinto um Chaves.

2

Ótimo post! Adorei a analogia com o seriado 'Chaves', com certeza programar é uma profissão de pratica e sem colocar a mão na massa o iniciante nunca vai avançar.

2

Exatamente, muito bom. O ideal seria o equilíbrio entre teoria e prática, muitas pessoas esperam apreender "tudo" primeiro pra começar a praticar, já outras ignoram alguns fundamentos que serão importantes pra carreira.

Com 20% do conhecimento em alguma coisa você já pode obter 80% dos resultados, e acredite 20% de alguma coisa em programação pode já ser muita coisa, esses números foram tirados do Princípio de Pareto.

Mas como vou saber quais 20% desses assuntos devem ser estudados?

Pense sempre em boas práticas, semântica, código limpo (escreva um código pra outro programador entender), acessibilidade. Dessa forma você vai achar os principais assuntos que devem ser estudados, esses fundamentos você vai levar pra carreira inteira e vai ser muito mais simples aprender algo novo depois.

1

Exatamente. Equilibrio é a chave. Participo bastante de comunidades dev, fóruns, e tenho notado um foco maior das pessoas em apenas praticar, por isso abordei apenas esse lado, mas realmente há pessoas que fazem o contrário: Só estudam a teoria, e não aplicam em nada. Belo ponto

2

Muito bom o texto e também o modo que trouxe esta analogia. Hoje muita gente é dominado pela facilidade de encontrar conteúdo, mais não consegue dominar estes conteúdos pelo simples fato da informação estar mastigada.

É como ler uma documentação; muitos programadores não buscam na documentação uma resposta para sua pergunta e sim inserem sua pergunta no Google a fim de encontrar o codigo pronto. E assim nos tornamos aquele PROXY meio leigo, ou "burro".

1

Exato. Acho que todo programador que já passou daquela fase inicial nos estudos e tal deveria sentir um incomodo quando copia algo sem tentar entender o que este algo está fazendo. Esse mesmo fica bravo com empresas nas redes sociais, pois estas não dão oportunidades para programadores junior. Mas uma coisa é ser programador junior, e outra coisa bem diferente é ser copiador de código junior.

2

Concordo com texto e acho faz muito sentido. E além, acredito que o oposto extremo também possa acontecer.

Levando em conta aquele que acha que precisa se preparar ao máximo antes de tentar, e ao buscar informações e/ou fundamento, sempre esbarra em um novo termo, jargão ou conceito que ainda não conhece. E isso vira uma bola de neve! Basta não ter foco que fica fácil se perder no ritmo do estudo e da prática. Eu mesmo já fui assim!

Como por exemplo, querer entender como lib ou framework x ou y funcionam por debaixo dos panos e achar que precisa saber como reinventar a roda antes de usar toda e qualquer solução. Como achar que precisa saber criar um sistema de roteamento do absoluto zero antes de usar uma lib que faça isso.

Ah claro, não me entendam mal, esse tipo de prática é sim importante e útil, mas entender que não precisa saber como absolutamente tudo funciona, é um bom ponto.

1

Sim, realmente existe este outro lado também, mas ultimamente, eu tenho notado em comunidades e fóruns, pela forma como as pessoas fazem perguntas, etc. uma tendência maior em praticar sem entender o que está fazendo. É só mão no código, e nada de mão na documentação, ou mão em livros, etc.

2

É uma análogia absurda de boa, vou usar isso pra conseguir melhorar minhas coisas, não da pra deixar a gambiarra de lado, mas vou diminuir ao máximo, as vezes eu uso o chat GPT pra pegar uns bizu desse tipo.

1

Se você sabe que algo é uma gambiarra, já é um passo. O problema é quando você implementa essa gambiarra, sem saber que é uma gambiarra, ou seja, acreditando que é o ideal e o correto. Eu não vejo problemas em copiar código de coisas como Stackoverflow, ou ChatGPT. O problema é você copiar sem ter a curiosidade de entender o que o código faz.

2

Cara. Fantástica sua analogia.

Sempre que eu faço alguma coisa que eu não sabia antes, mesmo que funcione, se eu não entender o que eu fiz, eu não me conformo enquanto eu não entender como aquilo realmente funciona.

Não basta apenas funcionar, você tem que saber o que está fazendo.

1

Sou assim também. Esse incomodo é muito necessário, mas muitas pessoas não gostam de te-lo. Possuem o foco em certificados, ou no resultado, sem se importar com o processo. Quando eu aprendi isso, confesso que embrulhou meu estômago, porque eu percebi que não sabia tanta coisa como eu achava, mas hoje eu vejo os benefícios em ter tido este incomodo cedo nos estudos.

2

É a pura verdade, muitas vezes eu sou esse programador Chaves kkkk, principalmente programando em HTML e CSS. Faz pouco tempo que comecei a colocar propriedades e adaptar um site para telas menores pro projeto de um cliente, e nossa, quase chorava de frustração tentando fazer as coisas encaixarem, principalmente com tabela... Não ter muita ideia de qual a melhor forma de implementar isso me deu muita dor de cabeça.

Graças a Deus achei um site com um exemplo bom de como fazer a tabela ficar bacana na tela do celular, mas ainda assim achei o meu código cheio de redundância e defeitos. Ainda tenho muito a melhorar, espero achar dicas aqui, e se alguém tiver recomendações pra eu aprender sobre flexbox e CSS Grid, eu agradeço.

(Inclusive, eu achei num post de como fazer tabelas flexíveis com CSS Grid que foi muito útil no site desktop, embora eu ainda não estivesse preocupado com responsividade, deixou a tabela limpa e bem dividida; deixo aqui o post: https://adamlynch.com/flexible-data-tables-with-css-grid/)

1

Realmente estilização em tabelas não é algo trivial. Neste caso sim, o uso de tentativas e erros é válido, para tentar entender qual o comportamento da tabela em si.

2

Cara isso vem acontecendo comigo até eu me deparar com a síndrome do impostor que habita em mim, às vezes eu nem consigo ligar o PC pra começar algo novo ou continuar o que já havia começado, valeu pelo post, abriu a minha mente.

1

Fico muito feliz que este post tenha ajudado você. Vou repetir o que eu disse em um comentário: Não é fácil mudar para esta abordagem. Você tem que deixar o ego de lado, e aceitar que boa parte do que você acha que aprendeu, na verdade não aprendeu pra valer, apenas copiou ou repetiu. Se coloque em situações desconfortantes: Aprendeu algo novo de uma tecnologia, posta sobre ela aqui no TabNews, com suas palavras. Pode ser desconfortante pois é o seu nome, em uma plataforma com milhares de pessoas da área, e você pode sentir um certo medo em ser julgado por algo que escreveu errado, ou algo do tipo. Mas se você tem esse medo, é um bom indicativo de que você talvez não tenha aprendido de verdade sobre o tal recurso.

1

Cara, você é muito bom, me entende perfeitamente, muito obrigado pelo incentivo, as vezes eu sinto um desconforto, insegurança sei lá... mas agora vai mudar!

Abraços!

1

Todo mundo passa por essa fase de insegurança. É mais comum do que você imagina. As vezes nem passa, você só convive com ela. Muita gente desiste nesta etapa, é bem cruel mesmo. Um passo de cada vez, todos os dias, você vai ver que vai melhorando.

2

Cara, que analogia fantástica.. Estava precisando ler isso hoje!

Entendo muito bem o que é isso. Passei por isso e hoje vejo o processo de aprendizado sobre desenvolvimento de uma forma muito diferente.

Sempre tive preguiça de aprender a programar.. Sou designer há 9 anos, já fiz muitos sites para clientes como freelancer e durante muito tempo da minha vida só usava wordpress com temas pré-prontos. Mas chegou um dia que cansei de me sabotar e decidi que precisava aprender de verdade..

Coloquei pra mim que nunca mais usaria um tema wordpress em um projeto... rs... (nada contra o wordpress)

Por alguns meses, apanhei e muito com html, css e js.. Alinhar elementos e trabalhar com media querys era um inferno pra mim.. Eu estava inflexivel e não sabia.

Isso só mudou quando decidi cair dentro estudando.. Hoje isso é passado e faço pós em desenvolvimento front-end. Continuo estudando e praticando todos os dias..

Tomei como prática isso, todo video/material/artigo que leio sobre desenvolvimento, já abro o VSCode e começo a tentar...

Obrigado por esse conteúdo massa!

1

É difícil mesmo identificar que você está inflexível, ou seja, só consegue utilizar determinados recursos em um cenário controlado por você. E mais difícil ainda aceitar isso, e tentar recomeçar. Parabéns pelo seu esforço em mudar.

2

Cara que fantástica dua visão.Estudo desenvolvimento a pelo menos 1 ano e meio, na faculdade tenho ser um "chaves" o tempo todo por conta de prazos apertados para entregar várias atividades, mas quando posso estudo a teoria do que estou fazendo e me ajuda muito, é mais lento, mas durante uma conversa sobre o tema saber do que esta falando é prazeroso demais!!

2

Só de você admitir que está sendo como o "Chaves" já é muita coisa. E além do mais, você tem um motivo para agir desta forma. O problema é quando você faz isso e não percebe, ou seja, acredita que está aprendendo tudo o que está aplicando na pratica.

2
2

Ótima analogia! Tendemos a ser muito operacionais e isso nos tira a profundidade, venho aprendendo a ter paciência para parar e aprofundar ao invés de carregar um monte de coisas pela metade.

1

Fico feliz que esteja tentando mudar. Não é fácil, inicialmente é um soco no estômago admitir para si mesmo que boa parte do que você acha que aprendeu, na verdade não aprendeu, mas depois de um tempo, você fica feliz em ter tomado esta decisão. Quanto mais cedo aceitar isso, melhor.

2
2
2

Verdade, tem mesmo. Inúmeros fatores influenciam isto, mas apenas citando um, acho que falta uma orientação para este iniciante. Na maioria dos casos, ele viu que a área está crescendo, ou que o sobrinho da vizinha ta ganhando dinheiro com isso, e sem entender muito já começa a estudar. Acho que filtrar algumas coisas como: Quero programar aplicativos para celular, ou quero programar aplicações desktop, etc. já dão um bom norte sobre qual linguagem escolher.

1

Pensei exatamente isso quando li a introdução do excelente post do colega!

(Como se maçãs fossem javascript e laranjas fosse python)

2

Adorei a analogia, muito boa mesmo. Realmente deve haver um bom equilíbrio entre a prática e a teoria, mas geralmente focam só em um ou em outro. Parabéns, achei bem legal.

1
2

Artigo super interessante, me fez parar para re-pensar muito sobre tudo o que foi comentado. Normalmente os cursos e faculdades em programção ensinam de uma forma que tente abranger vários temas de tecnologia e isso se torna bem massante.
Aprendi muito com a experiências, com outras pessoas, com os erros cometidos, com exemplos da internet e, concordo que isso soluciona o problema corrente, mas evita a reflexão do problema e da solução, talvez até por questão de tempo e achar que uma vez solucionado o problema está na hora de seguir em frente.
Realmente me falta procurar novos conhecimentos, mesmo que fora de contexto do trabalho e conseguir assim aprender, refletir e evoluir.

2

Cara que fenomenal esse post! Usar um xomo exmeplo o chaves foi genial, acaba que pelo menos pra mim a informação é melhor diluida e consigo lembrá-la mais. Pior que agora que vejo chaves ,vez ou outra lembro desse post.

1
2

Muito bacana esse texto, brother!

A analogia com o Chaves, além de nostálgica, foi muito bem colocada. Ele me fez lembrar, e reler, o capitulo 6 do livro Programador Pragmático.

Essa parte do livro destaca que é importante equilibrar a teoria e a prática na programação. Não basta apenas escrever código (praticar), é preciso entender a teoria por trás do que está sendo escrito.

1

Eu amo analogias, acho que facilita muito na hora de entender ou explicar algo (Quem nunca teve dúvidas do que é uma API, e quando ouviu a analogia com um restaurante ficou tudo mais claro ? kkkkkk). A prática é essencial, mas pode se tornar uma grande perca de tempo caso ela seja feita sem uma base teórica.

2

Caraca muito top essa sua análise matheuspazinati, concordo totalmente com ela, inclusive as vezes quando estou estudando algo na programação gosto de fazer anotações com as minhas palavras deixando uma espécie de tutorial bem descritivo do que eu estudei, para quando eu precisar voltar neste tópico no futuro consiga entendê-lo de uma forma um pouca mais fácil. E o que vc disse no seu post para mim tem um pouco de relação com o conceito/frase do basquete de que "se você treinar muito em arremessar mas não treinar do jeito certo vc não será um bom arremessador, mas sim um péssimo arremessador", não lembre se a frase é bem assim e nem quem falou hehe😅, mas para mim de fato é necessário um pouco da teoria nos estudos, pois as vezes só a prática pode levar o indivíduo a ficar passando por diversos erros desnecessários que poderiam ser evitados com um pouco de entendimento teórico por trás de alguma tecnologia ou ferramenta. Em fim, ótima analogia a sua deste fato de estudos na programação com a série do chaves 👍🚀

1

Muito obrigado e é bem isso mesmo Pablo, essa frase do basquete resume bem o que eu quis trazer com o artigo.

A pessoa recebe sempre os mesmos erros, porém ao invés de tentar entender o porque deles, e como solucionar, é mais fácil decorar uma solução do stackoverflow. O problema é que nem sempre essa solução decorada vai resolver um problema, pois existem vários cenários e contextos. Ou seja, a pessoa decorou uma solução específica para um tipo de problema específico, ao invés de tentar entender, onde esse entendimento ajudaria ela a resolver o problema independente do cenário ou contexto. Resumindo, ficou igual o Chaves, só sabe fazer com maças.

2

Hahaha muito bom! Será que o chaves saberia fazer o cálculo com as maçãs? 😅 Sou um programador que adoro teorias, mas assim que ACREDITO que aprendi quero sair fazendo na prática. Depois descubro que não estou fazendo da melhor forma. Acredito que é uma evolução contínua entre teoria e prática! Ótimo artigo fiquei sabendo do artigo pelo vídeo de membros da turma!

2

Fico muito feliz de saber que meu artigo foi comentado no vídeo dos membros da turma do Filipe. Eu também gosto de já colocar algo que aprendi em prática, mesmo sabendo que a teoria não está 100% perfeita, e geralmente consigo identificar algumas coisas como:

Ok, eu fiz dessa forma, funcionou, mas eu tenho certeza que tem outra forma melhor de aplicar isso.

O problema é quando você não consegue identificar isso. Para quem está começando, é mais difícil, e eu acho que isso vai se aprimorando conforme você vai estudando.

2

Ano passado eu fiz mentoria num hackathon e vi isso de perto.

Vc podia se disponibilizar para tirar dúvidas e no final de semana que fiz isso eu fui chamado 3x para tirar uma dúvida. Em todos os casos eu resolvi a dúvida da pessoa da mesma forma: Eu simplesmente abri a documentação da linguagem ou da biblioteca sendo utilizada no programa, usei a função de busca para procurar o método sendo utilizado e li uns 2-3 parágrafos de informação.

Nas 3x que eu fiz isso eu resolvi o problema de cada grupo em menos de 5-10 minutos.

Eu entendo que a característica da hackathon é o pouco tempo para fazer as coisas, mas o problema dessas pessoas não era o tempo. Era que elas simplesmente queriam chutar propriedades e métodos aleatórios de como fazer algo até que funcionasse. Se elas simplesmente tivessem parado para ler um pouco elas teriam conseguido resolver o problema sem ajuda alguma.

1

Cara, realmente isso acontece muito. Participo bastante de fóruns e da comunidade em geral, e a quantidade de pessoas que tem dúvidas simplesmente porque não leem a mensagem de erro é absurda. Sinto o pessoal meio afobado para aprender as coisas, tipo vai fazendo as coisas sem pensar muita, ai quando da um erro, joga no google, ou no chatGPT, ai eles dão a resposta, ai e pessoa continua, e fica nesse ciclo sem aprender nada. A pessoa nem analisa o código da resposta para tentar entender, ela só cola para obter o resultado.

2

parabéns, um excelente texto e uma bela reflexão. Acredito que tbm sirva para pessoas que tem medo de tecnologias novas e se apoiam em coisas que aprenderam a 3, 5, 10 anos atrás, pelo simples fato de ter que aprender.

1
2

Uma outra analogia legal de fazer é como o Chaves só consegue fazer a conta com maças assim como programadores iniciantes se apegam a determinada linguagem e se tornam dependentes dela...

2
2
1

Como o Filipe menciona no vídeo, sinto que algumas pessoas tem pressa em ver o resultado, e isso pode atrapalhar. Pegue qualquer projeto que você fez há uns meses atrás, analise o código, e veja se você consegue distinguir o que cada pedaço faz. Se você não consegue, pode ser porque não aprendeu de verdade aquele conceito (ou o código ta muito sujo, estilo "const numero = 1.55"). Resumindo: Não pule etapas. Tente entender de fato a teoria, e vá mesclando com a prática. Não tem receita de bolo, cada conceito é uma história, alguns você vai aprender rápido, outros não. Não estipule metas do tipo

Ah, hoje eu vou estudar Promises, ai amanhã vou estudar manipulação de objetos...

Mude para

Eu vou aprender Promises.

2

Voltei a aprender sobre programação recentemente e eu estava preocupado em ter muitos projetos para mostrar como eu domino aquela tecnologia mas isso não seria verdade porque como o Chaves se mudasse alguma variável talvez eu não soubesse como resolver e isso já aconteceu algumas vezes desde então e esse texto me fez parar e refletir que por mais que eu demore para eu progredir em determinado assunto se eu tiver uma fundação sólida a tempestade quando chegar não irá destruir meu progresso.

Obrigado MatheusPazinati!

1

por mais que eu demore para eu progredir em determinado assunto se eu tiver uma fundação sólida a tempestade quando chegar não irá destruir meu progresso

Essa sua mensagem resume perfeitamente o objetivo deste post. Já fiquei frustado muitas vezes por achar que tinha aprendido algo, e ao me deparar com um desafio onde eu usaria esse aprendizado, eu não conseguia, e isso quase me fez desistir da programação inúmeras vezes.

2
1
1
1

No meu caso eu nunca dei continuidade ou então, "meti a cara" para os estudos de programação exatamente pelo fato de ter que passar por HTML e CSS sabe? O que se passa na minha cabeça é, "Se quero aprender apenas linguagem de programação, porque eu deveria aprender marcação de texto e estilização?" sei que esse pensamento pode ser retrógrado e não fazer sentido algum, pois sou bem leigo na cena da programação.

Mas acho que desde 2020 eu tento, e paro, tento e paro, nunca consigo dar continuidade, daí fico pulando de galho em galho, acreditando que uma hora eu vou aprender (dessa forma) mas aquela voz que sussurra na minha cabeça diz que eu não vou conseguir, e sabe o que é o pior disso tudo? Ela está certa, se eu não parar e forcar, eu não vou conseguir. Então obrigado pelas palavras, Matheus, irei tentar me ajustar e meter a cara nos estudos e deixar de ser um Chaves, porque eu fico encantado vendo alguém programar e penso que poderia ser eu, mas fiquei focado. Mas é isso a meta é não ser um Chaves.

1
1

Se encaixa sim. Na minha visão, grande parte da dificuldade das pessoas em entender o que estão fazendo, e porque as coisas funcionam ou não é por ter pulado estas etapas básicas, de aprender como funciona um computador, de que forma ele representa as informações, quais são as estruturas de dados e onde cada uma se encaixa melhor, etc.

1

Infelizmente todos os exemplos que deu podem ser adquiridos com a prática sim, como o exemplo da centralização, se o cara for ler a teoria por traz dos alinhamentos dos elementos html ele provavelmente não vai entender nada e/ou esquecer tudo na semana seguinte, é relativamente complexo pra iniciantes e praticamente um conhecimento inútil se não for um dev que vai atuar diretamente nessas mecânicas, é na mesma pegada das escolas ensinarem Baskara e Logaritmos pra alfabetizarem seus alunos e no final estamos formando analfabetos funcionais.

Discordo em partes, não é framework nem linguagem que deve dar ênfase na teoria e sim nas bases, como algoritmo e estrutura de dados, e nas partes majoritariamente teóricas como arquitetura e código limpo.

Infelizmente vejo muitos devs com anos de experiência que não sabem fazer algoritmos eficientes usando estrutura de dados eficientes para a questão problema e sequer aplicar DRY corretamente, isso seria resolvido com um carinho a mais nos tópicos que citei no parágrafo anterior.

Costumo dizer que o ideal é aplicar o princípio de pareto nos estudos, 20% teoria e 80% prática. Mas não só isso, saber o que estudar é fundamental e essa é a parte mais difícil.

Até um senior deve rever regularmente conceitos de arquitetura, código limpo, algoritmo e estrutura de dados e afins.

Em resumo quase toda a parte teórica que vai estudar não depende da linguegem ou framework do contrário aí sim você vira um programador chaves, um programador que sabe fazer um formulário em react mas se precisarem dele pra fazer o mesmo formulário em angular ele não sabe.

Exatamente como o chaves faz.

1

Vou dar um exemplo: Quando eu comecei, para centralizar algo eu ia chutando. Colocar text-align: center, se não dava certo eu colocava margin: 0 auto, e ia tentando, até dar certo. Eu só aprendi mesmo quando estudei sobre Box Model, e entendi sobre display block, etc. Você não precisa ir tão a fundo, e tentar entender como o HTML faz isso por de baixo dos panos, mas essa parte de box-model no mínimo é interessante de estudar.

1

Realmente concordo mas em partes porque tem muita teoria furada ,a culpa de programadores chaves eh de quem fica falando abobrinha sem valor teorias inuteis ,mas tenho uma pergunta se voce esta em um barco que ja esta a caminho de um destino posicionado voce segura o timao ou muda a direção?

1
1

Resposta do ChatGPT: Como uma inteligência artificial, eu não sou uma pessoa e, portanto, não sou um "Programador Chaves" no sentido literal. No entanto, estou aqui para ajudar e fornecer informações sobre programação e outras áreas de conhecimento.

Se você se refere a "Programador Chaves" como alguém que apenas copia e cola código sem entender o que está fazendo, posso assegurar que não sou assim. Sou treinado em uma grande variedade de assuntos e posso gerar respostas e exemplos de código de acordo com a necessidade, adaptando-os às perguntas e cenários específicos. Meu objetivo é ajudá-lo a aprender e aprimorar suas habilidades, fornecendo informações e exemplos úteis e relevantes.

Se você já foi um "Programador Chaves" e se arrependeu, é importante lembrar que todos nós temos a capacidade de aprender e melhorar. Busque entender os conceitos por trás do código que você está usando e faça perguntas sempre que precisar de esclarecimentos. Estou aqui para ajudar!

0
0
1

@alissonalves, percebi que você tem publicado vários comentários superficiais. Recomendo que dê uma lida nos Termos de Uso e na publicação Tentando construir um pedaço de internet mais massa. Em especial, cito:

Então é aqui que entra uma mecânica importante: nós vamos desestimular comentários simples, como por exemplo um agradecimento "ah valeu! falou..." em favor de comentários que devolvam algum valor concreto.

Espero que você entenda e possa contribuir com conteúdos de valor aqui 🤝