Trilha de Livros: Desenvolvedor

Esta então é a prometida lista de livros para desenvolvedores. Claro que não é nenhuma lista exclusiva ou “o guia definitivo”, apenas minha recomendação de leitura, partindo do principio que você já sabe programar em uma linguagem como Ruby, C# ou Java.

Este guia é bem genérico, sem tentar se especializar em nada e sem tentar abranger mais que o mínimo necessário. Espere modificações nesta lista.

  1. Operating Systems: Design and Implementation: Este ode não ser o melhor livro sobre Sistemas operacionais –ou pelo menos não o mais didático- mas eu gosto bastante. A maioria dos conceitos básicos de um Sistema Operacional está presente mesmo nas máquinas virtuais e seja como for, antes de abstrair você precisa entender como seu computador funciona. Claro que se você cursou SO na faculdade e, principalmente, se lembra de como memória virtual, filesystems e demais funcionam pode passar por este item –eu acho que uns 5% dos desenvolvedores que conheço se enquadram nisso, entretanto.
  2. Fundamentals of Object-Oriented Design in UML: Este livro ensina métricas e princípios básicos para desenvolvimento de sistemas Orientados a Objetos. Se você passou por projeto estruturado provavelmente conhece o autor e algumas de suas métricas.
  3. Head First Design Patterns: Uma introdução suave aos Design Patterns. A vantagem em começar com este ao invés do clássico (que é o próximo na lista de qualquer modo) é que você não tem que lidar logo de cara com Smalltalk e C++. Aprender um conceito não-tão-simples quanto Design Patterns enquanto tenta entender uma sintaxe fora do dia-a-dia é criar complexidade acidental.
  4. Design Patterns: Elements of Reusable Object-Oriented Software: Apesar de não ser indicado ao iniciante eu não acredito que voc6e consiga ir muito longe sem ler este livro. Pelo menos as narrativas são fundamentais para entender as motivações e a evolução do conceito de patterns. A falta desta leitura faz com que pessoas cometam erros grotescos.
  5. Agile Software Development, Principles, Patterns, and Practices: (em versão Java ou .Net) este livro traz uma visão bem pratica sobre alguns aspectos mais teóricos da Orientação a Objetos. Como u organizo pacotes? Qual o problema em ter dependências e como me livro delas? Devo sempre retornar null? O que significa herança na pratica?
  6. Refactoring: Improving the Design of Existing Code: Conforme você for entendendo mais sobre design de software vai sentir uma vontade enlouquecedora de apagar todo o seu sistema e começar de novo. Antes de sair por aí cometendo carreiracídio leia este livro, ele vai te ensinar a fazer pequenas mudanças que melhoram a qualidade do sistema e identificar código que fede.
  7. Patterns of Enterprise Application Architecture: A maioria dos patterns que você teve contato até aqui tratam de design em um nível micro. Como classes interagem, como elas colaboram e como gerenciar seus problemas. Este livro, entretanto, fala sobre padrões em um contexto mais amplo, sobre arquitetura de software.
  8. Domain Driven Design: Os livros até então falam de sotware pelo software. Como criar uma classe, como gerenciar dependências entre classes… mas ninguém te mostrou o que deve ser uma classe e o que não deve. Eric Evans supre esta demanda mostrando uma abordagem simples e eficiente para criar domínios que se aproximam do mundo real.
  9. POJOs in Action e/ou Applying Domain-Driven Design and Patterns: With Examples in C# and .NET: É normal que exista uma certa dificuldade em levar estes conceitos para o dia-a-dia. Estes livros não são indispensáveis mas eles ajudam bastante a entender como aplicar conceitos, ainda que algumas vezes de maneira “não canônica” mas ainda assim eficaz.
  10. The Pragmatic Programmer: From Journeyman to Master: Infelizmente muitas vezes, especialmente em consultorias de três letrinhas e faculdades McDonald’s, não temos um ambiente sadio para nos ensinar como programadores profissionais se comportam. Este genial livro traz uma boa parcela deste conhecimento condensado. Eu adicionaria o The Art of UNIX Programming, especialmente para aqueles que vêm de uma cultura drag’n'drop para o mundo real
  11. Ship it! A Practical Guide to Successful Software Projects Este livro é bem interessante para entender como um desenvolvedor utiliza ferramentas simples como controle de versão e issue tracker. Ótimo par aquém está profissionalizando uma empresa.
  12. Agile and Iterative Development: A Manager’s Guide Antes de você se dedicar a estudar mais uma metodologia de desenvolvimento em específico uma boa idéia é ler este livro, que traz um apanhado de diversas metodologias e as compara.

