A arte da programação de computadores conta como um livro ou vários?
David Thornley
2
@ David Acho que tecnicamente é um livro em vários volumes.
Paddyslacker
Respostas:
69
Código concluído por Steve McConnell. Eu nem acho que precisa de explicação. É o livro definitivo sobre construção de software. Incrivelmente bem escrito e abrange todos os aspectos do lado prático (programação) da criação de software.
+1 por escolher a segunda edição também - tantas melhorias em relação à primeira que é um livro diferente.
Paddyslacker 04/04/10
+1 - Eu tenho a tradução em italiano. Depois disso, nunca comprei outro livro técnico ou de programação traduzido no meu idioma, pois a tradução foi terrível. Eu tive que comprar a edição em inglês para entender algumas frases!
Eu não posso concordar. É interessante que a palavra imutável nem exista neste livro.
Jonas
2
Embora guarde minha cópia da primeira edição, acho que nunca voltei a ela. O motivo pode ser o fato de ter livros sobre cada um dos tópicos que McConnell diz serem importantes.
+1 por ser realista. Este livro é relevante, fácil de ler e provavelmente o livro que muitos desenvolvedores podem realmente se beneficiar da leitura. Muitos outros nesta lista são difíceis e duvido que tenham sido lidos de capa a capa.
spong
Esta resposta é repetida.
clrod
+1 - meu livro de programação segundo favorito trás Code Complete (e honestamente, às vezes, é em primeiro lugar)
Alan
36
A Estrutura e Interpretação de Programas de Computador, também conhecida como SICP
Quando vi que o SICP ainda não estava listado, fiz uma careta de dor. :)
Por quê: Não há mais nada a acrescentar a Norvig elogiar este livro como a melhor introdução à ciência da computação já escrita. Bem, ok, desde o Por quê? foi solicitado: o SICP cobre os fundamentos do software de uma maneira satisfatória e profunda, levantando muitas perspectivas e questões sobre a natureza da computação - algumas das quais permanecem questões em aberto - enquanto leva o leitor a ver além dos aspectos superficiais de dizer à máquina o que fazer ou como fazê-lo.
Todos saudam o SICP. Na IMO, deve ser o livro de um curso introdutório obrigatório de programação em todas as escolas de CS. Certamente eliminaria pessoas que realmente não conseguem cortá-lo na programação (muito menos SC), ao mesmo tempo em que fortalece as habilidades de programação e programação para aqueles com potencial.
Luis.espinal 18/10/10
11
@ luis.espinal O SICP parece um exagero para a programação introdutória (a menos que estejamos falando de pós-graduação). Há uma razão pela qual o MIT abandonou o curso SICP como seu curso de introdução ... Ainda assim, concordo que é valioso passar por este livro (e fazer os exercícios ...), mas fazer isso em um semestre normal da faculdade seria difícil para um aluno acima da média. Além disso, a introdução ao Java / Python / Ruby / C é mais relevante para a força de trabalho, quanto mais alguém se acostumar com linguagens imperativas, melhor ... O SICP é ótimo para expandir seus horizontes. Mas pode ser desanimador como um curso de introdução ...
Cervo
11
@Cervo - É uma preocupação válida, e parece um exagero, mas (e esta é uma posição completamente subjetiva, eu reconheço), acredito firmemente que fornece uma base mais profunda do que normalmente se encontra com outras abordagens convencionais . O júri ainda está de fora com o MIT agora que eles mudaram para o Python (algumas das razões são que ele também possui recursos de FP e é altamente passível de computação científica e robótica, o que Scheme não é). adoro a linguagem), mas o júri seria publicado até que uma versão Python do SICP fosse lançada.
Luis.espinal
2
@ con't - Ou seja, sugiro o SICP não por causa do Scheme, mas por causa do seu conteúdo pedagógico. Na verdade, eu sugerira começar com a montagem (as pessoas fizeram isso com sucesso), mas não existem livros de montagem (e provavelmente nunca haverá) como o SICP. O mais próximo seria a enciclopédia de Knuth (e isso seria um exagero.) Quanto ao java , eu trabalho com ele há 12 anos e não o recomendo para o ensino. Faz o trabalho, mas é horrível como um PL. C, Python ou Ruby são linguagens muito melhor projetadas.
Luis.espinal
11
@ cont - também, eu alertaria contra o uso de uma linguagem como uma ferramenta pedagógica, porque é mainstream. O mainstream muda a cada 2-3 anos e, com Java, a linguagem é simples, mas a tarefa é aprender a JVM, as bibliotecas e a arquitetura. Eu diria para aprender o desenvolvimento empresarial Java e .NET no 4º ano da faculdade. E acredito (eu sei, subjetivo ) que é importante fornecer rigor desde o início. Temos muitos programadores point-n-click por aí que precisavam de algum rigor desde o início. Eu fiz um monte de dinheiro limpar a porcaria que deixaram para trás, mas ainda;)
Se ao menos eu pudesse ler um livro sobre programação e, depois que terminasse de ler, ele desaparecesse E nunca mais veria outro livro pelo resto do tempo, seria esse. Se eu mantivesse o livro na minha estante para olhar mais tarde ... Pode ser outro volume mais orientado para referência. +1 de qualquer maneira!
SingleNegationElimination
Gostei deste livro e o li o tempo todo. No entanto, grande parte do material se aplica apenas a projetos de grande escala, com centenas ou mesmo milhares ou pessoas trabalhando nele como um sistema operacional; pois é disso que ele extrai sua experiência. Eu pensei que o Code Complete era muito mais útil em termos de conhecimento que eu poderia usar todos os dias e que se aplicava a mim.
Tivemos a quarta edição, mas este é um ótimo livro sobre algoritmos!
Chris
@ Chris: Eu não acho que exista uma quarta edição. A terceira edição é de setembro de 2009, então é nova.
Jonas
Errr, segunda edição com a capa verde.
Chris
Este é o livro didático necessário para minha classe neste termo. Estou muito animado por estar na lista aqui e por ter uma classificação tão alta na pergunta SO original!
Este é o livro para ler sobre arquitetura e design de OOP. Os padrões são bons quando usados adequadamente, mas acho que o valor real deste livro é que ele fornece uma caixa de ferramentas de idéias para usar ao projetar.
Ele contém muitas boas dicas de como obter uma base de código existente sob teste e gerenciável, a maioria das quais eu não conhecia até ler este livro. Uma leitura obrigatória, mesmo que o código legado com o qual você esteja trabalhando seja o seu próprio código que você escreveu ontem.
Não estou certo de que este qualifica como "um livro" (a menos que você realmente quer dizer "apenas Volume 1")
Inaimathi
Eu tenho toda a série dele, mas me contentaria com o Volume 1. (Minha primeira aula de ciência da computação foi ministrada em 1967. Foi inestimável). "Conheça as tuas estruturas de dados".
Ira Baxter
15
Os livros Java obrigatórios:
Java eficaz por Josh Bloch
Concorrência Java na Prática Por Brian Goetz, et. al.
Ha! Essa foi minha escolha na lista de livros não relacionados à programação! Eu acho que isso torna não classificável?
Paddyslacker 17/09/10
Gostei muito deste livro, que foi altamente recomendado pelo meu professor de Teoria da Computação na UW Madison - ajudou muito ao tentar entender do que diabos ele estava falando.
Peter Turner #
@ Paddyslacker, GEB gasta bastante tempo conversando sobre computabilidade e vários conceitos de ciência da computação.
5
O Programador Pragmático: De Journeyman a Master (Andrew Hunt e David Thomas)
Como fazer as coisas (David Allen) ensina a lidar com as milhares de pequenas tarefas que você precisa realizar no seu trabalho diário como desenvolvedor de software. Embora não seja especificamente voltado para desenvolvedores, é definitivamente uma ajuda inestimável, pois o desenvolvimento de software geralmente envolve um número muito grande de pequenas tarefas que precisam ser realizadas de maneira priorizada. Por exemplo: quais novos recursos implementar, quais erros corrigir, quais partes do código refatorar, quais partes do código devem ser repousadas ou testadas novamente, etc.
Uma leitura obrigatória para programadores em tempo real - mesmo que as informações específicas do processador estejam desatualizadas, a mentalidade é inestimável.
Um iPad conta? Gostaria de dizer que o meu número 1 na estante seria um navegador da Web e capacidade de pesquisar. A API e as referências on-line são o melhor local e dependeria do meu conjunto de projetos atual.
Não, não faz. Veja o comentário sobre um Kindle acima. Dito isto, eu amo o iPad de qualquer maneira. Pode ser um recurso valioso, mas ainda não é um livro real. +1, estou de bom humor. :)
Temos muitos desenvolvedores "OO" que ainda não sabem o que é um objeto ou classe ou para que serve; não sabe como é a programação OO, processual, modular e estruturada; e, de alguma forma, consegue misturar códigos pseudo-processuais mal elaborados junto com classes.
Este livro (mais alguns anos 70 em design estruturado) ajudaria bastante essas pobres almas a entender como deveria ser uma boa orientação a objetos.
Além disso, as chances são de que, se eu fosse forçado a escolher um livro e um livro somente ao lado deste, não escolheria um livro específico para a tecnologia .
É um dos poucos livros de programação que eu mantive quando comecei a programar. Eu costumava emprestar isso muito para as pessoas que estavam começando pela primeira vez. Agora, nem tanto, já que C não é mais a primeira linguagem de programação de muitas pessoas. Ele faz um trabalho maravilhoso ao descrever o que está acontecendo nos bastidores e suas descrições sobre indicadores trazem uma verdadeira clareza ao que, de outra forma, é um tópico muito confuso para muitos.
Na verdade, eu não gostei do livro de Jon. As informações eram boas, mas havia tanto "oh, isso é importante daqui a 10 capítulos" no livro, de tal forma que parecia muito mal disposto.
Steven Evers
2
Esteja ciente de que há uma segunda edição, que é uma atualização do primeiro e também abrange C # 4.
Grant Palin
1
Design de Objetos: Funções, Responsabilidade e Colaborações
Este é de longe o meu livro de programação favorito (mesmo que não seja dependente da linguagem). Na minha humilde opinião, é o livro que apresenta melhor o caso de como projetar objetos relacionados aos seus primos / irmãos / vizinhos. Um item obrigatório em qualquer estante de programadores séria.
Respostas:
Código concluído por Steve McConnell. Eu nem acho que precisa de explicação. É o livro definitivo sobre construção de software. Incrivelmente bem escrito e abrange todos os aspectos do lado prático (programação) da criação de software.
fonte
Fácil.
fonte
A Estrutura e Interpretação de Programas de Computador, também conhecida como SICP
Quando vi que o SICP ainda não estava listado, fiz uma careta de dor. :)
Por quê: Não há mais nada a acrescentar a Norvig elogiar este livro como a melhor introdução à ciência da computação já escrita. Bem, ok, desde o Por quê? foi solicitado: o SICP cobre os fundamentos do software de uma maneira satisfatória e profunda, levantando muitas perspectivas e questões sobre a natureza da computação - algumas das quais permanecem questões em aberto - enquanto leva o leitor a ver além dos aspectos superficiais de dizer à máquina o que fazer ou como fazê-lo.
texto alternativo http://ecx.images-amazon.com/images/I/41CPGEDXMDL._SL500_AA300_.jpg
Clique na imagem para obter o texto livre online . Você também pode encontrar facilmente as palestras em vídeo dos autores , com cores e roupas no estilo dos anos 80.
fonte
Vale a pena mencionar:
O Mítico Homem-Mês
fonte
Introdução aos Algoritmos
fonte
Padrões de Design: Elementos de Software Orientado a Objetos Reutilizáveis
Este é o livro para ler sobre arquitetura e design de OOP. Os padrões são bons quando usados adequadamente, mas acho que o valor real deste livro é que ele fornece uma caixa de ferramentas de idéias para usar ao projetar.
fonte
Código Limpo de Robert C. Martin
Idiomas, estruturas, metodologias vêm e vão, mas muitas idéias neste livro são, suspeito, para sempre.
fonte
Refatoração: aprimorando o design do código existente
fonte
Eu apenas contei meus livros hoje. 23 deles. Depende do que estou trabalhando. Acho que a resposta atemporal é "linguagem C", de Kernighan e Ritchie .
fonte
Trabalhando efetivamente com o Legacy Code, de Michael Feathers.
Ele contém muitas boas dicas de como obter uma base de código existente sob teste e gerenciável, a maioria das quais eu não conhecia até ler este livro. Uma leitura obrigatória, mesmo que o código legado com o qual você esteja trabalhando seja o seu próprio código que você escreveu ontem.
fonte
A arte da programação de computadores por Donald Knuth
fonte
Os livros Java obrigatórios:
Java eficaz por Josh Bloch
Concorrência Java na Prática Por Brian Goetz, et. al.
Java Puzzlers Por Josh Bloch, Neal Gafter
fonte
Codificadores no trabalho de Peter Seibel
Interessante e inspirador, altamente recomendado.
fonte
Gödel, Escher, Bach.
!
fonte
O Programador Pragmático: De Journeyman a Master (Andrew Hunt e David Thomas)
fonte
Como fazer as coisas (David Allen) ensina a lidar com as milhares de pequenas tarefas que você precisa realizar no seu trabalho diário como desenvolvedor de software. Embora não seja especificamente voltado para desenvolvedores, é definitivamente uma ajuda inestimável, pois o desenvolvimento de software geralmente envolve um número muito grande de pequenas tarefas que precisam ser realizadas de maneira priorizada. Por exemplo: quais novos recursos implementar, quais erros corrigir, quais partes do código refatorar, quais partes do código devem ser repousadas ou testadas novamente, etc.
fonte
A linguagem de programação C ++ de Bjarne Stroustrup
fonte
Windows via C / C ++, Jeffrey Richter
fonte
O Zen da otimização de código de Michael Abrash
Uma leitura obrigatória para programadores em tempo real - mesmo que as informações específicas do processador estejam desatualizadas, a mentalidade é inestimável.
fonte
Um iPad conta? Gostaria de dizer que o meu número 1 na estante seria um navegador da Web e capacidade de pesquisar. A API e as referências on-line são o melhor local e dependeria do meu conjunto de projetos atual.
fonte
Padrões de design em Ruby:
fonte
As Armadilhas do Desenvolvimento Orientado a Objetos de Bruce F. Webster
Temos muitos desenvolvedores "OO" que ainda não sabem o que é um objeto ou classe ou para que serve; não sabe como é a programação OO, processual, modular e estruturada; e, de alguma forma, consegue misturar códigos pseudo-processuais mal elaborados junto com classes.
Este livro (mais alguns anos 70 em design estruturado) ajudaria bastante essas pobres almas a entender como deveria ser uma boa orientação a objetos.
Além disso, as chances são de que, se eu fosse forçado a escolher um livro e um livro somente ao lado deste, não escolheria um livro específico para a tecnologia .
fonte
É um dos poucos livros de programação que eu mantive quando comecei a programar. Eu costumava emprestar isso muito para as pessoas que estavam começando pela primeira vez. Agora, nem tanto, já que C não é mais a primeira linguagem de programação de muitas pessoas. Ele faz um trabalho maravilhoso ao descrever o que está acontecendo nos bastidores e suas descrições sobre indicadores trazem uma verdadeira clareza ao que, de outra forma, é um tópico muito confuso para muitos.
fonte
O "c # in Depth" de Jon Skeet
fonte
Design de Objetos: Funções, Responsabilidade e Colaborações
Este é de longe o meu livro de programação favorito (mesmo que não seja dependente da linguagem). Na minha humilde opinião, é o livro que apresenta melhor o caso de como projetar objetos relacionados aos seus primos / irmãos / vizinhos. Um item obrigatório em qualquer estante de programadores séria.
fonte
Um dos meus livros mais apreciados;
Processo de pensamento orientado a objetos de Matt Weisfeld
fonte