Archive for January, 2010
(Inglês) TDD as a training method
Este texto está disponível apenas em Inglês.
Então você agora é um desenvolvedor de software
Você conseguiu seu primeiro emprego como desenvolvedor de software.
Caso se trate de software corporativo, você provavelmente atuará com Java, .NET, ou alguma coisa do tipo.
A primeira coisa que vem a sua cabeça é que você precisa ficar fluente na tecnologia que você terá em mãos.
De fato, esta preocupação é completamente válida.
No entanto, tenho visto programadores iniciantes cometendo um erro, diante desta situação.
Por um lado, adquirir conhecimentos técnicos sobre a plataforma e os frameworks que você utilizará é essencial.
Por outro lado, existem outros assuntos que também merecem atenção durante esta etapa.
Frameworks não te ensinarão os fundamentos.
E sem estes, nenhum conhecimento técnico será suficiente para fazer de você um profissional completo.
O recomendado é que você não deixe de estudar a tecnologia que você atuará.
Mas dedique-se também ao estudo de fundamentos.
São diversos os assuntos que merecem atenção.
Entre eles:
- Algoritmos e Estruturas de Dados – antes de sair por aí escrevendo código, certifique-se de saber o que você está fazendo.
- Orientação a Objetos – um assunto extremamente extenso e relevante caso você programe em uma linguagem que implemente este paradigma.
- Protocolo HTTP – entender o funcionamento da comunicação entre um browser e um servidor web é o mínimo que se espera de desenvolvedores web.
- Não menos importante, aprenda a arte de escrever código expressivo.
Escrever código expressivo é, infelizmente, algo negligenciado por muitos profissionais experientes.
Para este assunto em específico deixo a indicação de uma leitura.
Quanto aos outros assuntos, uma pesquisa te conduzirá a diversos materiais que podem ser utilizados.
Minhas recomendações estão abertas a críticas e sugestões.
Bom estudo!
2009 em números
Terminou 2009.
Que tal uma rápida retrospectiva?
Vamos aos números!
1 blog fundado.
40+ posts escritos.
200+ mensagens enviadas em listas de discussão.
1 conta no Twitter fundada.
50+ seguidores no Twitter.
300+ updates no Twitter.
0 participações em eventos técnicos.
0 apresentações.
3 projetos full-time.
2 projetos full-time cuja arquitetura (ou falta de uma) trouxe problemas.
0 projetos part-time.
3 empregadores – um deles sendo eu mesmo.
1 projeto open source fundado.
1 projeto open source abandonado.
0 contribuições para projetos open source de terceiros.
2 certificações.
10+ livros técnicos lidos.
10+ frameworks aprendidos.
3 novas linguagens de programação – Ruby, Java e T-SQL.
2 novas plataformas de desenvolvimento – Ruby on Rails e JEE.
Alguns números que eu adoraria ter conhecimento:
Quantidade de linhas de código escritas.
Quantidade de linhas de código removidas.
Quantidade de bugs esperando pelo momento certo.
Quantidade de bugs corrigidos.
Quantidade de depurações feitas, já que eu não trabalhei com TDD.
Quantidade de cafezinhos durante reinicializações de um servidor de aplicação.
Quantidade de WTF por dia ao entrar em contato com o código de outros programadores.
Quantidade de WTF por dia ao trabalhar com famigerados Business Delegate, Service Locator e Data Transfer Object.
Quantidade de WTF por minuto ao testar funcionalidades supostamente prontas.
Quantidade de problemas encontrados em documentos de requisitos.
Quantidade de código escrito em função de uma arquitetura ruim.
Entre outros.