10 Sinais que Você é um Inútil na Programação

Danilo Lutz
12 min readMar 13, 2019

--

E aí pessoal, tudo sussa?

*Esse artigo é uma tradução livre do artigo 10 Signs You Will Suck at Programming do Jonathan Bluks. Não que eu conheça o Jonathan, mas os pontos levantados no artigo fazem todo o sentido. Considerando também que ele é professor e lidou com muitas situações envolvendo aspirantes à programação.

Várias e várias vezes vejo pessoas perguntarem “Como me tornar um programador bem sucedido” por vários motivos como: mudança de carreira, ou está interessado em desenvolvimento de software e curioso sobre o que é preciso para se tornar um programador, inevitavelmente a questão da programação surge.

Ao checar os itens dessa lista e encontrar vários deles em si mesmo, tenha certeza: você é um inútil na programação e provavelmente deveria investir seu tempo em outras coisas.

Segundo Bluks, e eu concordo com ele:

A programação é uma habilidade humana básica, assim como leitura, escrita e aritmética. Qualquer um pode aprender a programar com tempo e esforço.

A seguir a lista e o que você pode fazer para virar esse jogo caso queira mudar e realmente se tornar um programador.

1. Falta de curiosidade

Se você não tem curiosidade sobre computadores e como a tecnologia funciona, você nunca terá sucesso como programador.

Um requisito fundamental para a aprendizagem é um interesse ativo na coisa que você está aprendendo. Se você não possui uma mente que é curiosa sobre tecnologia, você não terá a energia necessária para continuar aprendendo o amplo e profundo conhecimento necessário para ser um programador de sucesso.

Em contraste, o mundo da tecnologia é como um enorme oceano de domínios interessantes, ideias interconectadas e possibilidades que podem excitar a imaginação. É necessária uma motivação interna inerente para querer mergulhar e descobrir tudo o que puder.

Encontre sua curiosidade: Pergunte a si mesmo se a programação realmente lhe interessa. Se a sua resposta honesta é que não, descubra algo de seu interesse. Economize tempo e energia. Mas se a sua resposta for “Sim”, então tente encontrar algo novo que você não tenha notado antes, reconheça o vasto oceano e mergulhe um pouco mais fundo.

2. Falta de autonomia e desenvoltura

Se você não desenvolver a capacidade de resolver problemas por si mesmo, nunca terá sucesso como programador.

Sem dúvida, para ser um desenvolvedor de sucesso, você precisa estar confiante em sua própria capacidade de aprender. Esta é realmente uma habilidade fundamental para a vida — se você tem mais de 18 anos, ninguém é obrigado a lhe ensinar nada. Isso é realidade. Cabe a você encontrar as informações e a ajuda de que precisa para aprender o que é importante para você.

No mundo do desenvolvimento, toda a informação que você precisa é encontrada naquele lugar mágico, anteriormente conhecido como Super-via da Informação. Esta enorme biblioteca tem uma enorme porta de entrada: o Google. Aprender que você pode simplesmente digitar o que quiser no Google e obter as informações de que precisa é o primeiro obstáculo a ser ultrapassado quando quiser aprender as habilidades necessárias para estar na tecnologia.

Além de ser um bom googler, todas as linguagens de programação possuem documentação e especificações que são muito explícitas sobre como a linguagem funciona. É como usar um dicionário — quando você vê uma palavra que não reconhece, você a visualiza. A maneira mais rápida e confiável de desenvolver sua habilidade como programador é simplesmente ler a documentação. Está literalmente tudo lá.

Use os Recursos: Reconheça que todas as respostas que você precisa realmente estão por aí. Quando você tiver uma pergunta, force-se a pesquisar no Google e verificar a documentação antes de pedir a outra pessoa a resposta. Economize o tempo dos outros para quando você tentou e realmente não conseguiu encontrar a resposta que você precisa.

3. Falta de persistência enfrentando um problema

Se você desiste facilmente diante de um problema, nunca terá sucesso como programador.

A essência da programação é resolver problemas. Essa é a razão pela qual os computadores foram inventados! Sempre que você começar a trabalhar em um programa, encontrará toda uma “pilha” de problemas. E quando você resolve um problema, quase sempre há outro problema logo atrás dele. Você está progredindo, mas sempre há novos problemas a enfrentar.

Enfrentar essa pilha de problemas pode ser assustador e desanimador. Se você acha que as coisas devem “simplesmente funcionar”, então você não terá energia para persistir enquanto os problemas continuam e, pouco a pouco, derrubam sua determinação emocional. É literalmente o seu trabalho descobrir por que as coisas não estão funcionando.

