Disclaimer: Este post é o primeiro de uma série sobre o livro O Programador Pragmático, tratando sobre a primeira edição, caso deseje compra-lo dá uma conferida no último parágrafo (o que já irá acontecer se você ler o post inteiro).
Durante nossas carreiras existem alguns momentos enigmáticos que nos fazem refletir sobre o que realmente queremos para o nosso futuro, sobre o profissional que queremos ser e como iremos nos portar pelos próximos anos. Tais momentos são motivados por diversos fatores, como um perrengue no trabalho, um professor que sabe te direcionar, a comunidade, ou como é no caso, um livro.
No ano de 2011 iniciei a minha jornada profissional como programador, já havia lido alguns títulos técnicos, mas estava longe de ser o que consideramos um bom profissional. Havia muito o que aprender para poder ter mais autonomia e confiança, tanto tecnicamente como comportamentalmente. Durante minhas perambulações pela livraria Cultura do Conjunto Nacional passei pela área de informática e esbarrei em um livro interessante, O Programador Pragmático de Andrew Hunt e David Thomas.
Folheando vi diversos temas que esbarram no técnico, mas tinham uma visão mais geral, trazendo uma lista de competências que nós, programadores, deveríamos desenvolver para sermos profissionais mais pragmáticos.
O livro é bem direto em seus pontos, abordando assuntos diversos e algumas novidades para um jovem programador que já em 2011 não sabia o que estudar devido a enxurrada de informação da época (e olha que a onda do novo framework de Javascript por segundo ainda estava por vir). A estrutura do livro é em capítulos-tópicos, curtos e bem objetivos. Os temas são variados, passam pelo teste unitário e sua importância, como estruturar o código e princípios de boa engenharia de software, ferramentas que devemos dominar e chegando no ponto sobre gestão de projetos ágeis (tanto o Andrew quando o David são signatários do Manifesto Ágil)
Ele realmente me impactou no que diz respeito sobre o que é um software de qualidade e principalmente a qualidade de um profissional de programação. A abertura para assuntos que eu nunca tinha visto antes, como expressões regulares, testes unitários, manipulação de textos e domínio da linha de comando já fez a minha cabeça abrir para diversos assuntos, fazendo eu ter que lidar com linguagens antigas porém muito poderosas em suas premissas (a edição brasileira é de 2010, mas na verdade o livro data de 1999) como Smalltalk e Perl.
Confesso que li mais rápido do que deveria, pois este não é um livro que você simplesmente passa por suas páginas e tem uma fácil absorção, principalmente se você for tão amador quanto eu era na época. Ele propõe diversas ideias com muitos exemplos e não deixa passar em branco seu aprendizado no final dos capítulos, propondo exercícios e reflexões sobre problemas e casos relacionados ao tema. Revisitei o livro diversas vezes durante os anos seguintes e sempre aprendia algo novo, fazendo seus exemplos, levando para o meu trabalho diário o que estava aprendendo dele.
Não caberia neste post falar sobre todos os tópicos do livro e logo iniciarei uma jornada mais detalhada pelos capítulos da segunda edição lançada este ano, sendo assim vou deixar para uma resenha mais completa passar por tais tópicos. Novos tópicos foram adicionados na segunda edição (como uma seção inteira sobre concorrência e seus modelos), além de outros que foram encolhidos ou removidos (como geração de código pois com o avanço das abstrações em linguagens de programação não se fazem necessárias na mesma escala de outrora).
Caso queira adquirir o livro recomendo começar realmente pela segunda edição, mas caso não consiga vale ler a primeira edição emprestada ou quem sabe procurá-la em sebos, pois mesmo com linguagens e algumas tecnologias antigas, seus conceitos ainda são muito sólidos e valiósos.
Nenhum comentário:
Postar um comentário