Par quel langage de programmation dois-je commencer à apprendre ?


Lorsque vous googlez cette réponse, vous verrez toujours "Commencez par Python parce que c'est le plus facile" mais je vais être en désaccord avec cela. La première réponse que j'ai vue à cette question disait d'éviter d'apprendre le C. Je vais être fortement en désaccord avec cela aussi. J'ai peut-être des opinions contraires à la norme, mais je vais suggérer qu'il est préférable d'apprendre le C d'abord, et je vais expliquer pourquoi.

Mais d'abord, mettons la mise en garde la plus évidente hors de la voie et disons que cela dépend toujours de ce que vous voulez faire. Si tout ce que vous faites est du développement web front-end, alors évidemment votre concentration devrait être sur HTML, javascript, CSS et quels CMS vous êtes à l'aise d'apprendre. Ou si vous voulez seulement construire des aps IOS, alors apprenez Swift, etc


Aussi si "être facile" est un facteur pour vous, alors peut-être allez apprendre Python, mais j'écris cela pour les gens qui sont, je l'espère, quelque peu intelligents, et ne sont pas intimidés par un peu de travail acharné. Le monde qui dit "apprenez d'abord Python" suppose souvent que vous êtes un idiot, mais je ne vais pas faire cette supposition. Je vais factoriser "facile" et juste supposer que vous voulez savoir quel langage donnera à la meilleure base dans l'informatique.

Donc si vous posez la question de "quel langage de programmation je devrais commencer à apprendre avec", je suppose que c'est parce que vous voulez acquérir une compréhension générale de l'informatique et être en mesure d'étendre dans de nombreux domaines en apprenant plusieurs langages, et vous voulez une base solide sur laquelle apprendre une vie entière de compétences informatiques. Si c'est votre cas, alors le plus facile ne signifie pas le meilleur, donc apprendre Python en premier n'est pas meilleur, malgré ce que vos recherches sur Google vous diront. Bien sûr, cela peut vous permettre d'être opérationnel plus rapidement et de créer des programmes plus vite, et peut-être avez-vous besoin de cette inspiration pour rester motivé et persévérer. Mais cette zone de confort peut ne pas être une bonne chose à long terme, lorsque vous vous apercevrez que vous devez passer à un autre langage, et que vous aurez le réveil brutal de "oh, les ordinateurs sont plus difficiles que je ne le pensais". De plus, comme Python est un langage de haut niveau, vous êtes vraiment éloigné des mécanismes de fonctionnement d'un ordinateur. Si jamais vous décidez de vous lancer dans le matériel ou les systèmes embarqués par la suite, ce sera un ajustement plus difficile que si vous deviez d'abord acquérir les compétences informatiques de base.


Il y a plusieurs bonnes raisons pour lesquelles je recommande le C comme premier langage, mais ma raison principale est qu'en termes de niveau d'abstraction de la programmation de bas niveau à la programmation de haut niveau, il est parfaitement situé d'apprendre les deux. En d'autres termes, si vous apprenez le C, vous pouvez aller dans les deux sens. Il n'est pas aussi difficile de descendre d'un niveau et d'apprendre le langage d'assemblage, et il n'est pas aussi difficile de monter d'un niveau et d'apprendre le C++. Je pense donc que le C est le meilleur langage à apprendre en premier pour construire une base solide en programmation. Le C++ est plus difficile que les autres langages orientés objet, mais on dit qu'une fois que vous avez appris le C++, passer à d'autres langages orientés objet comme Java ou Python est un jeu d'enfant. En revanche, si vous aviez appris Python en premier, vous pourriez perdre l'envie de passer au C et retourner dans votre zone de confort. Si vous ne voulez apprendre qu'un seul langage, très bien, apprenez Python. Mais si vous avez l'intention d'apprendre plusieurs langages, le C débouche sur le C++ et le C++ vous permet d'apprendre les autres. Et si vous voulez vraiment bricoler des robots, du matériel et des systèmes embarqués, vous voudrez probablement apprendre quelques langages d'assemblage, et le C se rapporte à ceux-ci de manière beaucoup plus agréable, sans parler du fait que beaucoup de ces choses peuvent être faites en C seul.

Vous allez avoir beaucoup plus de personnalisation plus vous vous rapprochez du métal, ce qui est l'un des avantages de l'apprentissage des langages de plus bas niveau, et cela vous permet d'écrire seulement le code dont vous avez besoin.

Mais en ce qui concerne les bases de la programmation, vous ne pouvez jamais vraiment échapper à l'histoire. Une grande partie de ce vers quoi les ordinateurs ont évolué aujourd'hui commence vraiment avec le C. (Ce n'est pas le plus ancien, c'est juste la direction que les ordinateurs ont prise) Le système d'exploitation linux est entièrement écrit en C, C++ a évolué à partir de C, et on peut dire la même chose pour Python et Ruby et tous les autres langages courants aujourd'hui. Donc, si vous apprenez d'abord les autres, c'est un peu comme si vous commenciez votre éducation en cinquième année, faute d'une meilleure analogie. En conséquence, une grande partie du monde est enracinée dans le C. Les systèmes embarqués sont partout. Le C est partout. Mais les langages sur lesquels C est construit sont partout aussi.

Avez-vous besoin de C pour être un programmeur ? Pas du tout.

Mais je pense que vous devez vous demander : " Est-ce que je veux une part de tarte, ou est-ce que je veux toute la tarte ? "

Si vous voulez juste faire quelques choses avec les ordinateurs, par exemple de la conception web, ou du développement d'applications, alors trouvez simplement le langage qui fait ce que vous voulez faire le mieux.

Mais si vous vouliez faire de l'informatique votre vie, que vous n'êtes pas intimidé par la difficulté et que vous voulez construire une base solide en général pour apprendre plusieurs langages, alors j'opterais pour la tarte entière, et j'apprendrais d'abord le C.

Puis passez à l'assemblage et au C++, et à d'autres langages si nécessaire.