Comment comprendre un débutant, quelle langue choisir pour la profession souhaitée?

Avertissement: ce texte n'est pas recommandé pour la lecture aux enfants de moins de 13 ans (ils doivent établir une politique de confidentialité séparée), aux personnes âgées, aux middles, aux personnes ayant une mentalité faible, aux amoureux de la langue VBA et ALGOL, ainsi qu'aux femmes enceintes. Tout ce qui précède est l'opinion personnelle de l'auteur inadéquat et n'est pas présenté ici dans le but de semer la discorde parmi les adeptes de la frappe statique et dynamique. C'est parti: nouveau Thread (). Start ()



Honnêtement, cet article mûrit depuis longtemps, parce que j'ai rencontré récemment des discussions, des holivars et des articles similaires, où les auteurs et les participants ont avancé diverses hypothèses au mieux de leur compréhension comme réponse à la question du titre. Et toute leur signification se résume à la même argumentation déroutante que la phrase ornée écrite ci-dessus.

J'ai parcouru un long chemin d'un sperme à un programmeur d'un adolescent qui aime pascal et windows 3.11, à un homme qui n'aime rien sauf les rouleaux et le terminal. Alors maintenant, je vais tout vous expliquer et même, peut-être, montrer quelques photos. Aller.

Alors quel langage de programmation choisir?


La stupidité de toutes ces questions est que vous ne pouvez pas devenir un programmeur sphérique conditionnel dans le vide. Un programmeur n'est plus un mathématicien discret du passé, pour qui le logiciel et le matériel sont secondaires. Dans la plupart des cas, le programmeur est désormais un artisan qui travaille dans le cadre de la «fenêtre» technologique actuelle. De plus, c'est la «fenêtre» d'une voiture en mouvement pour laquelle vous courez. La technologie est en constante évolution et nous sommes obligés, comme Alice Carroll, de fuir pour rester en place. Si vous prenez au moins mon Google préféré, vous n'aurez pas le temps de comprendre une API Android, et déjà la moitié des fonctionnalités obsolètes, elles resserrent également les vis ...
Ahem, oui, oui, un article comme pour les débutants, eh bien, essayons de le comprendre. Pour commencer, vous devez encore déterminer ce que vous voulez faire exactement? Zone, enfin, au moins approximativement?

Vous ne comprenez rien du tout?


Commencez à apprendre les constructions algorithmiques. Branches, boucles, structures de données, schémas fonctionnels. Cela aide beaucoup à transférer (transférer, pas copier-coller depuis Wikipedia!) Des algorithmes et des diagrammes de blocs vers un vrai langage de programmation.

Dans quelle langue commencer si vous voulez jeter les bases?


En principe, tout. Comme il vous suffit d'apprendre à écrire des programmes simples, de comprendre quelles sont les variables, les opérateurs, d'explorer les algorithmes classiques, tels que la recherche maximale, le tri, la recherche binaire, etc. Ensuite, passez à la POO et aux structures de données, car vous serez invité à l'entretien, comment le vecteur est différent de la liste!

Mais que faire si vous avez besoin d'une langue pour les tâches appliquées ?
Oui, et vous ne voulez pas devenir programmeur. Peut-être êtes-vous un scientifique qui a besoin d'analyser des fichiers texte avec des chaînes d'ADN, ou un investisseur avec l'idée d'écrire un robot de trading. Ici, je conseillerais à Python, que les adeptes d'autres langues me pardonnent. Python est un langage avec des capacités vertigineuses et un seuil d'entrée bas. Au début, même au début, il semble aux débutants qu'il s'agit d'une sorte de langage «éducatif» facile (jusqu'à ce que vous commenciez à les enfoncer dans des coroutines et des fonctions).

Eh bien, dites-vous, mais où aller ensuite ? Pas un seul python ...? Bien sûr que non. Où ça vous tire? La toile? Bureau? Des scripts? Niveau système Téléphone portable? Vous, ma chère, décidez, il n'y a pas de solutions universelles!

Comme la construction de sites? Eh bien, écrivons comme un perroquet ici: html, javascript et autres comme eux (toujours là python avec django et quelques autres tranquillement cachés là-bas)

Vous voulez des services Web durs? PHP, node.js, ruby, Java et le même Python.

Vous voulez être plus proche du matériel et des systèmes d'exploitation? Saisissez C / C ++ (ne vous tirez pas une jambe et ne vous coupez pas, bien que tout le monde y soit allé dans un casting). Soit dit en passant, je conseillerais à tous les programmeurs de traiter au moins les bases de C / C ++ et les classes de base de STL, vous savez, il est utile de regarder le GC avec des yeux différents. Si un morceau de fer tombe sur votre tête, apprenez l'assembleur.

Vous voulez créer des scripts, analyser, extraire, travailler avec des mégadonnées, créer des modèles, écrire des robots, administrer le système d'exploitation et bien plus encore?Prenez Python3 + déjà exprimé. Si vous travaillez davantage avec des données, vous pouvez toujours prendre R.

Vous rêvez d'écrire une application de bureau? Ici sur n'importe quoi! Bien que Delphi le prenne! Une blague, bien sûr. Ici, vous devez regarder pour quel système écrire et si la multiplateforme est nécessaire. Par exemple, le code Python ou Java sera portable. C / C ++ devra être construit séparément pour chaque plate-forme.

Vous voulez connaître le noyau Java? Vous savez donc déjà pourquoi vous avez besoin de Java. Ne sait pas? Comment expliqueriez-vous maintenant pourquoi vous en avez besoin. Avez-vous vu l'air? Néanmoins, on ne peut pas s'en passer. :)

Il y a bien sûr des trucs fantaisistes, Kotlin, par exemple. Chose cool, cette langue a tué mon vieil ami, surnommé NPE, eh bien, comme il a tué - il s'est blessé! Je ne comprenais simplement pas comment l'étudier normalement pour les gens qui ne connaissent pas Java? Non, "Hello world" est écrit dessus facilement et sans Java, mais je ne sais pas plus.

Vous avez peut-être décidé d'écrire des jeux? Il existe de nombreux concepteurs prêts à l'emploi, le même Unity3D, ainsi que des moteurs bidimensionnels, généralement immédiatement sous un tas de plates-formes. Vous y regardez déjà vous-même: C #, Java, etc. Et tout cela est peaufiné par le haut par la connaissance de divers protocoles de transfert de données, systèmes d'exploitation, frameworks, cryptage et cryptographie, autorisation et authentification, XML, JSON, technologies de base de données, protection des applications, systèmes de contrôle de version et bien plus encore.

Maintenant, je vais ouvrir le plus grand secret pour devenir programmeur: programme! N'importe quoi! Écrivez des programmes même lorsque personne n'en a besoin. Écrivez parce que vous en avez besoin, pas à quelqu'un d'autre. Reposez-vous constamment contre l'incompétence, comblez ces lacunes et reposez-vous à nouveau contre de nouvelles. Et tant qu'il y a suffisamment de mémoire dans tous les caches possibles de votre tête.

Sinon, comment pouvez-vous répondre à la question: «Quelle langue apprendre?». Évidemment, celui à qui vous allez parler.

Cordialement, Edward Koch,
chargé de cours à la HackerU International School of IT and Cybersecurity

All Articles