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

Como saber se "eu sei programar"?

Fiz essa pergunta para o Gemini e a resposta foi tão boa, que decidi compartilhar aqui na comunidade, para mim a parte mais impactante foi como ele explica a síndrome do impostor.

Eu sei programar?

Essa é uma das perguntas mais comuns e, curiosamente, mais difíceis de responder, porque "saber programar" não é um botão de Ligado/Desligado. É um espectro contínuo.

Muitos iniciantes acham que saber programar é decorar a sintaxe inteira de uma linguagem. Não é.

Aqui está um guia prático para avaliar em que ponto da jornada você está e se já pode dizer "eu sei programar".


1. Os 5 Sinais Claros de Competência

Se você se identifica com a maioria dos pontos abaixo, você já sabe programar:

  • Você não entra em pânico com erros: Quando o terminal cospe um erro vermelho gigante, você não desiste. Você lê a mensagem, entende (ou traduz) o que ela diz, identifica a linha e começa a investigar.
  • Você sabe "quebrar" problemas: Se pedirem para fazer um "Sistema de Login", você não tenta escrever tudo de uma vez. Você pensa: "Ok, preciso de um banco de dados, preciso de um formulário HTML, preciso validar o email, preciso criptografar a senha...".
  • Você sabe pesquisar: Você não sabe tudo de cabeça (ninguém sabe), mas você sabe o que digitar no Google ou perguntar ao ChatGPT para achar a solução. Você sabe a diferença entre pesquisar "como programar" e "como iterar um array em Python".
  • Você entende o código dos outros: Você consegue abrir um código que não foi você quem escreveu (ou um código seu de 3 meses atrás) e, lendo linha por linha, entender o fluxo lógico do que está acontecendo.
  • Você saiu do "Tutorial Hell": Este é o maior marco. Você consegue começar um projeto simples do zero (uma tela em branco) e fazê-lo funcionar sem estar assistindo a um vídeo que te diz exatamente o que digitar a cada segundo.

2. A Diferença entre "Sintaxe" e "Lógica"

Uma confusão comum é achar que programar é saber escrever código sem consultar a documentação.

A Regra de Ouro: Saber programar é entender a Lógica de Programação, não decorar a sintaxe.

Se você entende o conceito de um loop (repetição), de uma variável (armazenamento) e de uma condicional (decisão), você sabe programar. Se você esqueceu se em Python se escreve for i in list ou foreach(i), isso é apenas um detalhe de sintaxe. Programadores seniores consultam a documentação o tempo todo.


3. Os Níveis de Consciência

Onde você se encaixa hoje?

NívelDescriçãoStatus
O CopiadorVocê consegue fazer as coisas funcionarem, mas apenas se copiar e colar código de tutoriais. Se mudar uma vírgula, tudo quebra e você não sabe porquê.Ainda aprendendo
O "Bricoleur"Você pega códigos prontos, mas consegue modificá-los para fazer o que você quer. Você entende onde mexer para mudar a cor ou o cálculo.Quase lá
O ConstrutorVocê tem uma ideia ("quero fazer uma lista de tarefas") e consegue abrir o editor, escrever o código, enfrentar erros e terminar com algo funcional, mesmo que o código esteja "feio".Você sabe programar!
O ArquitetoVocê não só constrói, mas pensa em como organizar o código para que ele seja limpo, rápido e fácil de manter no futuro.Profissional

4. O Teste Prático (Desafio)

Quer tirar a prova real agora? Tente fazer este exercício simples sem seguir um tutorial passo-a-passo (pode usar o Google para dúvidas específicas, mas não para a solução completa):

O Desafio: Crie um programa simples que peça ao usuário um número e diga se ele é par ou ímpar.

  • Nível 2: Faça ele pedir números repetidamente até o usuário digitar "sair".
  • Nível 3: Armazene todos os números digitados em uma lista e, no final, mostre a soma total.

Se você consegue visualizar a lógica necessária para fazer isso (mesmo que demore para escrever o código), parabéns, você sabe programar.


Uma Nota sobre a Síndrome do Impostor

Na programação, quanto mais você aprende, mais você descobre que não sabe nada. Isso se chama Efeito Dunning-Kruger.

