Pode ser paranoia minha, mas as vezes fico imaginando como ser um bom programador é uma paranoia.
Quanto maior a visão geral e o foco no principal, melhor é o programador
Na auto-escola dizem que ao dirigir a visão deve ser difusa, ou seja, você de ver “tudo” ao mesmo tempo, não só a caminho a frente. Na programação, o ideal é que o desenvolvedor saiba o máximo possível do maior numero de coisas, e ao mesmo tempo consiga se focar 100% em uma solução repleta de detalhes. Tem que pensar no macro, enquanto faz o micro. Seria como dirigir um carro atento a “tudo” e ao mesmo tempo realizar uma cirurgia dentária.
Quanto maior a experiência do sujeito em diversas áreas, e mais conhecedor minucioso da tecnologia, melhor.
Investigação e depuração
Poucas profissões possibilitam a investigação, depuração e experimentação como a programação de computadores. Um mecânico por exemplo também passa por isso (eu acho), ele precisa observar o problema, buscar a causa, ajustar, experimentar, avaliar se o que fez é o suficiente para só então considerar o problema resolvido.
Na programação, eventualmente se gasta mais tempo depurando (entendendo o que poderá dar de errado, porque não funciona como o esperado) do que fazendo o sistema propriamente dito. Isso exige paciência, persistência e muita atenção.
Você nunca para de aprender
Mesmo que não queira, você acaba sendo forçado a aprender, para resolver um bug no sistema ou para implementar alguma funcionalidade nova. Todo dia se aprende alguma coisa, mesmo.
Servidores, dispositivos, ambientes, modelos
Foi-se o tempo que o programador só programava, o analista só fazia modelos, etc. O programador hoje precisa saber de tudo (não que será responsável por tudo) mas precisará entender como as coisas se relacionam entre si para desenvolver com o melhor de funcionalidade, usabilidade, performance e resultado. Quando uma falha ocorre também o conhecimento do ambiente é essencial.
Hoje, ele precisa estar ligado em qual dispositivo seu sistema estará disponível (computador, celular, tablet, televisão), quem irá fornecer os dados, como irá fornecer, onde os dados estarão armazenados, como serão consumidos… Por estas e outras o programador precisa estar ligado em muito mais que apenas sua linguagem de programação favorita.
Imaginar algo que nunca foi feito nem imaginado
É bem diferente de outras profissões, onde se repete as mesmas coisas todos os dias. Mesmo profissões onde se exige um raciocínio intenso e concentração, como na engenharia, não tem a demanda diária de pensar como fazer algo que nunca foi feito.
Muitas das vezes não existe sequer uma pessoa que você possa consultar, porque o que se está fazendo é tão específico que seria praticamente impossível achar alguém que já tenha feito.
E você? Também acha interessante toda essa coisa de ser um programador?