Informatique pour programmeurs

8

Je suis un programmeur autodidacte et je code depuis 8 ans. Grâce à cette expérience, je connais déjà très bien les principes de programmation (tels que les instructions if, les classes, le polymorphisme, etc.).

Cependant, je n'ai jamais appris "l'informatique", seulement la programmation. Quelles sont les bonnes ressources pour quelqu'un dans ma position d'auto-apprentissage de l'informatique - c'est-à-dire des ressources qui évoluent rapidement et assument des connaissances de base en programmation?

Shivam Sarodia
la source
collecté
sts
Ensuite, vous êtes au bon endroit.
SDsolar
Ensuite, vous êtes au bon endroit.
SDsolar

Réponses:

11

L'informatique est une discipline multiforme - et les algorithmes et les structures de données en sont une partie importante. Vous pouvez essayer des cours vidéo gratuits, comme Algorithms, Part 1, de Princeton University - cela fonctionne en ce moment.

Un autre remarquable cours vidéo gratuit Algorithms: Design and Analysis, Part 1, de Stanford a récemment pris fin - avec un peu de chance, il sera répété à l'avenir. La partie 2 de ce cours commencera ce lundi.

HEKTO
la source
D'ACCORD. J'ai fait quelques recherches sur Internet, et il semble qu'une classe d'algorithmes générale soit exactement ce que je recherche.
Shivam Sarodia
9

Eh bien, c'est ma première réponse ici et, aussi, je suis moins expérimenté que vous. Alors, considérez-le comme une réponse de novice, qui peut ne pas être pertinent pour vous ou pour les autres. Mais, je vais essayer de préserver la valeur de la question avec ma réponse!

Eh bien, tout d'abord, discutons (ne décrivons que) le domaine de l'informatique, ou le cycle de vie de celui qui est impliqué dans l'apprentissage de la CS. Il est probable que j'en manque certains. De plus, leur positionnement peut être ambigu. Mais ça se passe comme: -

  1. Fondements informatiques (fonctionnement général des ordinateurs) et introduction aux ordinateurs
  2. Langage de programmation et son utilisation pour résoudre des problèmes réels à l'aide d'ordinateurs
  3. Variations du langage de programmation (fonctionnel, orienté objet, procédural) et ses différents principes
  4. Structures de données et algorithmes // l'une des parties les plus importantes et l'épine dorsale de CS
  5. Fondements des systèmes informatiques --- Mathématiques discrètes, une partie de l'électronique numérique
  6. Génie logiciel // encore une fois la partie la plus importante et l'épine dorsale de CS
  7. Système d'exploitation --- mon sujet préféré dans la branche CS, et aussi la branche principale la plus importante de CS, l'ensemble de CS fonctionne sur cela, au moins. Vous avez besoin d'une machine pour exécuter les choses, basée même sur la modélisation
  8. Architecture informatique --- c'est encore un des sujets importants pour connaître le fonctionnement de base du travail des ordinateurs
  9. Les bases de données valent chaque reconnaissance! Excellente découverte.
  10. Réseaux informatiques --- une très belle section de CS qui est liée aux réseaux (connexions réelles)
  11. Théorie du calcul, automates, compilateurs --- mon deuxième sujet préféré, le tout dans une section décrivant les changements d'état et la formation et le fonctionnement du langage.
  12. Exploration de données et apprentissage automatique --- Le domaine le plus évolué de l'informatique de nos jours et en fait l'un des plus informatifs
  13. Intelligence artificielle, réseaux de neurones et logiques floues --- pour ne rien dire, la meilleure simulation réelle

Maintenant, revenons à la question. Je pense que vous devez donner à chaque section une chance d'aller en profondeur et essayer de trouver votre domaine d'intérêt. Il faut quelques années à une personne pour décider quel domaine lui convient le mieux.

Vous ne devez pas sauter directement à un champ qui implique uniquement la section de programmation !!! Les langages de programmation ne valent pas «ce» qu'ils valent, la partie la plus importante est la modélisation de base, le fonctionnement et la génération d'idées et de nouvelles théories qui améliorent le champ CS. Donc, selon moi, vous devriez essayer chaque champ à la fois, dire pendant une semaine et voir que vous êtes vraiment attiré par eux! Cela vous donnera d'abord le sujet à emporter!

Maintenant, en venant aux ressources en ligne.Il y a beaucoup à regarder.Vous trouverez de nos jours de nombreux tutoriels, vidéos et conférences disponibles sur Internet.Mais, les plus recherchés avec une pièce maîtresse brillante sont: -

  1. www.coursera.org
  2. www.nptel.ac.in
  3. www.khanacademy.org

etc.

Essayez de les utiliser plus fréquemment pour apprendre les bases de CS. En plus de cela, vous avez toujours des moteurs de recherche à portée de clic pour vous aider à fournir le sujet avec lequel vous rencontrez des difficultés.

Am_I_Helpful
la source
2

En tant que programmeur, vous êtes censé savoir les choses suivantes conformément à l'informatique de base:

  1. Principes de programmation de base
  2. Structures de données
  3. Méthodologie du génie logiciel
  4. Différentes techniques de programmation (cela dépend de l'algorithme)
  5. Connaissance de base du test du code

Vous pouvez obtenir ces cours via MOOC .

Coursera propose différents cours avec de bons cours, si vous le souhaitez, vous pouvez vous y inscrire.

Ysr Shk
la source
Vous semblez avoir la question à l'envers. Il ne s'agit pas de savoir quels aspects de l'informatique sont pertinents pour les programmeurs; il demande où un programmeur peut trouver des ressources pour se renseigner sur l'informatique.
David Richerby
-1

Autres cours que j'ai étudiés (et je pense qu'ils sont importants):

  1. Modèles de conception (comme Singleton, Facade, Factory .etc)
  2. Structures discrètes

La complexité asymptotique est également un sujet très important en CS. Je recommanderais "Introduction to Algorithms" comme un bon livre de référence pour la structure des données et les algorithmes. Vous pouvez ensuite pratiquer au Project Euler . En dehors de cela, le MIT propose des cours MIT Open CourseWare sur YouTube. Je trouve leurs cours sur la structure des données très utiles.

Une autre chose que je peux suggérer est également de parcourir les manuels de cours de n'importe quelle université pour obtenir les sujets, voir lesquels sont intéressants et les étudier.

Xaero
la source