Je suis tombé sur cette citation de Bill Gates: "Vous devriez absolument m'envoyer un CV si vous pouvez lire le tout." Il parlait l'art de livres de programmation .. Je suis assez curieux et que vous voulez lire tout cela , mais honnêtement, je ne comprends pas du tout .. I'm really not that highly
intellectual being
.. Donc , cela devrait être la raison pour laquelle je ne peux pas le comprendre , mais j’ai hâte d’apprendre… Je lis actuellement le tome 1 sur l’algorithme fondamental. Y at-il des livres qui soient conviviaux pour les novices ou les personnes lentes comme moi? Je peux donc me construire et espérer pouvoir lire le livre de Knuth à l’avenir.
si vous vous définissez vous-même, not a highly intellectual being
vous vous fixez de faibles attentes. Vous devez briser cette mentalité si vous voulez faire quelque chose qui vaille la peine. Il ne devrait y avoir aucun doute dans votre esprit que vous pouvez réaliser quelque chose. En outre, cela ne signifie pas que vous y parviendrez facilement.
Les choses qui valent la peine d’être poursuivies sont celles qui sont difficiles… et ce n’est pas un cliché. En logiciel, en ingénierie, dans la vie en général, si vous voulez réaliser quelque chose, vous devez rechercher les choses difficiles, les choses que les gens évitent et ne pas se contenter des plus petits dénominateurs communs.
Premièrement, vos antécédents de CS ne sont pas clairs. Le livre de Knuth exige un certain degré de maturité. Peu de personnes ayant un diplôme en informatique peuvent le passer facilement. Je ne m'attendrais pas à ce qu'un étudiant en informatique qui vient de terminer son premier cours d'algorithme soit en mesure de parcourir le moindre livre de Knuth. La maturité nécessaire pour l'obtenir n'est tout simplement pas au rendez-vous et cela n'a rien à voir avec la capacité mentale de l'élève.
Vous devez maîtriser les bases de vos algorithmes, et vous avez besoin de pas mal de programmation (travail et / ou scolastique) à votre actif - je dirais au moins 40 crédits en programmation. Vous devez également maîtriser les mathématiques CS.
Vous ne pouvez pas aller très loin sans avoir une bonne compréhension des mathématiques discrètes (et éventuellement de la théorie du calcul).
Ce n'est pas que vous ayez besoin de cette connaissance pour résoudre les problèmes de Knuth, mais vous avez besoin d'une maturité suffisante pour pouvoir parcourir ce type de matériel.
Choisissez d’abord un livre et un seul livre (le livre de la CLRS comme suggéré précédemment), et travaillez-le du début à la fin. Lorsque cela est possible, les programmes implémentant les algorithmes. N'utilisez pas Java ou C #, pas même C ++. Allez jusqu'à l'os nu C et obtenez le sentiment de construire des objets à partir de déchets de métal sans os.
Obtenez également le livre de Knuth sur "Les mathématiques concrètes" si vous n'avez pas suivi de cours de mathématiques discrètes et de théorie de l'informatique. Ce serait bien que vous parcouriez ce livre également.
Ensuite, abordez l'encyclopédie de Knuth, un livre, un chapitre à la fois. N'entrez pas dans un autre chapitre sans avoir une bonne compréhension du premier.
Je vous suggère de commencer par le volume I (algorithmes fondamentaux), puis le volume III (recherche et tri). Celles-ci devraient être vos objectifs immédiats. Puis, plus tard (beaucoup plus tard), abordez le volume IV (algorithmes combinatoires), puis le volume II (algorithmes semi-numériques).
Ne vous sentez pas mal si vous ne l'obtenez pas au début. J'essaie de traverser les volumes I et III depuis des années (10 ans maintenant).
Et vous ne devriez pas mettre autant de poids dessus non plus. Ne le faites pas pour prouver quelque chose à quelqu'un ou à vous-même. Faites-le parce que vous êtes intellectuellement intéressé à le faire. Vous pouvez devenir compétent dans les algorithmes en utilisant simplement le livre du CLRS (ou n'importe lequel des livres de niveau supérieur disponibles).
Soyez pragmatique et accordez-vous une pause. Traitez le livre de Knuth comme une ambition personnelle à long terme et non comme une preuve immédiate que vous êtes un matériau CS;)
Il y a d'autres choses plus importantes (en termes de carrière) pour lesquelles on se tue;)