Sinais de que você é um bom programador

Índice
Essa é uma pergunta que muitos podem fazer e não importa quantas certificações eles possam ter ou experiência de trabalho na área de desenvolvimento, não significa que sejamos bons desenvolvedores, mas vamos ver alguns desses sinais que nos dizem que estamos no caminho certo.
Quer trabalhemos em aplicações desktop ou em desenvolvimento web, sempre será melhor usar um framework que nos ajude com o processo de desenvolvimento, nos dá uma estrutura padronizada e certas coisas como URLs amigáveis, ORM, templates, gerenciamento já vêm por aí padrão de sessões, arquivos e até imagens, para que não tenhamos que reinventar a roda, economizando tempo no desenvolvimento e garantindo que o produto final atenda aos padrões funcionais e de segurança.
Se você ainda não experimentou o poder dos frameworks ou já os conhece, mas deseja se aprofundar um pouco mais neles, você pode percorrer as seções de JavaScript e dar uma olhada em Knockout.js, Express, Sails, AngularJS e até mesmo jQuery tutoriais. Se você gosta mais da escola de PHP, temos tutoriais de Laravel e Yii e se você gosta de desafios temos tutoriais de frameworks Python como Django e Flask.
Desenvolvedores experientes sabem em primeira mão que o código é escrito uma vez, mas pode ser lido várias vezes. É por isso que sua escrita deve seguir convenções de nomenclatura, tanto em nomes de variáveis, classes, métodos e até constantes. Isso dará uma imagem muito mais clara para outro desenvolvedor que precisa entrar em nosso código ou apenas para aquele que está trabalhando conosco e precisa adicionar funcionalidade ao nosso código.
Além disso, se adicionarmos os comentários a isso, daremos ao nosso aplicativo um nível muito mais alto de manutenibilidade e qualquer outro desenvolvedor que tiver que fazer modificações nele já saberá o que cada coisa faz nele.
Muitas vezes teremos que criar uma nova funcionalidade, mas nem sempre será o caso e é por isso que deve haver reutilização de código, já que é inútil passar uma semana desenvolvendo uma funcionalidade e que no futuro teremos que fazê-lo novamente. Bons programadores vão além, eles têm rotinas genéricas e padrão em seus repositórios pessoais que podem reutilizar quando quiserem, existem até repositórios oficiais como NPM para Node.js ou Gems para Ruby que nos permitem encontrar bibliotecas que podemos reutilizar.
Nunca devemos confiar que nosso código é perfeito e livre de bugs apenas porque nosso aplicativo funciona corretamente. Para isso, existem testes automatizados ou podemos fazer uso de frameworks para testes unitários como o Jasmine para testar todos os componentes da nossa aplicação.
O uso de controle de versão e principalmente Git se tornou uma necessidade nos tempos atuais, não só nos ajuda a ter um backup do nosso código, mas também nos ajuda a acompanhar as mudanças nele e além de influenciar o trabalho colaborativo entre o desenvolvimento equipes.
Existem vários problemas de segurança sensíveis em termos de desenvolvimento de aplicativos, temos injeção de SQL, CSRF, XSS e até mesmo fixação de sessão. Felizmente, se usarmos uma estrutura e eles implementarem esses problemas de segurança, no entanto, nunca é demais saber em que consistem essas ameaças e como atacá-las.
Existem uma infinidade de ferramentas que nos auxiliam no desenvolvimento, não apenas frameworks ou pacotes, mas ferramentas ou bibliotecas que nos dão uma funcionalidade extra como no caso do Grunt ou CoffeeScript, até mesmo o uso de uma biblioteca que estende nossa aplicação como por exemplo as tabelas de dados para fazer relatórios e que combinadas com um framework nos darão um kit de desenvolvimento muito mais completo.
Por fim, é importante que todo bom programador saiba configurar o ambiente onde uma aplicação será implantada, embora se saiba que existem funções específicas nas equipes de trabalho e entre elas temos um responsável pela configuração do servidor, Assim como os ambientes de produção e desenvolvimento, é muito importante saber disso, pois nos poupará tempo na resolução de problemas de ambientes, falhas na plataforma, entre outros.
A forma como vemos ser um bom programador não depende de experiência ou certificações, mas de pormenores que podem parecer insignificantes, mas que juntos nos dão a base para desenvolver melhores aplicações e criar uma estrutura de trabalho que nos ajude ao longo da nossa carreira profissional.
wave wave wave wave wave