Étant un programmeur complètement autodidacte, je voudrais bien pouvoir améliorer moi-même le cours d'informatique enseigné à un diplômé CS typique.
Trouver des ressources différentes sur Internet a été facile, il existe bien sûr des outils de cours ouverts MIT et des cours Coursera de Stanford et d'autres universités. Il existe de nombreuses autres ressources libres dispersées sur Internet et quelques bons livres qui sont recommandés à plusieurs reprises.
J'ai beaucoup appris, mais mon étude est très fragmentée, ce qui me gêne vraiment. J'adorerais Si, quelque part, je pouvais trouver un chemin que je devrais suivre et une pile que je devrais me limiter à moi-même, afin de pouvoir être sûr des éléments essentiels de l'informatique que j'ai étudiés, puis d'approcher systématiquement ceux que je n'ai pas encore étudiés.
Le problème avec Wikipedia est qu’il ne dit pas ce qui est essentiel mais tient à être une référence complète.
MIT Open Course Ware pour Computer Science et Electrical Engg. a une liste énorme de cours ne vous indiquant pas non plus quels cours sont essentiels et quels cours optionnels selon les intérêts / exigences de la personne. Je n'ai trouvé aucune mention d'un ordre dans lequel on devrait étudier différentes matières.
Ce que j'aimerais, c’est de 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 constater, j’ai une petite idée de la matière informatique.
Ce serait extrêmement utile, même si quelqu'un indiquait les cours essentiels du logiciel de cours du MIT (+ sujets essentiels absents du MIT OCW) dans un ordre d'étude recommandé.
Je vais énumérer les messages que j'ai déjà traversé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 meilleure réponse est 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-computer-science - pointe vers MIT OCW
Réponses:
J'ai vu du matériel de cours du MIT et c'était terriblement mauvais . Ils avaient du matériel didactique qui nécessitait VC5, des groupes de variables globales implicites, des couleurs passant de "Bleu" à la place 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 provient d'une université réputée.
Mon diplôme CS (issu d’une université classée parmi les 10 meilleurs universités britanniques du secteur des sciences de la vie) était constitué de:
Première année:
Deuxième année:
Troisième année:
Comme vous le constaterez, presque tout est "l'essentiel" de quelque chose et presque rien n'est couvert à une profondeur utile.
Ce qui en valait vraiment la peine, c'est essentiel:
Ce qui en valait la peine, facultativement:
Des choses essentielles mais je ne les ai pas couvertes quand même:
Le reste était une perte de temps totale. Malheureusement, la plupart de ces neuf points que je connaissais déjà ou avaient repris les parties utiles ailleurs. Si vous lisez des articles tels que le problème de FizzBuzz, il devient rapidement évident que vous n’avez pas vraiment besoin de savoir beaucoup pour être au top de la liste. car les autres diplômes n'enseignent pas grand-chose du tout.
la source
Open Course ware est simplement une liste de cours qu’ils ont mis à disposition. Si vous voulez savoir ce qu'un élève aurait pris, consultez le site Web du MIT (non OCW) et regardez le programme actuel. 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.
la source
Essayez les recommandations du programme d’informatique de 2001 de ACM / IEEE, liées ici: http://www.acm.org/education/curricula-recommendations
avec les mises à jour 2008 de CS.
La page 17 du rapport de 2001 contient un tableau pratique qui souligne toutes les connaissances "fondamentales" tout en énumérant les cours à option.
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 les choisir (par exemple, les systèmes d'exploitation, les langages de programmation et le génie logiciel). Logiciel, et les étudiants choisissent une piste).
Vous pouvez trouver les cours requis sur le site Web du département CS de presque toutes les écoles, et ils devraient en être une version.
la source
Si vous me le permettez, j'aimerais suggérer de rejoindre github.com dans le cadre de votre processus d'apprentissage.
Ensuite, vous pouvez rechercher un code qui a une application réelle qui vous intéresse, le cloner pour vous-même, le travailler avec, coder dessus, apprendre à le connaître et éventuellement commencer à soumettre des correctifs au projet source. , et plus tard, travaillez sur un projet open source qui vous intéresse.
Et, bien sûr, vous vous familiariserez avec git, qui n'en est que meilleur.
la source