Bluks diz que da experiência em sala de aula ele descobriu que: geralmente há um ou dois alunos por turma que parecem ter habilidade para encontrar mais problemas do que outros alunos — geralmente problemas bastante aleatórios e obscuros. Bulks lembra aos estudantes que quanto mais problemas eles enfrentam, a possibilidade de aprender mais profundamente aumenta. Se eles conseguirem entender através desses problemas, eles rapidamente descobrirão que estão mais confiantes porque enfrentaram e resolveram mais problemas do que o estudante médio.

Aceitação: Você precisa reconhecer que os problemas vêm com o território e não são problemas, mas sim desafios. Cada desafio que você enfrenta e supera lhe dá uma compreensão mais profunda e uma habilidade melhor para enfrentar novos desafios e resolver rapidamente os antigos.

4. Nenhum sentimento de sucesso em superar um problema

Se você não sente uma sensação de excitação e realização depois de resolver um problema, nunca terá sucesso como programador.

Relacionado com a questão anterior de desistir muito facilmente é a falta de “bons sentimentos”, uma vez que você tenha resolvido com sucesso um problema. Quando consertamo bugs e problemas isso parece uma esteira quase sem fim, você perde o contato com a empolgação que surge em superar um problema.

Há realmente uma liberação de dopamina que você precisa quando supera um problema. Isso é semelhante à experiência de concluir um nível em um videogame ou resolver um desafio como palavras cruzadas ou Sudoku. Nós todos sabemos que há um sentimento bom que vem de persistir através de um desafio e, finalmente, vencer no final. Mas se você perdeu a capacidade de sentir esses sentimentos, ou nunca realmente se importou em primeiro lugar, você não será capaz de experimentar a alegria que vem da programação. Se você vê a programação como uma rotina onde você quer apenas obter um resultado tão facilmente quanto possível, você nunca será realmente um programador de sucesso.

Comemore suas vitórias: Sempre que você resolver um problema com o qual você lutou, não importa quão pequeno, sempre se orgulhe de sua realização, faça uma pausa e parabenize-se por um trabalho bem feito. Deixe a sensação de sucesso penetrar e energizar você para o próximo problema que você irá enfrentar.

5. Impaciência para aprender e entender

Se você é impaciente em aprender e espera dominar tudo rapidamente e sem esforço, nunca será realmente bem-sucedido em programar.

Como seres humanos, somos criaturas limitadas. Mesmo que o nosso mundo se mova cada vez mais rápido, e os computadores são uma grande causa disso, só podemos nos mover o mais rápido que conseguimos. Nossos cérebros funcionam a uma certa velocidade e, dependendo do nosso passado, nossas crenças, nossos estados emocionais, nossa saúde … todos aprenderemos e integraremos informações em diferentes velocidades.

O mundo da tecnologia é como um vasto oceano. Você nunca chegará ao fim, você nunca chegará a um ponto em que você é um mestre com mais nada para aprender, aliás isso serve para o resto do mundo, não apenas o da tecnologia.

Se você se deixar sobrecarregar, você sempre sentirá uma pressão para “recuperar o atraso” e sentir que nunca sabe o suficiente. Se você não puder aceitar o que sabe e depois aprender um pouco mais, vai sentir que não está chegando a lugar nenhum e desistir.

Em vez disso, você precisa aproveitar a jornada de aprendizado por si só. Cada pouquinho de conhecimento que você ganha, ou a nova habilidade que você ganha, precisa deixá-lo excitado. Como resolver problemas, você precisa sentir o orgulho de reconhecer que deu um passo adiante, mesmo que seja pequeno.

Reconheça seu progresso: Há muito o que aprender e a jornada da programação nunca termina. Mas o conhecimento é cumulativo, portanto tenha orgulho do que você sabe e confie que todo esforço que você fizer no seu aprendizado criará uma base sólida de conhecimento para onde sua carreira o levar.

6. Ficar entediado/cansado de pensar

Se você é preguiçoso em seu pensamento e vê o pensamento concentrado e focado como uma tarefa, você nunca será verdadeiramente bem-sucedido em programar.

A programação é uma atividade pensante. Como humanos, somos realmente bons em pensar, mas a realidade é que, embora passemos naturalmente o dia todo fazendo isso, somos preguiçosos em nosso pensamento. A capacidade de manter um esforço concentrado e concentrado em um único problema durante um período de tempo é difícil se você não estiver acostumado a isso.

Os sintomas disso incluem olhar fixamente para a tela, sentir uma nuvem descendo em seus pensamentos, procrastinar em um problema, mudar as abas do navegador e procurar desesperadamente no StackOverflow por “uma resposta”. Estes são sinais de que você atingiu uma limitação mental e precisa encontrar um caminho.