Mesmo programadores com 10 anos de carreira às vezes olham para a tela e pensam "eu não sei o que estou fazendo". A sensação de "não saber o suficiente" é normal e provavelmente vai te acompanhar para sempre. O segredo é estar confortável com o não saber e confiar na sua capacidade de aprender a solução.

Carregando publicação patrocinada...
4

Vou deixar aqui minha humilde contribuição depois de passar anos como programador, tech lead e até CTO.

O que eu percebi no mercado durante um tempo, inclusive na bolha que explodiu a quantidade de "devs não devs" no mercado, foi uma preocupação insana pra fazer o famoso "Clean Code", arquitetura, escrever código bonitinho, fluxos, etc...

O problema é que, na maioria desses cenários onde eles se preocupavam demais com a qualidade de código, entendiam cada vez menos os requisitos, demandas e até mesmo os colegas de trabalho.

Ser um bom programador não é só avaliado na capacidade de escrever um código limpo, conciso, performático, etc, mas é também entender requisitos, moldar ideias, ajudar pessoas e entregar projetos de valor. Eu já conheci muito dev que escrevia um código mais horrendo que o outro, era até difícil de entender, nem os comentários faziam sentido, mas era o tipo de cara que não saia da sala de reunião com o cliente até ter tudo completamente mapeado e bem definido na regra de negócio, ajustava o que fazia e o que não fazia sentido pro projeto e entregava uma parada de valor bem maior do que só um código bonito.

É claro que, pra grandes equipes, projetos robustos e etc, esses paradigmas e arquiteturas são cruciais pro bom entendimento da equipe, manutenibilidade e tudo mais, mas pra galera mais nova: Evitem se preocupar muito com essa ideia de "Será que sou bom programador? Será que o código ta limpo? Será que to seguindo os melhores conceitos?", pq na real, sempre vai vir um cara amanhã com um conceito novo, uma empresa que criou uma arquitetura mais eficiente e essa bolha da síndrome do impostor só aumenta.

Agora, uma visão extremamente pessoal, pois trabalhei com vários perfis distintos e vou destrinchar dois deles:

  1. Dev com código ruim, mas que lida muito bem com pessoas e processos;
  2. Dev extremamente bom em tech, mas que não conseguia falar um "Bom dia" sem "morder" alguém.

Ambos tem suas skills e são bons para cenários específicos mas, particularmente, eu prefiro alguém que tenha mais essa soft skill de pessoas, que entenda problemas, destrinche soluções, do que um super gênio com um cartaz nas costas escrito: "Não me interrompa".

Programação nem sempre foi (e não é) sobre o quanto você escreve de código. A tecnologia ela é só um meio.

Então sim, se você consegue entender um pedido, moldar ele na sua cabeça como ele seria, ajustar/colaborar com uma regra de negócio, arquitetar isso com o time/cliente/pessoas... Você já é um bom programador. A partir dai, escrever código é só um meio de chegar no resultado.

Ps: Minha ideia não é demonizar o perfil super senior totalmente focado em código hahaha Como falei, ambos tem suas áreas e seus valores. Aqui foi só uma definição pessoal pra galera não se impactar muito por essa questão da síndrome de impostor.

Lembrem-se: "Só sei que nada sei".

2

Que contribuição sensacional. Realmente acabamos falando mais de hardskills e menos de softskills, acredito que seja devido aos requisitos das vagas exigirem cada vez mais uma lista gigantesca de tecnologias.

3

Legal sua postagem, certamente ela tem utilidade, mas eu preciso fazer umas ressalvas para as pessoas que vão ler isso.

Primeiro a definição do https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect está errada, é o oposto, se você sabe que não sabe nada está ótimo esse efeito não está te pegando.

Algumas pessoas sofrem de Síndrome de Impostor. Ao contrário da crença popular, essa "síndrome" ocorre com bons profissionais que são capazes de fazer tudo o que é necessário, mas ela chama que não sabe. Se ela realmente não sabe e tem entendimento que não sabe ela não tem a tal "síndrome", ela é realmente incapaz. Pode haver vários níveis disso, então pode ser pouca coisa ou muita que a pessoa tem.

