Isso pode ser subjetivo e provavelmente fechado, mas eu ainda queria saber se é realmente útil ler Estrutura e Interpretação de programas de computador.
Estrutura e interpretação de programas de computador
O livro não usa Java. Não que eu quisesse aprender Java. Estou curioso para saber se será útil ler para ser um programador melhor e quais são as coisas que posso ganhar com o livro ou quais são suas outras alternativas a este livro mais adequadas para programadores Java?
Respostas:
Bem, eu não sei se este livro irá ajudá-lo, mas quando eu trabalhei nesse livro há cerca de 20 anos, ele definitivamente melhorou minhas habilidades de programação (independentemente de qualquer linguagem de programação). E eu acho que especialmente um programador Java terá algumas novas idéias que ele / ela não terá se apegando apenas ao Java.
Joel Spolsky 2005 escreveu um bom artigo sobre Java e SICP, que pode ser do seu interesse:
http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
fonte
Eu acho que a Estrutura e a Interpretação de Programas de Computador é um ótimo livro para ler. No entanto, existem alguns problemas com isso.
O maior problema da minha experiência é que, embora o livro não exija absolutamente nenhum conhecimento de programação e seja voltado para concluir iniciantes, ele é voltado para concluir iniciantes que estudam no MIT . E assim, enquanto não assume qualquer conhecimento de programação, que não assumem um pouco de domínio do conhecimento, por exemplo, nas áreas de engenharia elétrica, física e matemática. Nota: eles não têm nada a ver com os conceitos que estão sendo ensinados, são apenas necessários para entender os exercícios e exemplos .
Pessoas maiores do que eu explicaram isso muito melhor, em um artigo habilmente intitulado A Estrutura e Interpretação do Currículo de Ciência da Computação . Felizmente, eles não são apenas chorões, eles escreveram seu próprio livro: Como criar programas . Se você pensa em ler o SICP, pode ler o HtDP primeiro: ele cobre o mesmo terreno que o SICP, mas pressupõe apenas o conhecimento médio do domínio no nível do ensino médio. (De fato, ele foi escrito para ser ensinado a crianças do ensino médio.)
Depois de concluir o HtDP, você ainda pode voltar e ler o SICP, já que agora algum conhecimento em falta de domínio não será mais tão prejudicial, porque você já viu o conceito antes.
Nota: existe um rascunho para uma segunda edição do HtDP , que você pode querer ler em vez da primeira edição. O material sobre programação imperativa foi removido e será abordado no segundo volume ainda não escrito de Como projetar componentes , mas você pode usá-lo na primeira edição, no SICP ou em ambos.
fonte
Pelo meu entendimento , o SICP é mais focado em áreas de programação funcional, incluindo programação recursiva e forte introdução ao CS - o que é um pouco difícil de entender para novos programadores. Outro ponto, é preparado e instruído para o MIT, e também são necessários alguns bons fundamentos no campo da engenharia, matemática e física para encontrar este livro útil.
Eu recomendaria um bom conjunto de livros em que cada um se concentre em diferentes aspectos da engenharia de software:
Uma descrição mais detalhada dos livros mencionados acima e outra pode ser encontrada nas seguintes referências:
Por favor, sinta-se livre para adicionar à lista, pois não é o ideal :)
Editar: Ao escolher os livros mencionados acima e determinar a prioridade de como lê-los, o objetivo é realmente o que você é o principal a tentar fazer ou aprender.
fonte
Vou falar mal aqui e dizer - provavelmente não é uma boa leitura para a maioria das pessoas - qualquer que seja o idioma.
Como Knuth, é um bom livro para ler. No entanto, mesmo supondo que você seja um graduado do MIT, ainda levará a melhor parte de um ano para ler corretamente, e é isso que os professores e os ATs ajudam.
Existem outros livros sobre engenharia de software que você poderia ler nesse período que teriam mais valor? Existem outras línguas que você poderia aprender no tempo?
editar Apenas para expandir um pouco:
engenharia de software é engenharia, é tudo sobre otimização. Sua tarefa é maximizar seu conhecimento por um determinado tempo + orçamento de custo.
O SICP é uma introdução de alto nível à programação através de uma linguagem funcional. A razão pela qual ele usa uma linguagem funcional é que é mais fácil descrever muitos conceitos matemáticos de programação em linguagens funcionais do que em procedimentos e muito mais fácil de ler do que a lógica formal.
Há também uma certa quantidade de postura, ie. "Você não é realmente um programador a menos que leia SICP", ou Knuth, ou possa programar em Lisp, C ou x86 assembler. Normalmente é fácil refutar; ie você não pode ser um programador de verdade, a menos que conheça o trabalho de Cantor na teoria dos conjuntos e nas equações de Maxwell e esteja familiarizado com a mobilidade dos buracos nos semicondutores.
fonte
Você planeja ser um "programador JAVA" pelo resto da sua vida? Provavelmente existem livros melhores para ler. Se você quer ser um bom programador em geral, é uma excelente leitura. Aqui está o porquê. Existem certas ferramentas que todo bom programador precisa em sua caixa de ferramentas. Um deles é um conhecimento profundo de estruturas e algoritmos de dados (se você não acredita em mim, vá a uma entrevista na Microsoft, Google, Amazon etc.), os algoritmos que acompanham são análise de complexidade, recursão e uma boa compreensão dos ponteiros não. doeu. Quando se trata de análise de algoritmos, processos recursivos e paradigma funcional em geral, não consigo pensar em um livro melhor ou mais desafiador do que o SICP.
fonte