Enquanto estiver programando, você ficará cansado e o pensamento literalmente queima a energia física da mesma forma que exercita nossos corpos. Quando você não está acostumado a exercer a energia mental necessária, pode parecer difícil manter o foco. Mas é como ir na academia, quanto mais você faz, mais forte você fica.

Sua mente é um músculo: confie que seu cérebro é como um músculo — à medida que você o usa, fica melhor e mais eficiente em seu pensamento. Ao juntar peças e desenvolver conceitos mentais, fica muito mais fácil descobrir soluções.

7. Incapacidade de pensar por si mesmo

Se você espera que os outros pensem por você e não está disposto a olhar os detalhes da sua própria situação, você nunca será um programador realmente bem-sucedido.

Quando você está aprendendo algo novo, é fácil sentir que não tem o conhecimento e a experiência para ter suas próprias opiniões. Tomar iniciativa e fazer/dizer a coisa errada parece arriscado.

Existe um medo inerente que todos temos em estar errado. Quando esse medo de estar errado inibe sua exploração e curiosidade, você sufoca a capacidade de desenvolver o conhecimento verdadeiro, conhecimento obtido com a experiência e o “fracasso”. Quando você precisa contar com a opinião do “guru”, um blogueiro popular, uma prática recomendada ou a resposta do “livro didático”, então você não integrou verdadeiramente um conhecimento prático de programação.

Você precisa desenvolver suas próprias opiniões sobre o que funciona e o que não funciona. Você precisa entender por que acha que sua solução funciona e quais são os benefícios. Você precisa desenvolver uma perspectiva diferenciada que vai além do óbvio. Você precisa ser capaz de “discutir” o seu lado e, em seguida, se você mudar, você pode possuir a nova perspectiva que você ganhou.

Pense por si mesmo: Através de suas experiências e habilidades de pensamento crítico, desenvolva suas próprias perspectivas. Faça suposições razoáveis, assuma uma posição e esteja disposto a mudar à medida que novas informações forem surgindo.

8. Pensamento rígido, estreito e/ou desorganizado

Se você é rígido em seu pensamento e tem dificuldade em manter seu código organizado — e por extensão seus pensamentos são organizados e focados, você nunca terá sucesso na programação.

Existem dois extremos. O primeiro é uma abordagem rígida e estreita em relação ao pensamento. Essa atitude recusa a ajuda e, apesar do feedback, não muda. As coisas são vistas apenas de uma perspectiva e as sugestões são ignoradas.

Um segundo extremo é o pensamento desorganizado. Os alunos parecem tornar as coisas mais complicadas do que o necessário, seu código é confuso e difícil de seguir. Eles pensam demais no problema e escrevem 100 linhas de código, quando 10 teria sido suficiente.

Quando essas duas mentalidades são combinadas, o resultado é uma abordagem rígida à programação, como uma abordagem de força bruta que leva a camadas e camadas de correções e “hacks”. O que é necessário é a capacidade de reverter a solução, reavaliá-la, desistir da abordagem inicial e reorganizar.

Não ser capaz de ver outras possibilidades ou receber feedback inibe a capacidade de crescer e melhorar. Ser desorganizado o retarda e impede que você veja padrões que de outra forma seriam óbvios. E a qualidade geral do seu trabalho é diminuí.

Auto Reflexão: Você precisa dar um passo para trás, e olhar para o quadro geral de como você está realizando das coisas. Como você pode fazer isso melhor? Existe alguma coisa que você pode fazer para facilitar sua vida? O que você está perdendo que poderia ajudá-lo? Lembre-se também que você não é dono da verdade e nem sabe tudo, não seja arrogante, seja maleável e humilde, aprenda a ouvir seus colegas, assim só terá a ganhar e crescer.

9. Precisando da resposta “certa” em vez de reconhecer um espectro de respostas “boas” e “ruins”

Se você vir a meta final da programação como encontrar a solução certa, em vez de um espectro de soluções, nunca será realmente bem-sucedido como programador.

Ao começar a aprender as habilidades ou a programação, as pessoas geralmente querem saber se o que eles fizeram é “certo”. A resposta é sempre “depende”.

A ciência da computação é uma ciência de avaliação de compensações. Dados diferentes conjuntos de circunstâncias, qual seria o melhor caminho? Tudo depende das circunstâncias e objetivos. Quando você vê a programação como um teste com uma resposta certa ou errada, você está perdendo de vista o quadro geral e desistindo de sua criatividade. Qualquer resposta pode ser “certa” se você puder justificá-la, dadas as circunstâncias.

