Navegar neste tópico me faz perceber como a maioria dos livros relacionados à programação é feia. Muito boa discussão!
24530 Carl Bergquist
23
Interessante é que, enquanto o título diz "Qual é o livro mais influente que todo programador deve ler?", Existem alguns livros sugeridos que lidam com tópicos específicos de idiomas. Por definição, e por perguntas como foram colocadas, os livros sugeridos aqui devem lidar com tópicos agnósticos de linguagem, o que prova que a maioria dos programadores ainda precisa aprender a ler.
Rook
19
Se eu pudesse voltar no tempo e me pedir para ler alguma coisa, seria melhor um jornal ou livro de fatos esportivos que eu carregava comigo. Qualquer outra coisa é um desperdício de boas viagens no tempo. :-)
jmucchiello
32
Você sabe, se eu não estivesse preocupada em ser votada MUITO, eu sugeriria Twilight. "É também sobre pessoas que são pálidas e evitam o sol!"
Jacob Bellamy
3
Alguém pode limpar as respostas excluindo entradas repetidas nos livros? A maioria deles já foi votada.
rao
Respostas:
1746
Code Complete (2a edição) por Steve McConnell
O programador pragmático
Estrutura e Interpretação de Programas de Computador
A linguagem de programação C de Kernighan e Ritchie
Introdução aos algoritmos de Cormen, Leiserson, Rivest & Stein
Padrões de Design da Gang of Four
Refatoração: aprimorando o design do código existente
O Mês do Homem Mítico
A arte da programação de computadores por Donald Knuth
Compiladores: Princípios, técnicas e ferramentas de Alfred V. Aho, Ravi Sethi e Jeffrey D. Ullman
Gödel, Escher, Bach por Douglas Hofstadter
Código Limpo: Um Manual de Artesanato de Software Ágil, por Robert C. Martin
C ++ eficaz
C ++ mais eficaz
CODE by Charles Petzold
Pérolas de programação por Jon Bentley
Trabalhando efetivamente com o código legado de Michael C. Feathers
Peopleware por Demarco e Lister
Coders at Work por Peter Seibel
Certamente você está brincando, Sr. Feynman!
Java eficaz 2ª edição
Padrões de arquitetura de aplicativos corporativos de Martin Fowler
The Little Schemer
O planejador experiente
Guia (comovente) de Ruby do Why
Os presos estão administrando o asilo: por que os produtos de alta tecnologia nos deixam loucos e como restaurar a sanidade
A Arte da Programação Unix
Desenvolvimento orientado a testes: por exemplo, por Kent Beck
Práticas de um desenvolvedor ágil
Não me faça pensar
Desenvolvimento, princípios, padrões e práticas de software ágil por Robert C. Martin
Projetos orientados a domínio por Eric Evans
O design das coisas cotidianas por Donald Norman
Design moderno em C ++ por Andrei Alexandrescu
Melhor escrita de software I por Joel Spolsky
A Prática de Programação por Kernighan e Pike
Pensamento e aprendizagem pragmáticos: Refatorar o seu Wetware por Andy Hunt
Estimativa de Software: Desmistificando a Arte Negra por Steve McConnel
O programador apaixonado (meu trabalho foi para a Índia) por Chad Fowler
Hackers: Heróis da Revolução Informática
Algoritmos + Estruturas de Dados = Programas
Escrevendo código sólido
JavaScript - As boas partes
Realizando-se por 37 sinais
Fundamentos da programação por Karl Seguin
Computação Gráfica: Princípios e Práticas em C (2ª Edição)
Pensando em Java por Bruce Eckel
Os elementos dos sistemas de computação
Refatoração de padrões por Joshua Kerievsky
Sistemas operacionais modernos por Andrew S. Tanenbaum
O Turing anotado
Coisas que nos tornam inteligentes Donald Norman
A maneira atemporal de construção de Christopher Alexander
O prazo: um romance sobre gerenciamento de projetos por Tom DeMarco
A linguagem de programação C ++ (3ª edição) por Stroustrup
Padrões de arquitetura de aplicativos corporativos
Sistemas de Computação - Perspectiva de um Programador
Princípios, padrões e práticas ágeis em C # de Robert C. Martin
Crescimento de software orientado a objetos, guiado por testes
Diretrizes de projeto de estrutura de Brad Abrams
Pensamento de Objetos pelo Dr. David West
Programação avançada no ambiente UNIX por W. Richard Stevens
Hackers e pintores: grandes idéias da era do computador
A alma de uma nova máquina por Tracy Kidder
CLR via C # por Jeffrey Richter
A maneira atemporal de construção de Christopher Alexander
Padrões de Design em C # por Steve Metsker
Alice no país das maravilhas por Lewis Carol
Zen e a arte da manutenção de motocicletas por Robert M. Pirsig
Sobre o rosto - o essencial do design de interação
Aqui vem todo mundo: o poder de organizar sem organizações por Clay Shirky
O Tao da Programação
Beleza computacional da natureza
Escrevendo código sólido por Steve Maguire
Guia de Philip e Alex para publicação na Web
Análise e Design Orientados a Objetos com Aplicações de Grady Booch
Java eficaz por Joshua Bloch
Computabilidade por NJ Cutland
Masterminds of Programming
O Tao Te Ching
O programador produtivo
A arte da decepção por Kevin Mitnick
Programador de carreira: táticas de guerrilha para um mundo imperfeito por Christopher Duncan
Paradigmas da programação de inteligência artificial: estudos de caso no Common Lisp
Masters of Doom
Teste de unidade pragmática em C # com NUnit por Andy Hunt e Dave Thomas com Matt Hargett
Como resolvê-lo por George Polya
O Alquimista de Paulo Coelho
Smalltalk-80: A linguagem e sua implementação
Writing Secure Code (2nd Edition) de Michael Howard
Introdução à Programação Funcional por Philip Wadler e Richard Bird
Code Complete é um bom livro, se você estiver na faculdade, talvez. Se você tem pelo menos 1 ano de experiência em programação, é um furo total.
Bogdan Gavril MSFT
19
O Code Complete possui muitas informações úteis, mas está enterrado em hipérbole, waffle e repetição, o que dificulta a leitura.
Jeff Yates
76
Li o Code Complete 3 anos em minha carreira. Eu não tinha feito um curso de engenharia de software nem um curso de construção de linguagem de programação, mas fiz alguns cursos introdutórios de CS. É de longe o melhor livro que eu já li para me tornar um programador melhor. Não fará de você um especialista, mas fará de você muito mais do que um tinkerer.
Shea
119
O problema deste livro é que, para um iniciante, não faz muito sentido, pois os conceitos são um pouco avançados. Quando estiver pronto para poder lê-lo, você já deverá conhecer e praticar 99% dos conceitos do livro.
ESAC
57
Esse é o trato com sugestões de bom senso, como as encontradas neste livro. De vez em quando você precisa ser lembrado deles para voltar à linha.
@ Juan: Eu conheço Juan, eu sei - mas há algumas coisas que só podem ser aprendidas se você realmente se dedicar à tarefa em questão. Falar em ideais abstratos o dia todo simplesmente o transforma em acadêmico. É na aplicação do resumo que realmente entendemos a razão de sua existência. : P
@ Keith: Uma grande menção a "The Inmates are Running the Asylum", de Alan Cooper - um revelador de certeza, qualquer desenvolvedor que trabalhe comigo desde que li esse livro me ouviu mencionar as idéias que ele propõe. +1
Enquanto isso não ensina programação, ensina matemática fundamental que todo programador deve conhecer. Você pode se lembrar disso na universidade, mas, na verdade, fazer uma lógica de predicado melhorará suas habilidades de programação, você precisará aprender a Teoria dos Conjuntos se quiser programar usando coleções.
Realmente há muitas informações interessantes aqui que podem fazer você pensar sobre os problemas de maneiras diferentes. É prático, basta pegar de vez em quando para aprender algo novo.
Provavelmente a "lei" mais profunda apresentada no livro:
Teorema fundamental do modo de falha (FFT): sistemas complexos geralmente operam no modo de falha.
A idéia é que existem partes com falha em um determinado software, mascaradas por falhas em outras partes ou por validações em outras partes. Veja um exemplo do mundo real na máquina de radiação Therac-25 , cujas falhas de software foram mascaradas por falhas de hardware. Quando as falhas de hardware foram removidas, a condição de corrida de software que não foi detectada durante todos esses anos resultou na máquina matando três pessoas.
Verifique também a Bíblia de Sistemas do mesmo autor (John Gall). É a terceira edição do Systemantics, ele acabou de mudar o título. Este é o livro que você roubaria da escola. É o livro que os adultos crescem lendo debaixo de um cobertor com uma lanterna.
precisa
9
Um dos meus favoritos é o Hacker's Delight , porque era tão divertido de ler quanto educacional.
Espero que a segunda edição seja lançada em breve!
+1 para "Hacker's Delight", de Henry S. Warren Jr - não se trata de hackear no sentido popular, mas de hackear como em brincadeiras de baixo nível e outros "hacks" no sentido verdadeiro e original da palavra. Não é para todos, mas se você está envolvido na otimização de código, compiladores, etc., ou é apenas um nerd geral interessado em coisas de baixo nível, então este é um ótimo livro.
Brillant, a capa do livro mostra "La Sagrada Família", uma grande basílica católica romana em construção em Barcelona, Catalunha, Espanha. A ser concluído em 2026 (restam apenas 17 anos). Como a maioria dos programas, mesmo com os melhores livros, eles nunca terminou ...
PeterMmm
9
Extrema programação explicada: abraçar a mudança por Kent Beck. Embora eu não defenda uma abordagem XP ou estrada do hardcore no desenvolvimento de software, eu gostaria de ter sido apresentado aos princípios deste livro muito antes na minha carreira. Teste de unidade, refatoração, simplicidade, integração contínua, custo / tempo / qualidade / escopo - isso mudou a maneira como eu olhava para o desenvolvimento. Antes do Agile, era tudo sobre o depurador e o medo de solicitações de mudança. Depois do Agile, esses demônios não pareciam tão grandes.
A prática da programação. Por Brian W. Kernighan, Rob Pike.
O estilo mostrado aqui é excelente - o código apenas fala por si e todo o livro segue o princípio do KISS. Pessoalmente, não minhas línguas de escolha, mas ainda influentes para mim.
Comecei a ler porque queria aprender Common Lisp. Quando estava no meio do caminho, percebi que esse era o melhor livro sobre programação que eu havia lido até agora.
Este livro explica muitas coisas sobre engenharia de software, desenvolvimento de sistemas. Também é extremamente útil entender a diferença entre diferentes tipos de desenvolvimento de produtos: web VS shrinkwrap VS framework IBM. O que as pessoas tinham em mente quando conceberam o modelo em cascata? Leia isso e tudo ficará claro (espero)
Este livro precisa ser reescrito do zero. O assunto é muito interessante, mas o livro é bastante insano.
precisa
Chris, tenho dificuldade em entender o seu comentário ... Você pode explicar mais? Por que 'louco'?
Dario minonne
Em primeiro lugar, está cheio de erros tipográficos. A mão editorial geralmente de primeira linha de Addison Wesley está estranhamente ausente neste volume.
Chris Mountford #
... continuando, e não há espaço suficiente aqui, mas: 2. nunca fica claro no texto em que o autor alterna entre fato e opinião, anedota e princípio fundamental etc. 3. o artesanato em software é uma metáfora e uma estratégia para lidar com vários aspectos difíceis do desenvolvimento de software. Tem vantagens específicas sobre alternativas e presumivelmente desvantagens. Eu acredito que essa é a abordagem sensata. Não faz sentido dizer que o software é inerentemente um ofício. Leitura muito irritante, mas para ser justo, foi há um tempo atrás e muitos detalhes que esqueci. Meu desgosto permanece, no entanto.
Chris Mountford
8
@ Peter Coulton - você não lê Knuth, você estuda.
Para mim e meu trabalho ... Estruturas de dados puramente funcionais são ótimas para pensar e desenvolver com linguagens funcionais em mente.
A excelência em programação exige um investimento de energia mental e uma dedicação ao aprendizado contínuo comparável às profissões de medicina ou direito. Paga uma fração do que essas profissões pagam, muito menos os salários pagos aos especialistas em matemática que se dirigem ao setor financeiro. E os salários para a construção de código estão corroendo porque é uma profissão que é relativamente fácil para os inteligentes e autodisciplinados na maioria das economias entrarem.
A programação já corroeu a ponto de pagar menos do que, digamos, encanamentos. O encanamento não pode ser "offshored". Você não precisa pagar US $ 2395 para participar da Professional Plumber's Conference a cada dois anos pelo privilégio de receber um conjunto totalmente novo de tecnologias de encanamento que levará um ano para você aprender.
Se você mora na América do Norte ou na Europa, é jovem e inteligente, a programação não é uma opção de carreira racional. Empresas que envolvem programação, absolutamente. Estude negócios, saiba o suficiente sobre programação para refinar seu detector de BS: brilhante. Mas dedicar a maior parte de sua energia mental ao domínio de bibliotecas, estruturas de dados e algoritmos? Isso só faz sentido se a programação é algo mais para você do que uma escolha econômica.
Se você gosta de programar e, por esse motivo, pretende fazer da sua carreira, é necessário que você desenvolva uma compreensão fria das forças que são e continuarão a torná-la uma profissão cada vez mais difícil para se sustentar. . "O mundo é plano" não ensinará a você como nomear suas variáveis, mas mergulhará por 6 ou 8 horas em realidades econômicas que já chegaram. Se você pode lê-lo, e não ficar com medo, em seguida, sair e comprar "Code Complete".
Cada livro foi incrível, mas o dilema do inovador de Clayton Christensen (1997 !!!) é realmente um livro fantástico, e isso me fez pensar muito sobre o mundo moderno do software. O desafio enfrentado é a tecnologia disruptiva e como as empresas de unidades de disco e as não técnicas são sempre interrompidas por uma nova tecnologia revolucionária. Dá uma nova perspectiva ao pensar no Google, provavelmente a maior empresa da web. Por que eles têm as mãos em TUDO? É porque eles não querem que sua posição seja interrompida por algo novo. A visualização no google é suficiente para entender a idéia. Leia-o!
A linguagem Python foi muito influente para mim, eu gostaria de ter lido esses livros anos atrás. A beleza e a simplicidade da linguagem Python realmente afetaram a maneira como escrevi código em outras linguagens.
Acho que iniciar novos programadores com Python reduziria a quantidade de código feio no mundo. Eu trabalho com alguém que recua linhas aleatoriamente - essa pessoa não faria isso se tivesse trabalhado com Python por alguns meses.
xnine 25/10/10
6
Eu acho que iniciar novos programadores com Python reduziria a quantidade de outras linguagens.
Livro muito bom. Tem um gosto de alto nível das áreas mais importantes da ciência da computação. Sim, CS! = Programação, mas isso ainda é útil para todos os programadores.
Eu acho que "The Art of Unix Programming" é um excelente livro, por um excelente hacker / mente brilhante como Eric S. Raymond, que tenta nos fazer entender alguns princípios do design de software (principalmente a simplicidade). Este livro é obrigatório para toda programação que está prestes a iniciar um projeto na plataforma Unix.
Embora eu concorde que muitos dos livros acima são leituras obrigatórias (Programador Pragmático, Mês do Homem Mítico, Arte da Programação de Computadores e SICP vêm à mente imediatamente), eu gostaria de seguir uma direção um pouco diferente e recomendar Uma Disciplina. de programação por Edsger Dijkstra. Mesmo com 32 anos, a ênfase no "design para verificabilidade" é altamente relevante (mesmo que "verificabilidade" signifique "prova" em vez de "testes de unidade").
Eu tinha grandes esperanças para este livro, mas não faz isso por mim. Eu acho que está afirmando o óbvio. Provavelmente é bom para quem é iniciante em programação.
Eu concordo totalmente. A abordagem da Deitel no aprendizado de uma linguagem de programação é incrível. Considero Java Como Programar como minha bíblia de programação!
O que há de tão especial nisso? Bem, claramente todo mundo já ouviu o termo "Agile", e parece que a maioria é de crentes hoje em dia. Quer você acredite ou não, existem alguns princípios profundos por trás do porquê do movimento Agile existir. Este livro descobre e articula esses princípios de maneira precisa e científica. Alguns dos princípios são (aliás, essas são minhas palavras, não as de Alistair):
A coisa mais difícil sobre o desenvolvimento de software de equipe é fazer com que o cérebro de todos tenha o mesmo entendimento. Estamos construindo sistemas enormes, elaborados e complexos, invisíveis no mundo tangível. Quanto melhor você conseguir que os cérebros das pessoas compartilhem um entendimento mais profundo, mais eficaz será sua equipe no desenvolvimento de software. Essa é a razão subjacente pela qual a programação em pares faz sentido. A maioria das pessoas descarta isso (e eu também fiz isso inicialmente), mas com esse princípio em mente, recomendo que você dê outra chance. Você acaba com DUAS pessoas que entendem profundamente o subsistema que você acabou de criar ... não existem muitas outras maneiras de obter uma transferência de informações tão profunda tão rapidamente. É como uma fusão mental vulcano.
Você nem sempre precisa de palavras para comunicar rapidamente um profundo entendimento. E um corolário: muitas palavras e você excede a capacidade do ouvinte / leitor, o que significa que a transferência de entendimento que você está tentando não acontece. Considere que as crianças aprendem a falar a língua sendo "imersas" e "absorvendo". Também não é a linguagem ... ele dá o exemplo de algumas crianças brincando com trens no chão. Junto vem outro garoto que nunca viu um trem antes ... mas, observando as outras crianças, ele pega a essência do jogo e joga junto. Isso acontece o tempo todo entre humanos. Isso, juntamente com o corolário sobre muitas palavras, ajuda você a ver como estava errado nos velhos tempos da "cachoeira" para tentar escrever especificações de requisitos detalhados de 700 páginas.
Há muito mais lá também. Agora vou calar a boca, mas recomendo vivamente este livro!
Uma contribuição única e você teve tempo para explicar claramente por que valia a pena ler. +1 por originalidade e esforço! Vou olhar para a frente a ler esta breve ...
Avery Payne
Boa. Eu não acho que você ficará desapontado.
Charlie Flowers
7
Mestres da desgraça. No que diz respeito à motivação e ao amor pela sua profissão: não haverá nada melhor do que o descrito neste livro, uma história verdadeiramente inspiradora!
Respostas:
fonte
K&R
@ Juan: Eu conheço Juan, eu sei - mas há algumas coisas que só podem ser aprendidas se você realmente se dedicar à tarefa em questão. Falar em ideais abstratos o dia todo simplesmente o transforma em acadêmico. É na aplicação do resumo que realmente entendemos a razão de sua existência. : P
@ Keith: Uma grande menção a "The Inmates are Running the Asylum", de Alan Cooper - um revelador de certeza, qualquer desenvolvedor que trabalhe comigo desde que li esse livro me ouviu mencionar as idéias que ele propõe. +1
fonte
Matemática discreta para cientistas da computação http://ecx.images-amazon.com/images/I/51HCJ5R42KL._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU02_.jpg
Matemática Discreta Para Cientistas da Computação por JK Truss.
Enquanto isso não ensina programação, ensina matemática fundamental que todo programador deve conhecer. Você pode se lembrar disso na universidade, mas, na verdade, fazer uma lógica de predicado melhorará suas habilidades de programação, você precisará aprender a Teoria dos Conjuntos se quiser programar usando coleções.
Realmente há muitas informações interessantes aqui que podem fazer você pensar sobre os problemas de maneiras diferentes. É prático, basta pegar de vez em quando para aprender algo novo.
fonte
Sistemática: Como os sistemas funcionam e especialmente como eles falham . Use-o barato. Mas você pode não entender o humor até ter trabalhado em alguns projetos com falha.
A beleza do livro é o ano dos direitos autorais.
Provavelmente a "lei" mais profunda apresentada no livro:
Teorema fundamental do modo de falha (FFT): sistemas complexos geralmente operam no modo de falha.
A idéia é que existem partes com falha em um determinado software, mascaradas por falhas em outras partes ou por validações em outras partes. Veja um exemplo do mundo real na máquina de radiação Therac-25 , cujas falhas de software foram mascaradas por falhas de hardware. Quando as falhas de hardware foram removidas, a condição de corrida de software que não foi detectada durante todos esses anos resultou na máquina matando três pessoas.
fonte
Um dos meus favoritos é o Hacker's Delight , porque era tão divertido de ler quanto educacional.
Espero que a segunda edição seja lançada em breve!
fonte
Conceitos, técnicas e modelos de programação de computadores.
texto alternativo http://ecx.images-amazon.com/images/I/51YZ50ZR13L._SL500_AA240_.jpg
fonte
Extrema programação explicada: abraçar a mudança por Kent Beck. Embora eu não defenda uma abordagem XP ou estrada do hardcore no desenvolvimento de software, eu gostaria de ter sido apresentado aos princípios deste livro muito antes na minha carreira. Teste de unidade, refatoração, simplicidade, integração contínua, custo / tempo / qualidade / escopo - isso mudou a maneira como eu olhava para o desenvolvimento. Antes do Agile, era tudo sobre o depurador e o medo de solicitações de mudança. Depois do Agile, esses demônios não pareciam tão grandes.
fonte
Tipos e linguagens de programação de Benjamin C Pierce para uma compreensão completa dos fundamentos das linguagens de programação.
fonte
texto alternativo http://ecx.images-amazon.com/images/I/51E0Ojkz8iL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg
fonte
O Database System Concepts é um dos melhores livros que você pode ler sobre como entender os bons princípios de design de banco de dados.
fonte
A prática da programação. Por Brian W. Kernighan, Rob Pike.
O estilo mostrado aqui é excelente - o código apenas fala por si e todo o livro segue o princípio do KISS. Pessoalmente, não minhas línguas de escolha, mas ainda influentes para mim.
fonte
Programação a partir do zero. É grátis na internet. Este livro me ensinou a AT&T asm. É muito fácil de ler.
fonte
Paradigmas da programação de inteligência artificial : estudos de caso em Common Lisp por Peter Norvig
Comecei a ler porque queria aprender Common Lisp. Quando estava no meio do caminho, percebi que esse era o melhor livro sobre programação que eu havia lido até agora.
fonte
Definitivamente artesanato de software
texto alternativo http://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg
Este livro explica muitas coisas sobre engenharia de software, desenvolvimento de sistemas. Também é extremamente útil entender a diferença entre diferentes tipos de desenvolvimento de produtos: web VS shrinkwrap VS framework IBM. O que as pessoas tinham em mente quando conceberam o modelo em cascata? Leia isso e tudo ficará claro (espero)
fonte
@ Peter Coulton - você não lê Knuth, você estuda.
Para mim e meu trabalho ... Estruturas de dados puramente funcionais são ótimas para pensar e desenvolver com linguagens funcionais em mente.
fonte
"O mundo é plano", de Thomas Friedman.
A excelência em programação exige um investimento de energia mental e uma dedicação ao aprendizado contínuo comparável às profissões de medicina ou direito. Paga uma fração do que essas profissões pagam, muito menos os salários pagos aos especialistas em matemática que se dirigem ao setor financeiro. E os salários para a construção de código estão corroendo porque é uma profissão que é relativamente fácil para os inteligentes e autodisciplinados na maioria das economias entrarem.
A programação já corroeu a ponto de pagar menos do que, digamos, encanamentos. O encanamento não pode ser "offshored". Você não precisa pagar US $ 2395 para participar da Professional Plumber's Conference a cada dois anos pelo privilégio de receber um conjunto totalmente novo de tecnologias de encanamento que levará um ano para você aprender.
Se você mora na América do Norte ou na Europa, é jovem e inteligente, a programação não é uma opção de carreira racional. Empresas que envolvem programação, absolutamente. Estude negócios, saiba o suficiente sobre programação para refinar seu detector de BS: brilhante. Mas dedicar a maior parte de sua energia mental ao domínio de bibliotecas, estruturas de dados e algoritmos? Isso só faz sentido se a programação é algo mais para você do que uma escolha econômica.
Se você gosta de programar e, por esse motivo, pretende fazer da sua carreira, é necessário que você desenvolva uma compreensão fria das forças que são e continuarão a torná-la uma profissão cada vez mais difícil para se sustentar. . "O mundo é plano" não ensinará a você como nomear suas variáveis, mas mergulhará por 6 ou 8 horas em realidades econômicas que já chegaram. Se você pode lê-lo, e não ficar com medo, em seguida, sair e comprar "Code Complete".
fonte
Neste último ano, participei de várias aulas. Eu li
O dilema do inovador (tecnologia disruptiva)
O mês do homem mítico (software de gerenciamento)
Atravessando o abismo (inicialização)
Sistemas de gerenciamento de banco de dados, o livro de vacas
Programação C #, o livro de OSTRICH
Começando os desenvolvedores do iPhone, o livro GRAPEFRUIT
Cada livro foi incrível, mas o dilema do inovador de Clayton Christensen (1997 !!!) é realmente um livro fantástico, e isso me fez pensar muito sobre o mundo moderno do software. O desafio enfrentado é a tecnologia disruptiva e como as empresas de unidades de disco e as não técnicas são sempre interrompidas por uma nova tecnologia revolucionária. Dá uma nova perspectiva ao pensar no Google, provavelmente a maior empresa da web. Por que eles têm as mãos em TUDO? É porque eles não querem que sua posição seja interrompida por algo novo. A visualização no google é suficiente para entender a idéia. Leia-o!
fonte
hackers, de Steven Levy.
A personalidade e o modo de vida devem vir primeiro. Tudo o resto pode ser aprendido.
fonte
A Prática de Programação
e
Como resolvê-lo por computador
texto alternativo http://img.infibeam.com/img/7101e0ee/496b1/05/629/PMB-9788131705629.jpg?hei=200&wid=160&op_sharpen=1
fonte
A linguagem Python foi muito influente para mim, eu gostaria de ter lido esses livros anos atrás. A beleza e a simplicidade da linguagem Python realmente afetaram a maneira como escrevi código em outras linguagens.
fonte
The New Turing Omnibus http://ecx.images-amazon.com/images/I/51HlYd-%2BRwL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg
Livro muito bom. Tem um gosto de alto nível das áreas mais importantes da ciência da computação. Sim, CS! = Programação, mas isso ainda é útil para todos os programadores.
fonte
Análise e Design Orientados a Objetos com Aplicações de Brady Booch
fonte
O Mês do Homem Mítico de Fred Brooks http://en.wikipedia.org/wiki/The_Mythical_Man-Month
fonte
Eu acho que "The Art of Unix Programming" é um excelente livro, por um excelente hacker / mente brilhante como Eric S. Raymond, que tenta nos fazer entender alguns princípios do design de software (principalmente a simplicidade). Este livro é obrigatório para toda programação que está prestes a iniciar um projeto na plataforma Unix.
fonte
Embora eu concorde que muitos dos livros acima são leituras obrigatórias (Programador Pragmático, Mês do Homem Mítico, Arte da Programação de Computadores e SICP vêm à mente imediatamente), eu gostaria de seguir uma direção um pouco diferente e recomendar Uma Disciplina. de programação por Edsger Dijkstra. Mesmo com 32 anos, a ênfase no "design para verificabilidade" é altamente relevante (mesmo que "verificabilidade" signifique "prova" em vez de "testes de unidade").
fonte
Code Craft de Pete Goodliffe é uma boa leitura!
Code Craft http://ecx.images-amazon.com/images/I/51WZ9AEC3GL._SL500_BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg
fonte
A refatoração de Martin Fowler : Melhorando o design do código existente já foi listada. Mas vou detalhar por que isso me impactou.
A essência de todo o livro trata da estruturação do código, para que seja mais simples ler e entender por humanos . Isso me ensina fortemente que o código que escrevo destina-se a meus colegas e sucessores a consumir e possivelmente aprender algo bom com isso. Isso me inspira a programar conscientemente de uma maneira que deixe as pessoas louvando meu nome, e não me amaldiçoando por toda a eternidade .
fonte
texto alternativo http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg
Como programar em C ++ É bom para iniciantes. Este é um livro excelente, completo com 1500 páginas.
fonte
Aqui está um excelente livro que não é tão amplamente aplaudido, mas é cheio de insights profundos: Desenvolvimento Ágil de Software: O Jogo Cooperativo , de Alistair Cockburn.
O que há de tão especial nisso? Bem, claramente todo mundo já ouviu o termo "Agile", e parece que a maioria é de crentes hoje em dia. Quer você acredite ou não, existem alguns princípios profundos por trás do porquê do movimento Agile existir. Este livro descobre e articula esses princípios de maneira precisa e científica. Alguns dos princípios são (aliás, essas são minhas palavras, não as de Alistair):
Há muito mais lá também. Agora vou calar a boca, mas recomendo vivamente este livro!
fonte
Mestres da desgraça. No que diz respeito à motivação e ao amor pela sua profissão: não haverá nada melhor do que o descrito neste livro, uma história verdadeiramente inspiradora!
fonte