28 Responses to “Trilha de Livros: Desenvolvedor”

  1. Marcado desde já no google reader para futuras consultas quando for adquirir um livro.

  2. Alberto says:

    Já li alguns livros presentes nesta lista…Agora, pretendo ler alguns outros =)

    Valeu pela dicas…

  3. Gerson K. Motoyama says:

    Fala Philip, tudo bem?
    Domain Driven Design é ótimo mesmo, uma pena que muita gente não lê, acha que entendeu, aplica de qualquer jeito, e depois fala que tá usando (e adorando)… e no final acha uma droga, mas fala para os outros que é bacana porque todo mundo também tá falando que é bacana!
    Um outro livro muito bom que lí, e continuo lendo sempre como consulta, é o xUnit Test Patterns - Refactoring Code. Como todo bom livro, tem como requisito a leitura de livros como ‘PEAA’ e ‘Refactoring: Improving the Design of Existing Code’.

  4. Rubem Azenha says:

    Um investimento de mais ou menos mil reais e acho que cerca de um ano para ler todo esse conteúdo (levando em conta um livro por mês mais práticar o que aprendeu).

  5. Phillip, fiquei bastante feliz em saber que já li boa parte dessa sua lista. Agora faltou o Object Oriented Software Construction, do Bertrand Meyer, não? Abraços.

  6. Putz, que vergonha..

    Só li o do Eric Evans mesmo.

    Mas já está na lista de prioridades “TODO”.

    Pretendo ler pelo menos uns 5 dessa lista esse ano ainda.

    Abraços Philip

  7. Faltou aí um livro de dados, como o _Introdução a Sistemas de Dados_ do Chris(topher) J DATE. Não dá para programar sem entender dados.

  8. Tadeu says:

    Sou desenvolvedor .NET e estou aos poucos migrando para Java.

    Acompanho seus posts há algum tempo na comunidade GUJ, e tenho lido seu blog com certa frequência.

    Você programa Java há muto tempo ? Nunca migrei de ferramenta, embora eu trabalhe simultaneamente com PHP, .NET e Delphi.

    Tenho medo de mudar de ferramenta de desenvolvimento e “recomeçar” minha carreira, diminuir salário etc….

    Muito boa a lista de livros, e tenho reparado que na comunidade Java as pessoas se ajudam mesmo, trocando informações de grande valor. Em outras comunidades, o que interessa é responder as dúvidas para se certificar um “most value professional”.

    Vou seguir seu plano de leitura (embora já tenha lido dois de sua lista) e se possível gostaria de saber que curso no RJ posso fazer para agilizar meu aprendizado java.

    Obrigado e estou abusando de sua boa vontade….rs

    []s

  9. elomarns says:

    Ótima lista, Philip. Confesso que não li nenhum dos livros acima, pelo menos não do início ao fim. Eu tenho o péssimo hábito de ler mais de um livro ao mesmo tempo, sendo assim, acabo me interessando por outros durante a leitura, o que faz com que eu não termine a maioria deles. De qualquer forma, tenho como meta pra esse ano ler pelo menos 5 livros desta lista.

    A propósito, o que você acha do Practices of an Agile Developer: Working in the Real World? Ainda não acabei de lê-lo, mas até o momento estou achando uma introdução bem interessante ao desenvolvimento ágil, talvez por não se focar em uma metodologia específica.

  10. Otto Schuenemann says:

    Eles estão em ordem de leitura?

    Tenho o 2 e o 3. Agora, só falta ler :)

  11. Bruno says:

    Nenhum livro de redes? Tanenbaum e/ou TCP/IP do Comer.

  12. Rafael Dx7 says:

    otima lista!

    confesso que nao li nenhum desses, mas a maioria jah estava na minha lista de prioridades. pelo significa que estou pra pegar o caminho certo.

    o que acha do Code Complete do Steven C. McConnell? tah certo que a editora nao deixa muita credibilidade, mas eu li boa parte e achei muito interessante.

  13. Kimie says:

    Oba, lista de livros!

    O 1 estudei na faculdade - apesar que me enquadro nos 95%, me lembro apenas vagamente de inodes e round robin…
    O 6 li e adorei, achei que ajudou a melhorar meu estilo de programacao.
    O 10 esta na minha lista, e o 12… obrigada pelo 12!

    Falando neste ultimo, acho que um livro complementar seria o From Good to Great, pois concordo com o Collins quando ele diz “Right People First” e “Confront the Brutal Facts of Reality”: nao adianta querer aplicar XP ou Scrum com as pessoas erradas, e muito menos usar DDD sem saber oriantacao a objetos!

  14. Tarso says:

    Excelente!

    Phillip, como você conseguiu se organizar para ler tantos livros? Pergunto porque já comecei a ler uns 5 livros da sua lista e… só comecei. É tanta coisa pra ler que eu não consigo esperar terminar de ler um pra começar o próximo!

  15. [...] Trilha de Livros: Desenvolvedor Lista de livros para desenvolvedores. Claro que não é nenhuma lista exclusiva ou “o guia definitivo”, apenas uma recomendação de leitura, partindo do principio que você já sabe programar em uma linguagem como Ruby, C# ou Java. (tags: books programming) Blogroll [...]

  16. A maioria desses livros é inútil. [Esta aqui](http://www.ricbit.com/2008/06/como-aprender-computao.html) é bem melhor.

  17. @Leonardo

    Interessante seu ponto de vista mas inútil para mim é o comentário de alguém que reclama de algo sem sequer dar motivos.

  18. Calçado, o comentário do Boiko é utilíssimo. Ele não precisa dar motivos; basta comparar a lista dele com a tua, qualquer pessoa com mais que dois bits vai entender que a tua lista não tem nada que ensine as pessoas a pensar e questionar.

    Você até é uma pessoa questionadora, como demonstra tua nota sobre implementação ágil com cartões e notinhas post-it; mas você não tem conhecimento nem de dados nem dos clássicos da Informática, e nem quer ter, e isso torna teu blogue como um todo quase inútil para uma verdadeira educação, embora tenha lá suas jóias como a nota supracitada.

  19. Leandro,

    Seu comentário é extremamente pretensioso, arrogante e falacioso. De todo o seu conhecimento sobre dados e clássicos da informática eu pergunto: de onde você inferiu o que eu sei ou não? De onde você inferiu sobre o que eu li ou não li?

    Já que você leu tantos classicos eu me pergunto por que será que não conseguiu interpretar o primeiro parágrafo deste texto, o que fala que esta não é uma lista definitiva ou exclusiva?

    Não me lembro de ter escrito algo como “trilha do cientista da computação” ou “tudo que um desenvolvedor precisa saber” no título. Esta é uma lista para desenvolvedores com um foco específico, e - repetindo mais uma vez para que talvez a sua cabeça tão cheia de clássicos entenda- não uma lista completa ou com tudo o que é preciso saber.

    E eu me pergunto também o que uma pessoa com tanta sabedoria faz lendo o blog e comentando pela terceira vez nele. Eu entendo que você possua opiniões diferentes mas apelar ao ad hominem, especialmente baseado em conclusões tiradas sem nenhum conhcecimento de causa é algo ridículo.

  20. [...] é citado nas lista de “top hits” de pessoal muito bom como o Guilherme Chapiewski e Phillip Calçado. Agora entra a explicação do sadomasoquismo … ler um livro destes, realmente nos faz [...]

  21. Celso Martins says:

    Phillip, alguém que cria um post com uma lista de livros e usa o blog de outra pessoa como referência negativa não pode ser levado a sério.

    Continuo usando a sua lista como referência, e tem me ajudado bastante.

    Mas voltando as vacas frias, o que você acha do Effective Java do Bloch? Acabei de comprar esse livro e gostaria de saber a sua opnião sobre a obra.

    Abraços.

  22. Oi, Celso,

    Eu tentei não focar a lista em nenhuma plataforma e como não conheço equivalente ao Effective para C# ficou complicado. Para Ruby o Ruby Way é bem interessante.

    De qualquer modo é um ótimo livro.

    []s

  23. Sidney says:

    Olá Phillip.
    Faz um tempo que eu leio o seu blog e nunca achei oportuno comentar, mas essa lista, juntamente com o “comentário” do @Leonardo, me fizeram refletir um pouco.
    O “comentário” foi infeliz, mas o link é interessante, e essas duas listas são, pelo menos para mim, gritantemente divergentes.
    Não sou um programador, estou na profissão faz uns dois anos, então por enquanto estou mais aprendendo do que programando propriamente dito, então pode ser que este comentário esteja um pouco disperso.
    O que vejo nestas listas é que de um lado temos uma lista mais voltada para o “negócio” e uma outra mais voltada para a “teoria” (ia dizer pesquisa, mas mesmo esses dois termos não são exatamente a idéia que eu queria passar).
    Por enquanto estou “on demand”, conforme as necessidades vão aparecendo, vou adicionando conhecimento, seja lendo livros, cursos, blogs, etc.
    Mesmo porque como ainda sou “novo” na área, não sei bem ao certo como construir o meu conhecimento, existe muita informação, por vezes eu fico saturado com tanta coisa.
    Algumas vezes encontro uma dica como a sua lista de livros (comprei alguns livros dela e já estou lendo, obrigado pelas dicas).
    Então o que vejo nessas duas listas são duas abordagens diferentes, não existe aqui uma melhor que a outra, o que existe aqui é o diferente.
    Cada um aborda o assunto a sua maneira, pela visão que tem e pela experiência que possui.
    Seria interessante ler as duas? Talvez.
    O dia só tem 24hrs, às vezes fica meio apertado.
    :)

  24. Oi, Sidney,

    Então o que vejo nessas duas listas são duas abordagens diferentes, não existe aqui uma melhor que a outra, o que existe aqui é o diferente.

    Este é exatamente o ponto. A pessoa em questão assumiu que esta é A minha lista de livros recomendada para todas as ocasiões, ignorando completamente o contexto. Reclamar que a lista não ensina alguém a ‘pensar e questionar’ quando este não era nem de longe o objetivo do post. Uma comparação infeliz, falaciosa e sensacionalista entre duas listas com objetivos completamente distintos.

    []s

  25. [...] experiência). Tentando correr atrás de inspiração e principalmente do prejuízo cheguei a uma “Trilha de Livros: Desenvolvedor” elaborada pelo Phillip Calçado . Achei ela extremamente válida e decidi então escolher um dos [...]

  26. [...] este livro através de listas de um pessoal que admiro como o Guilherme Chapiewski  e Phillip Calçado .Este é o primeiro livro dos doze livros que pretendo ler este [...]

  27. Thiago says:

    Olá Phillip,

    Depois de tanto tempo, não gostaria de sugerir algumas alterações (talvez só inclusões) nessa lista?

    []’s

    ps: vai sair dia 27 de julho agora o livro JUnit in Action Second Edition, ouvi falar bem da outra edição, você já leu?