A realidade é que a programação é mais como escrever poemas ou contos (ou potencialmente romances, se os programas forem grandes). Há uma estética e beleza que podem ser vistas em seu código e, às vezes, só é reconhecível por você e por outros programadores. As razões pelas quais você decidiu sua solução e a maneira como concebeu sua resposta são mais importantes do que o “caminho certo” ou o “caminho errado”.

Ter a mente de um artista permite que você jogue com opções e possibilidades, ao invés de pensar que há apenas um caminho. Essa é a beleza da programação, há muitas maneiras de resolver um problema, e a consideração de diferentes possibilidades leva a um sentimento sobre qual é o melhor caminho para a situação.

Seja criativo: Reconheça que existem várias maneiras de resolver um problema e, por meio da experiência e da exposição, você desenvolverá uma compreensão diferenciada de horas extras sobre quais soluções são melhores que outras. Olhando para o quadro geral, imaginando diferentes possibilidades e confiando em seu instinto, você terá melhores soluções mais satisfatórias.

10. Não prestando muita atenção aos detalhes

Se você encobrir detalhes e negligenciar pequenas coisas, você nunca será um programador verdadeiramente bem-sucedido.

Computadores são máquinas precisas. Quando se trata de programar um computador, você precisa fornecer os comandos necessários exatamente como um computador espera. Se você não o fizer, nada vai funcionar. Não existe um meio-termo onde as coisas funcionem na maioria das vezes — ou isso acontece ou não.

Isso significa que, quando você está programando, precisa ter atenção aos detalhes. Cada espaço, suporte ou ponto e vírgula conta. Quando fora do lugar, nada vai funcionar. Quando o computador devolve uma mensagem de erro, você precisa ver a mensagem e entender exatamente o que está dizendo. E a realidade é que, se você perder detalhes como esse, poderá passar horas rastreando um problema que foi literalmente o resultado de um erro de digitação.

Como dizem, o diabo está nos detalhes. E isso é definitivamente verdade para programação.

Preste atenção aos detalhes: Os detalhes são importantes e você tem que aceitar isso. Depois de fazer isso, você pode começar a verificar sempre seu código em busca de algo que esteja fora do lugar. Você pode organizar seu código e usar ferramentas que ajudam a identificar problemas rapidamente.

Bônus: Ter uma mentalidade de negócios (ou vendedora)

Esta é uma observação paralela: as pessoas que são particularmente voltadas para os negócios, muitas vezes estão focados no resultado e não no processo. Eles querem obter um “aplicativo funcionando” que os mova para a frente em sua ideia de negócio, eles querem “chegar ao mercado primeiro”, e eles vêem a curva de aprendizado como uma barreira para o seu objetivo de fazer o negócio funcionar.

Ao refletir sobre as pessoas que eram realmente difíceis de ajudar a crescer como programadores, Bluks diz ter encontrado uma impaciência com o processo inibindo o aprendizado necessário para realmente entender a tecnologia. Essas pessoas tendem a ver a tecnologia como um meio para um fim, em vez de um domínio legítimo de conhecimento a ser explorado e desfrutado.

Como uma extensão natural disso, encontrou certas pessoas que estavam mais inclinados a negócios, e que lutavam com o aprendizado deles, frequentemente essas pessoas pegavam trabalhos freelancers cujo os quais elas mesmas não tinham as habilidades necessárias! Elas se esforçariam para encontrar recursos/modelos para fazer um projeto funcionar para um cliente ou terceirizar o trabalho para outra pessoa. Elas realmente eram inúteis na programação, mas foram incríveis em conseguir que as pessoas os pagassem para programar!

Então, o que se pode acrescentar é que as pessoas que desejam iniciar negócios são excelentes em vendas, networking e desenvolvimento de negócios, e podem ter mais dificuldades do que outros para aprender as habilidades de programação. Seu desejo natural de criar oportunidades financeiras e conectar pessoas a soluções torna-as impacientes com os detalhes tediosos (para alguns) envolvidos na programação.

Conclusão

Embora a programação possa ser uma habilidade difícil de aprender, é certamente uma que a maioria das pessoas pode aprender. A lista acima contém atitudes e mentalidades que atrapalham, mas a maioria das pessoas pode superá-las e desenvolver uma competência na área de programação — até domina-la.

Se você estiver interessado em aprender a programar, recomendo que você inicie a jornada. Tenha em mente a lista acima e comece a explorar os muitos recursos disponíveis on-line que podem fazer com que você avance rapidamente. Você não vai se arrepender.

Obrigado Jonathan Bluks pelo ótimo artigo.

Abraço pessoal e até a próxima 😎!

--

--

Danilo Lutz

Obsessed for learning. OOP, PHP, C# and Python lover. Since 2003 coding...