Comment choisir un langage de programmation et échapper au purgatoire du didacticiel

Il y a quelques semaines, j'ai publié un article sur mon expérience en essayant d'apprendre JavaScript, C #, Python et plus encore de Codecademy, Udemy et freeCodeCamp, ainsi que de m'échapper du purgatoire du didacticiel et de progresser en tant que développeur.

Décider d'un langage de programmation peut être extrêmement difficile et prendre du temps car il existe des dizaines d'options, avec beaucoup d'informations contradictoires. Dans cet article, je partagerai quelques options basées sur ma propre expérience d'apprentissage du code, avec des suggestions sur la façon de choisir un langage de programmation, d'échapper au purgatoire du didacticiel et de progresser en tant que développeur.

Voici une version vidéo de ce post si vous préférez (11 minutes de visionnage):

Scénario n ° 1: Vous savez ce que vous voulez construire

Souvent, dans des articles comme ceux-ci (ou dans l'infographie "Quel langage de codage dois-je apprendre?" Que vous connaissez probablement intimement), on vous demande de réfléchir de manière critique à ce que vous voulez construire après avoir appris à code.

Cette approche est utile si vous avez une idée de ce que vous voulez faire avec un langage de programmation après l'avoir appris, mais pas tellement si vous voulez juste apprendre à coder , comme ce fut mon expérience. Je couvrirai les deux scénarios dans cet article.

Si vous savez dans quelle direction vous voulez prendre votre carrière de codeur après avoir appris un langage de programmation, vous aurez probablement plus de facilité à déterminer quelle langue apprendre en premier. Voici quelques suggestions dans ce cas.

Développement Front End: JavaScript (et HTML / CSS)

Si vous savez déjà que vous souhaitez travailler sur le «front-end» des sites Web - c'est-à-dire tout ce que l'utilisateur voit lorsqu'il accède à un site Web - vous devez commencer votre parcours de codage par l'apprentissage de JavaScript. Vous commencerez probablement par apprendre le HTML et le CSS, qui forment l'épine dorsale de presque tous les sites Web, puis vous commencerez à ajouter du JavaScript pour améliorer les fonctionnalités et l'interactivité de vos sites.

JavaScript est assez omniprésent en tant que langage de programmation et a une rampe d'accès plus facile que d'autres langages de niveau inférieur comme C ++. C'est un excellent point de départ si vous ne savez pas ce que vous voulez apprendre ... mais plus à ce sujet plus tard.

Développement back-end: Python, C # ou JavaScript (et SQL)

Disons que vous êtes plus intéressé à découvrir les tripes des sites Web, à gérer le «back-end» et à vous essayer à l'administration de bases de données. Vous avez beaucoup d'options ici, et le chemin le plus simple est Python, qui est un langage convivial pour les débutants qui a des frameworks matures (par exemple Django et Flask) pour le développement back-end.

Vous ne pouvez pas non plus vous tromper avec C #, qui vous exposera à l'écosystème .NET de Microsoft et à un langage de programmation qui, une fois que vous êtes entré dans les mauvaises herbes avec lui, est un plaisir avec lequel travailler. Et si vous envisagez de passer au "full stack" - c'est-à-dire que vous voulez faire du développement front-end et back-end - vous pourriez envisager d'apprendre JavaScript, qui a des frameworks back-end plus jeunes mais très prisés comme Express et Koa. Cela facilitera également votre processus d'apprentissage car vous utiliserez le même langage pour coder les deux piles.

Quelle que soit la langue que vous choisissez pour le développement back-end, vous finirez probablement par ajouter SQL à votre boîte à outils pour la gestion de la base de données, alors mettez cela sur votre radar.

Développement de jeux 2D: JavaScript ou C #

J'ai écrit ailleurs sur le moteur à utiliser pour créer des jeux 2D, mais voici le maigre.

Il existe de nombreux moteurs de jeu 2D, dont beaucoup peuvent ou non convenir à votre fantaisie en tant que développeur de jeux, et chacun avec ses propres avantages, particularités et courbe d'apprentissage. Certains d'entre eux, comme Game Maker Studio 2, par exemple, utilisent leurs propres langages propriétaires pour exécuter des scripts, mais je vous recommande en fait d'apprendre d'abord JavaScript ou C #, même si vous envisagez d'utiliser un moteur de jeu différent à long terme. .

Avec JavaScript, vous pouvez utiliser des frameworks tels que Phaser pour créer des jeux 2D ou des moteurs complets comme Construct 3 (qui utilise en fait le développement par glisser-déposer avec de la place pour des scripts personnalisés). Si vous choisissez plutôt d'apprendre C #, vous travaillerez avec Unity 2D, ou peut-être MonoGame - mais je vous recommande en fait de commencer par des didacticiels non moteurs (par exemple .NET) pour avoir une bonne idée du langage en premier.

L'apprentissage de JavaScript ou de C # vous donnera les connaissances de base en codage dont vous aurez besoin pour vous attaquer à un autre moteur de jeu, comme Game Maker, tout en vous fournissant des éléments comme les meilleures pratiques de programmation et une organisation propre du code.

Développement de jeux 3D: C # ou C ++

Il existe de nombreuses options pour apprendre à coder pour le développement de jeux 3D, et je vous suggère de commencer par C # ou C ++. En fait, à moins que vous ne soyez très doué en technologie ou que vous ayez déjà une formation en programmation, je vous recommande de commencer par C # et de passer au C ++. Vous aurez une courbe d'apprentissage plus facile et apprendrez les concepts de programmation fondamentaux sans avoir à vous occuper de choses comme la gestion de la mémoire et le code de niveau inférieur.

Dans tous les cas, vous finirez probablement par apprendre les deux, mais si vous commencez avec C #, vous pouvez bricoler avec Unity 3D, puis passer au C ++ avec Unreal Engine 4.

Science des données / apprentissage automatique: Python

Bien qu'il existe des options dans d'autres langages pour apprendre la science / l'analyse des données et l'apprentissage automatique, Python est actuellement la référence dans ce domaine du codage. C'est un langage assez simple à apprendre et vous exposera à de bonnes habitudes de programmation et à des frameworks largement utilisés, vous ne pouvez donc pas vous tromper ici.

Scénario n ° 2: Vous ne savez pas ce que vous voulez construire

Il est possible que vous ayez passé des jours, des semaines ou même des mois à rechercher des articles, des vidéos, des publications reddit et des questions de Stack Overflow à lire sur les langages de programmation, et que vous ne sachiez toujours pas où investir votre temps parce que vous ne savez pas. ce que vous voulez construire.

J'ai été là. C'est ennuyant.

Ma recommandation, aussi banale que cela puisse paraître, est de n'en choisir qu'une. Littéralement n'importe lequel d'entre eux, même s'ils ne sont pas répertoriés ici. Allez apprendre JavaScript. Ou Python. Ou la rouille. Ou Haskell.

OK, peut-être pas Haskell. Mais choisissez quelque chose et tenez-vous-y assez longtemps pour apprendre les bases et voir s'il y a une possibilité que vous aimiez utiliser ce langage pour construire avec lui. Et gardez à l'esprit deux choses en le faisant:

  1. Fixez-vous une limite de temps. Comme, "Je vais prendre les trois prochains mois pour apprendre JavaScript à l'aide des didacticiels freeCodeCamp." Si, à la fin de cette période, vous avez l'impression de progresser et que cela vous intéresse, continuez! Sinon, il est peut-être temps de reconsidérer votre choix de langue et de voir s'il y a quelque chose qui pourrait vous convenir mieux.
  2. Créez quelque chose qui ne figure pas dans vos didacticiels. Il s'agit d'une étape cruciale dans votre croissance en tant que développeur. Je vais le couvrir dans la section suivante.

Scénario n ° 3: Vous êtes coincé dans le purgatoire du didacticiel

Si vous vous êtes retrouvé à faire un tutoriel après un tutoriel, sur le même site Web ou sur des sites différents, sans jamais avoir l'impression de progresser, vous pouvez être vraiment frustré par l'expérience d'apprendre à coder. J'y suis allé et je peux vous aider.

La première étape consiste à déterminer à quoi servent les didacticiels de programmation et à quoi ils ne le sont pas. La plupart des didacticiels en ligne - en particulier ceux qui vous permettent de coder directement dans le navigateur - sont excellents pour vous apprendre à programmer.

Ils ne sont pas, en revanche, bons pour vous apprendre à devenir programmeur.

Les meilleurs didacticiels vous exposeront aux concepts de codage fondamentaux et vous demanderont d'appliquer ces connaissances pour résoudre des énigmes et des projets. Ce sont de merveilleux outils d'apprentissage qui peuvent, s'ils sont utilisés au-delà de leur portée, devenir des béquilles qui étoufferont votre apprentissage.

Un programmeur, par exemple, ne reste pas assis toute la journée à faire des tutoriels. Un programmeur programme , et c'est précisément ce que vous devez faire pour progresser après avoir maîtrisé les bases.

La meilleure façon de progresser en tant que développeur est de choisir un projet dans la langue de votre choix et de commencer à le faire. Si vous apprenez JavaScript, par exemple, vous pouvez choisir de créer un site Web simple avec HTML / CSS et d'ajouter une certaine interactivité avec jQuery. Vous commencerez probablement par mettre en place un environnement de développement intégré, en oubliant immédiatement comment faire quelque chose que vous avez appris dans vos tutoriels, vous serez frustré, allez sur Google, trouvez la réponse et continuez. Ensuite, vous progresserez, resterez coincé, rechercherez Stack Overflow, vous gratterez la tête à la documentation officielle, partagerez peut-être votre code avec quelqu'un et répéterez tout le processus.

Et vous ferez exactement ce que font les programmeurs lors de la création d'un nouveau projet.

Enfin, vous ne pouvez vraiment pas vous tromper avec le langage de programmation que vous choisissez, même s'il ne figure pas dans cette liste. Si vous finissez par en choisir un, en apprenant les bases, en créant un projet et en décidant que ce n'est pas pour vous, cette expérience vous aidera encore à long terme. Les informations que vous apprendrez au cours du processus seront utiles, quelle que soit la langue que vous utiliserez pour vos projets.

Tu peux le faire!

Si vous avez aimé cet article, pensez à consulter mes jeux et mes livres, à vous abonner à ma chaîne YouTube ou à rejoindre le Discord Entromancy .

MS Farzan, Ph.D. a écrit et travaillé pour des sociétés de jeux vidéo de haut niveau et des sites éditoriaux tels que Electronic Arts, Perfect World Entertainment, Modus Games et MMORPG.com, et a servi en tant que Community Manager pour des jeux comme Dungeons & Dragons Neverwinter et Mass Effect: Andromeda . Il est le directeur créatif et le concepteur principal du jeu Entromancy: A Cyberpunk Fantasy RPG et auteur de The Nightpath Trilogy . Retrouvez MS Farzan sur Twitter @sominator.