Eu acho que você deveria restringir sua pergunta a livros de programação específicos. Se você incluir o desenvolvimento de software, abrirá os livros das portas, incluindo o Guia de Sobrevivência do Projeto de Software, Uma Disciplina para Engenharia de Software, Valsando com Ursos, A Catedral e o Bazar, Arquiteturas de Software na Prática, Conceitos e Design de Sistemas Distribuídos, Requisitos de Software, Desenvolvimento Rápido. ..estes livros ótimos e bem citados que têm tudo a ver com desenvolvimento / engenharia de software, mas pouco têm a ver com a programação real do software.
Este livro é sobre como escrever código que funcione e possa ser mantido. Um conceito-chave é ser prático. Tudo no livro é resumido em 70 dicas fáceis de lembrar que ajudam a fornecer software melhor e de maior qualidade.
Este livro é provavelmente o livro definitivo sobre construção de software. Ele discute tópicos como os fundamentos da construção (requisitos, arquitetura e design), escolhendo uma linguagem de programação, escolhendo uma metodologia de desenvolvimento, projetando classes e objetos, escrevendo funções e métodos de alta qualidade, programação defensiva, uso e nomeação de variáveis , tipos de dados, instruções de organização e formatação, ferramentas de programação colaborativa, teste, depuração, refatoração e desenvolvimento.
Este é um item obrigatório na prateleira de todos os engenheiros de software, mesmo que você não esteja escrevendo explicitamente código.
Foi meu primeiro livro acadêmico há 10 anos e ainda me impressiona a relevância de prever tendências no estado da arte "Engenharia de Software" e programação em geral.
Ele usa o LISP como exemplos, mas eu não considero o LISP nenhum tipo de linguagem, portanto, é totalmente independente;)
você se importaria de explicar isso com mais detalhes - como e por que responde à pergunta? "Link-só responde" não são muito bem-vindos no Stack Câmbio
Este é um livro obrigatório para desenvolvedores de software. A maioria dos volumes de desenvolvimento de software fala sobre software de codificação, linguagens de programação e as mais recentes tecnologias e técnicas para escrever software.
No "Mês do Homem Mítico" - Brooks aborda um aspecto mais fundamental (IMO) do desenvolvimento de software - o aspecto social. Ele aborda os problemas enfrentados em um grande projeto de software, desde o problema de adicionar pessoas, o segundo efeito do sistema e a necessidade de um processo adequado.
Este livro é sobre a programação da perspectiva de torná-la uma disciplina de engenharia, algo que pode ser usado para projetar um software grande e complexo.
Padrões de design . Os padrões são bastante inclinados para OOP, mas dentro do OOP, eles são bastante aplicáveis a qualquer idioma.
Você deve lê-lo, porque fará de você um designer melhor. Ele ensina boas maneiras de resolver problemas de design de subsistemas que você talvez não tenha descoberto até projetar sistemas há 40 anos. São soluções reutilizáveis para problemas semi-comuns. Dito isto, há um padrão que os alunos do segundo ano passam quando aprendem padrões de design na escola:
Os padrões de design são bem legais. Gostaria de saber como posso usá-los neste projeto em que estou trabalhando?
Os padrões de design são 10x melhores que o pão fatiado! Eu vou usá-los em todos os lugares!
Ok, há um tempo e um lugar para usar padrões específicos. Moderação é boa.
Deveríamos resolver esse problema com a solução X. Certo, isso é o padrão Y. Que tal isso?
Muitos conceitos de alto nível, é um livro bastante avançado que eu não recomendaria a desenvolvedores iniciantes. Se você estiver trabalhando em um projeto de software em grande escala com muitas interdependências, essa é uma ótima referência.
Refatoração - Martin Fowler (Ele tem alguns que realmente valem a pena)
Código Limpo
97 coisas que os programadores devem saber.
Estes são todos os livros que li completamente ou reli partes significativas de algumas vezes e estão bem reunidos. Sou iniciante em programação como um todo, por isso usei-os para obter uma compreensão contextual do que devo aprender a fazer.
Ah, para o material do banco de dados
A arte do SQL
Simply SQL
SQL para Smarties - Joe Celko
Tudo isso me vem à cabeça, então me perdoe por não lembrar de todos os autores - eu estava no meu caminho para outro post sobre como memorizar a sintaxe :).
Respostas:
O programador pragmático: do viajante ao mestre - Andrew Hunt e David Thomas
Este livro é sobre como escrever código que funcione e possa ser mantido. Um conceito-chave é ser prático. Tudo no livro é resumido em 70 dicas fáceis de lembrar que ajudam a fornecer software melhor e de maior qualidade.
fonte
Código Completo: Um Manual Prático de Construção de Software por Steve McConnell
Este livro é provavelmente o livro definitivo sobre construção de software. Ele discute tópicos como os fundamentos da construção (requisitos, arquitetura e design), escolhendo uma linguagem de programação, escolhendo uma metodologia de desenvolvimento, projetando classes e objetos, escrevendo funções e métodos de alta qualidade, programação defensiva, uso e nomeação de variáveis , tipos de dados, instruções de organização e formatação, ferramentas de programação colaborativa, teste, depuração, refatoração e desenvolvimento.
Este é um item obrigatório na prateleira de todos os engenheiros de software, mesmo que você não esteja escrevendo explicitamente código.
fonte
O meu favorito é: Estrutura e Interpretação de Programas de Computador
Foi meu primeiro livro acadêmico há 10 anos e ainda me impressiona a relevância de prever tendências no estado da arte "Engenharia de Software" e programação em geral.
Ele usa o LISP como exemplos, mas eu não considero o LISP nenhum tipo de linguagem, portanto, é totalmente independente;)
fonte
Código Limpo - Robert Martin
fonte
Mês do Homem Mítico - Frederick P Brooks
Este é um livro obrigatório para desenvolvedores de software. A maioria dos volumes de desenvolvimento de software fala sobre software de codificação, linguagens de programação e as mais recentes tecnologias e técnicas para escrever software.
No "Mês do Homem Mítico" - Brooks aborda um aspecto mais fundamental (IMO) do desenvolvimento de software - o aspecto social. Ele aborda os problemas enfrentados em um grande projeto de software, desde o problema de adicionar pessoas, o segundo efeito do sistema e a necessidade de um processo adequado.
Este livro é sobre a programação da perspectiva de torná-la uma disciplina de engenharia, algo que pode ser usado para projetar um software grande e complexo.
fonte
Padrões de design . Os padrões são bastante inclinados para OOP, mas dentro do OOP, eles são bastante aplicáveis a qualquer idioma.
Você deve lê-lo, porque fará de você um designer melhor. Ele ensina boas maneiras de resolver problemas de design de subsistemas que você talvez não tenha descoberto até projetar sistemas há 40 anos. São soluções reutilizáveis para problemas semi-comuns. Dito isto, há um padrão que os alunos do segundo ano passam quando aprendem padrões de design na escola:
fonte
Design orientado a domínio: lidando com a complexidade no coração do software
Eric Evans
Muitos conceitos de alto nível, é um livro bastante avançado que eu não recomendaria a desenvolvedores iniciantes. Se você estiver trabalhando em um projeto de software em grande escala com muitas interdependências, essa é uma ótima referência.
fonte
Código - Microsoft Press.
É um excelente livro de computador causal que leva você do código Morse para o binário e vice-versa.
fonte
Desenvolvimento Orientado a Testes: Por Exemplo, por Kent Beck.
Uma super introdução ao TDD. Começou no caminho TDD. As amostras de código são Java, mas, de outra forma, o material é independente da linguagem.
fonte
Estes são todos os livros que li completamente ou reli partes significativas de algumas vezes e estão bem reunidos. Sou iniciante em programação como um todo, por isso usei-os para obter uma compreensão contextual do que devo aprender a fazer.
Ah, para o material do banco de dados
fonte