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.
- 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.
- 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.
- 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.
- 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.
- 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?
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
May 21st, 2008 at 12:20 am
Marcado desde já no google reader para futuras consultas quando for adquirir um livro.
May 21st, 2008 at 2:47 am
Já li alguns livros presentes nesta lista…Agora, pretendo ler alguns outros =)
Valeu pela dicas…
May 21st, 2008 at 3:38 am
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’.
May 21st, 2008 at 3:48 am
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).
May 21st, 2008 at 6:06 am
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.
May 21st, 2008 at 9:39 am
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
May 21st, 2008 at 9:44 am
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.
May 21st, 2008 at 9:47 pm
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
May 22nd, 2008 at 3:54 am
Ó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.
May 22nd, 2008 at 3:04 pm
Eles estão em ordem de leitura?
Tenho o 2 e o 3. Agora, só falta ler :)
May 22nd, 2008 at 11:31 pm
Nenhum livro de redes? Tanenbaum e/ou TCP/IP do Comer.
May 23rd, 2008 at 9:53 am
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.
May 26th, 2008 at 11:40 am
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!
June 6th, 2008 at 11:36 am
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!
June 23rd, 2008 at 10:32 pm
[…] 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 […]
June 25th, 2008 at 9:18 pm
A maioria desses livros é inútil. [Esta aqui](http://www.ricbit.com/2008/06/como-aprender-computao.html) é bem melhor.
June 25th, 2008 at 9:24 pm
@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.
July 8th, 2008 at 11:45 pm
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.
July 9th, 2008 at 12:00 am
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.
August 19th, 2008 at 4:03 am
[…] é 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 […]
September 8th, 2008 at 12:41 pm
[…] http://blog.fragmental.com.br/2008/05/20/trilha-de-livros-desenvolvedor/ […]
October 22nd, 2008 at 4:53 am
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.
October 28th, 2008 at 6:30 am
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