Cela peut être subjectif et probablement fermé, mais je voulais quand même savoir si c'était vraiment utile de lire Structure et interprétation des programmes informatiques.
Structure et interprétation des programmes informatiques
Le livre n'utilise pas Java. Non pas que je veuille apprendre Java. Je suis juste curieux de savoir s'il sera utile de lire pour être un meilleur programmeur et quelles sont les choses que je peux gagner du livre ou leurs autres alternatives à ce livre sont-elles plus adaptées aux programmeurs Java?
Réponses:
Eh bien, je ne sais pas si ce livre vous aidera, mais quand j'ai travaillé moi-même sur ce livre il y a environ 20 ans, cela a définitivement amélioré mes compétences en programmation (indépendamment de tout langage de programmation). Et je suppose qu'un programmeur Java en particulier obtiendra de nouvelles informations qu'il / elle n'obtiendra pas en s'en tenant uniquement à Java.
Joel Spolsky 2005 a écrit un bel article sur Java et SICP qui pourrait vous intéresser:
http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
la source
Je pense que la structure et l'interprétation des programmes informatiques est un excellent livre à lire. Cependant, il y a quelques problèmes avec cela.
Le plus gros problème de mon expérience est que, bien que le livre ne nécessite absolument aucune connaissance en programmation et soit conçu pour compléter les débutants, il est conçu pour compléter les débutants qui étudient au MIT . Ainsi, alors qu'il ne suppose aucune connaissance de programmation, il ne suppose un peu de domaine des connaissances, par exemple dans les domaines du génie électrique, la physique et les mathématiques. Remarque: ceux-ci n'ont rien à voir avec les concepts enseignés, ils sont juste nécessaires pour comprendre les exercices et les exemples .
Des gens plus grands que moi l'ont expliqué beaucoup mieux, dans un article intelligemment intitulé La structure et l'interprétation du programme d'informatique . Heureusement, ils ne sont pas seulement des pleurnichards, ils ontplutôtécrit leur propre livre: How to Design Programs . Si vous pensez à lire SICP, vous voudrez peut-être lire HtDP d'abord: il couvre à peu près le même terrain que SICP, mais il suppose seulement des connaissances de domaine de niveau secondaire moyen. (En fait, il est écrit pour être enseigné aux élèves du secondaire.)
Après avoir terminé HtDP, vous pouvez toujours revenir en arrière et lire SICP, car maintenant un peu de connaissance du domaine manquant ne sera plus aussi dangereux car vous avez déjà vu le concept.
Remarque: il existe un brouillon pour une deuxième édition de HtDP , que vous voudrez peut-être lire à la place de la première édition. Le matériel sur la programmation impérative a été supprimé et va être couvert dans le deuxième volume non encore écrit Comment concevoir des composants , mais vous pouvez les prendre soit de la première édition, soit du SICP, soit des deux.
la source
D'après ma compréhension du SICP , il est plus axé sur les domaines de la programmation fonctionnelle, y compris la programmation récursive, et une forte introduction à CS - ce qui est un peu difficile à saisir pour les nouveaux programmeurs. Un autre point, il est préparé et instruit pour le MIT, et quelques bons principes fondamentaux dans le domaine de l'ingénierie, les mathématiques, la physique sont également nécessaires pour trouver ce livre utile.
Je conseillerais un bon ensemble de livres où chacun se concentre sur différents aspects du génie logiciel:
Une description plus détaillée des livres mentionnés ci-dessus et d'autres une fois peut être trouvée à partir des références suivantes:
N'hésitez pas à ajouter à la liste car ce n'est pas l'idéal :)
Edit: En choisissant les livres mentionnés ci-dessus et en déterminant la priorité de la façon de les lire, cela se résume vraiment à l'objectif de ce que vous essayez principalement de faire ou d'apprendre.
la source
Je vais sortir sur un membre ici et dire - probablement pas une bonne lecture pour la plupart des gens - quelle que soit la langue.
Comme Knuth, c'est un bon livre à lire. Cependant, même en supposant que vous êtes un diplômé du MIT, il faudra encore une bonne partie de l'année pour lire correctement, et c'est avec l'aide de professeurs et d'AT.
Y a-t-il d'autres livres sur le génie logiciel que vous pourriez lire à cette époque qui seraient plus utiles? Y a-t-il d'autres langues que vous pourriez apprendre à l'époque?
modifier Juste pour développer un peu: le
génie logiciel est de l'ingénierie, c'est une question d'optimisation. Votre tâche consiste à maximiser vos connaissances pour un budget temps + coût donné.
SICP est une introduction de haut niveau à la programmation via un langage fonctionnel. La raison pour laquelle il utilise un langage fonctionnel est qu'il est plus facile de décrire un grand nombre de concepts mathématiques de la programmation dans des langages fonctionnels que dans des langages procéduraux et beaucoup plus facile à lire que la logique formelle.
Il y a aussi une certaine posture, c.-à-d. "Vous n'êtes pas vraiment un programmeur à moins que vous ne lisiez SICP", ou Knuth, ou que vous puissiez programmer en assembleur Lisp, ou C ou x86. C'est normalement facile à réfuter; c'est à dire. vous ne pouvez pas être un vrai programmeur à moins de connaître les travaux de Cantor sur la théorie des ensembles et les équations de Maxwell et d'être familier avec la mobilité des trous dans les semi-conducteurs.
la source
Envisagez-vous d'être un "programmeur JAVA" pour le reste de votre vie? Ensuite, il y a probablement de meilleurs livres à lire. Si vous voulez être un bon programmeur en général, c'est une excellente lecture. Voici pourquoi. Il y a certains outils dont tout bon programmeur a besoin dans sa boîte à outils. L'une est une connaissance approfondie des structures de données et des algorithmes (si vous ne me croyez pas, allez interviewer Microsoft, Google, Amazon, etc.), les algorithmes qui l'accompagnent sont l'analyse de la complexité, la récursivité et une bonne compréhension des pointeurs ne le fait pas blesser. En ce qui concerne l'analyse d'algorithmes, les processus récursifs et le paradigme fonctionnel en général, je ne peux pas penser à un livre meilleur ou plus difficile que SICP.
la source