Só saber como se virar não é suficiente para determinar a capacidade da pessoa, isto é algo bastante complicado de avaliar.

De forma geral a maioria dos programadores, ou outros profissionais, são saberão avaliar se sabem programar ou não e aí o efeito Dunning-Kruger pode surgir ou não, ou até a Síndrome de Impostor, embora quando esta última aparece com persistência e de forma intensa, a pessoa não tem mesmo toda capacidade necessária, apesar de ter quase tudo.

"Saber programar" não tem uma definição clara e cada um pode estabelecer suas próprios regras. Tenho um amigo que a regra dele é "se você disser que é programador, você é programador". Ele é muito experiente, não é burro, mas é influenciado por uma bolha positivista e inclusive que cria distorções. Eu conheço várias pessoas que determinam que só sabe programar quem sabe toda a computação e engenharia de software em todos os seus aspectos, ainda que não tenha forte experiência em tudo isso, mas ela está preparada para se aprofundar mais, tomar boas decisões com conhecimento de causa. E claro que tem diversas variantes entre esses extremos. Eu estou mais perto desse segundo extremo do que o primeiro ou mesmo bem no meio. O texto do autor parece ir na direção oposta. E talvez não seja claro para alguns que determinar isso com precisão é muito difícil.

Geralmente, até atingir uma grande conhecimento e experiência, a pessoa não consegue se autoavaliar bem. Ela precisa da avaliação de outras pessoas que sejam extremamente experientes não só na programação, que entenda tudo isso que eu estou falando aqui e que não possua vieses sócio-políticos ou mesmo técnicos, que o desqualifica para avaliar alguém de forma correta. Não se esquece que os processos seletivos são muito mal-conduzidos e está cada vez pior, porque as pessoas estão com dificuldade de avaliar outros profissionais, e muitas vezes a sua própria incompetência superestima a competência do outro. Também pode ocorrer o oposto.

O texto original não está errado, mas é uma apenas forma de avaliar, uma que não é muito rígida e provavelmente serve para indicar que você é um trainee ou quem sabe um júnior. Algumas pessoas vão errar até pelo efeito DK.

Se você preferir pedir para alguém te avaliar, lembre-se essa pessoa pode não ser boa avaliadora, ou pode até ter pudor em dizer que você ainda não chegou lá para não desincentivar você, o que já vai te viciando, é como uma droga, parece gostoso, mas depois você paga um preço por ter usado.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui).

2

Obrigado por sua contribuição. Sei que programador é uma profissão tão séria quanto a de médicos, mas um benefício da nossa área é que não precisamos fazer 5 anos de graduação, 2 anos de residência e mais não sei quanto de especialização para abrir o editor de código e fazer alguma coisa, já cirurgiões precisam antes de sair abrindo as pessoas. O que quero dizer é que nem sempre é preciso conhecer tudo para desenvolver algo bom e que funciona, claro que há excessões como programadores de sistemas de voo e equipamentos médicos. Na minha opinião acho melhor evoluir aos poucos estudando e praticando, e (talvez) com o tempo chegar em um nível descente, mas mesmo assim não acredito que saber programar é reservado para para especialistas na ciência da programação.

2

Pra mim esta sua publicação foi muito útil.

Eu como estudante de programação, me senti concenteza mais feliz ou leve ao ler está publicação.

E eu acho sem dúvidas impressionante como isso foi algo vindo de uma AI, como que isto mostra cada vez mais como isto as AI's não devem ser tratadas como um bicho que veio para estragar a humanidade, mesmo que ela não seja nossa salvação, ela ainda pode ser uma ferramenta muito útil tanto para nossa vida profissional quanto para a pessoal também.

Eu em nome de todos os programadores iniciantes, que ainda se perguntam Eu sei programar? e leram esse post e tiveram sua resposta, venho dizer Obrigado, obrigado por compartilhar isto com a gente!

2
2
2

Muito legal Bruno !
Obrigado por compartilhar.

Eu usei a tabelinha considero que sou profissional aposentado.

Eu já tinha lido sobre a síndrome do impostor e sobre Efeito Dunning-Kruger, mas achei a explicação (o segredo) bem interessante e esclarecedora.