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.

23 Responses to “Trilha de Livros: Desenvolvedor”

  1. Leonardo Fernandes Says:

    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. David Pereira Says:

    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. Fabio Nascimento Says:

    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. Leandro Guimarães Faria Corcete DUTRA Says:

    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. links for 2008-06-23 « pabloidz Says:

    […] 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. Leonardo Boiko Says:

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

  17. Phillip Calçado Says:

    @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. Leandro Guimarães Faria Corcete DUTRA Says:

    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. Phillip Calçado Says:

    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. 1up4Developers » Blog Archive » The Pragmatic Programmer, no ambiente Waterfall é claro ! Says:

    […] é 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. Pacotão de Links - Sonho Binário Says:

    […] http://blog.fragmental.com.br/2008/05/20/trilha-de-livros-desenvolvedor/ […]

  22. 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.

  23. Phillip Calçado Says:

    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

Leave a Reply