Étant un programmeur complètement autodidacte, j'aimerais que je puisse m'améliorer en auto-apprenant le cours d'informatique enseigné à un diplômé CS typique.
Trouver des ressources différentes sur Internet a été facile, il y a bien sûr le matériel de cours ouvert du MIT , et il y a des cours Coursera de Stanford et d'autres universités. Il existe de nombreuses autres ressources ouvertes disséminées sur Internet et de bons livres qui sont recommandés à plusieurs reprises.
J'ai beaucoup appris, mais mon étude est très fragmentée, ce qui me dérange vraiment. J'adorerais Si quelque part, je pouvais trouver un chemin que je devrais suivre et une pile à laquelle je devrais me limiter, afin d'être sûr de ce que essentiel parties de l'informatique que j'ai étudiées, puis approcher systématiquement celles que je n'ai pas.
Le problème avec Wikipedia est qu'il ne vous dit pas ce qui est essentiel mais insiste pour être une référence complète.
MIT open course ware for Computer Science and Electrical Engg. a une énorme liste de cours qui ne vous dit pas non plus quels cours sont essentiels et quels sont facultatifs selon l'intérêt/les exigences de la personne. Je n'ai trouvé aucune mention d'un ordre dans lequel on devrait étudier différents sujets.
Ce que j'aimerais, c'est créer une liste que je peux suivre, comme celle-ci
SUBJECTS DONE
Introduction to Computer Science *
Introduction to Algorithms *
Discrete Mathematics
Adv. Discrete Mathematics
Data structures *
Adv. Algorithms
...
Comme vous pouvez le voir clairement, je ne sais pas en quoi consistent les sujets spécifiques de l'informatique.
Il serait extrêmement utile, même si quelqu'un indiquait des cours essentiels de MIT Ware Course Course (+ sujets essentiels non présents à MIT OCW) dans un ordre recommandé de étude.
Je vais lister les messages que j'ai déjà consultés (et je n'ai pas obtenu ce que je cherchais là-bas)
https://softwareengineering.stackexchange.com/questions/49557/computer-science-curriculum-for-non-cs-major - la première réponse indique qu'il ne vaut pas la peine d'étudier cse
https://softwareengineering.stackexchange.com/questions/110345/how-can-a-self-taught-programmer-learn-more-about-computer-science - pointe vers MIT OCW
J'ai vu du matériel de cours du MIT, et c'était choquant . Ils avaient du matériel pédagogique qui nécessitait du VC5, des paquets de variables globales implicites, passant des couleurs comme "Blue" au lieu d'ARGB 32 bits, sans parler de 4x [0,1] flotteurs, ce genre de chose. Je ne ferais pas confiance à un programme ou à un code simplement parce qu'il vient d'une grande université.
Mon diplôme CS (d'une université qui est top 10 au Royaume-Uni pour CS) consistait en:
Première année:
Deuxième année:
Troisième année:
Comme vous le remarquerez, à peu près tout est "les bases" de quelque chose et presque rien n'est couvert à une profondeur utile.
Ce qui valait vraiment la peine d'être fait, essentiel:
Les trucs qui valaient la peine, éventuellement:
Des trucs qui sont essentiels mais je ne les ai pas couverts quand même:
Le reste était une perte de temps complète. Malheureusement, la plupart de ces neuf points que je connaissais déjà, ou que j'ai ramassé les pièces utiles ailleurs. Si vous lisez des choses comme le problème FizzBuzz il devient rapidement évident que vous n'avez pas vraiment besoin de tout savoir pour être au sommet du paquet - ce qui est une chance, car mon diplôme et beaucoup de les documents que j'ai vus en ligne pour d'autres diplômes n'enseignent vraiment pas grand-chose.
Essayez les recommandations du programme d'informatique 2001 d'ACM/IEEE, liées ici: http://www.acm.org/education/curricula-recommendations
ainsi que les mises à jour CS 2008.
À la page 17 du rapport de 2001, un tableau pratique souligne toutes les connaissances "essentielles" et énumère toujours les cours au choix.
Un programme de premier cycle n'aurait pas le temps de couvrir même les cours considérés comme essentiels par ces recommandations, ils regrouperont donc certaines catégories et laisseront les étudiants choisir parmi eux (par exemple, les systèmes d'exploitation, les langages de programmation et le génie logiciel). Logiciel et les élèves choisissent une piste).
Vous pouvez trouver les cours requis sur le site Web du département CS pour à peu près n'importe quelle école, et ils devraient en être une version.
Open Course ware n'est qu'une liste de cours qu'ils ont mis à disposition. Si vous voulez savoir ce qu'un étudiant aurait pris, passez par le site Web du MIT (non OCW) et regardez le programme réel. Ils ont une liste de ce qui est requis et de ce qui est considéré comme une condition préalable à quoi. Voici leur page.