Article original : What I Wish I Knew as a Junior Dev – Lessons Learned After 11 Years of Coding

Par Endy Austin

J'ai initialement écrit cet article comme une liste de leçons pour les débutants et les développeurs juniors sur Reddit. Ensuite, il a explosé avec plus de 50 récompenses. De nombreux messages chaleureux ont suivi.

J'ai donc décidé de mettre à jour le post en fonction des réactions des gens.

Voici les choses que j'aurais aimé savoir au début de mon parcours en tant que développeur logiciel. Elles m'auraient aidé à stresser moins, et j'espère qu'elles feront de même pour vous.

Commençons.

Tous les tutoriels ne se valent pas

Lorsque vous commencez, vous essayez simplement différentes choses. Au fur et à mesure que vous apprenez et expérimentez, faites attention aux types de tutoriels qui fonctionnent pour vous.

Beaucoup ne fonctionneront pas. Et c'est bien.

En fait, c'est exactement ainsi que fonctionnent les expériences jusqu'à ce que vous trouviez une solution.

Mais dès que vous trouvez la perle rare, tenez-vous en à elle, consommez ce contenu voracement, puis trouvez des tutoriels similaires pour continuer votre croissance rapide.

Image _Photo par [Unsplash](https://unsplash.com/@cgower?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">Christopher Gower / <a href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utmcampaign=api-credit)

Quand j'ai commencé, je me cassais la tête sur Head First Java, le livre. Mais après avoir étudié pendant de nombreuses heures, je n'arrivais nulle part.

Mais tout le monde en ligne disait que c'était le meilleur livre de programmation jamais écrit. Pour moi, cependant, les tutoriels YouTube de TheNewBoston ont fait l'affaire, même si les gens ne le recommandent plus.

J'aimerais pouvoir dire que cela s'est arrêté après ma première année.

Avancez rapidement de deux ans.

J'ai commencé à apprendre les algorithmes, et TOUS les tutoriels de blog que j'ai suivis n'avaient aucun sens jusqu'à ce que je regarde des vidéos YouTube sur la danse folklorique hongroise enseignant les algorithmes.

Et tout s'est éclairci.

Depuis lors, mon approche de l'apprentissage a été d'apprendre la même chose à partir de plusieurs sources jusqu'à ce que je trouve l'instructeur et le style qui me conviennent.

Vous oublierez beaucoup de choses

Comprendre cela profondément changera votre façon d'apprendre.

Je ne peux pas compter le nombre de fois où j'ai suivi Introduction à la programmation Python sur des sites comme Udacity, Coursera, et où j'ai tout oublié.

C'est si frustrant.

Mais j'ai depuis appris que vous oublierez tout ce que vous apprenez dans des exercices isolés parce que ces informations sont stockées dans la mémoire à court terme. Les recherches en neurosciences montrent que c'est simplement ainsi que fonctionne le cerveau.

Si vous ne voulez pas oublier, testez vos connaissances en utilisant des répétitions espacées. Pour cela, construisez des projets.

Je vais vous donner un exemple concret :

len(myList)

Cela vous donnera la longueur d'une liste en Python. Vous apprendrez cela dans le cours d'introduction à Python d'Udacity.

Revenez un mois plus tard et vous ne vous souviendrez peut-être pas si c'est len, length() ou myList.size().

Mais avec la répétition espacée à travers un projet, le résultat est différent.

Par exemple, vous travaillez sur une application Django de deux mois pour les nouveaux codeurs où vous devez :

  • Compter le nombre d'utilisateurs plusieurs fois.
  • Stocker le nombre d'exercices effectués.
  • Trouver le nombre de chats dans une journée.

Imaginez faire cela tout au long du projet – pendant deux mois. Il est difficile d'oublier ce que fait len().

C'est un exemple trivial, mais j'espère que vous comprenez l'idée.

Les nouveaux apprenants peuvent commencer par des exemples simples et isolés.

Mais si vous ne pratiquez pas dans le cadre d'un projet et n'utilisez pas et ne réutilisez pas ce que vous avez appris, rien ne passe dans votre mémoire à long terme. Tout est à court terme.

Et cela signifie que vous l'oublierez.

Travaillez avec la peur, pas contre elle

J'avoue que cela est plus facile à dire qu'à faire.

Mais vous devez maîtriser cela si vous voulez durer.

Il y a cette tentation de régler votre peur avant de continuer à apprendre. Malheureusement, cela ne fonctionne pas comme ça.

En fait, vous passerez beaucoup de temps à essayer de faire disparaître votre peur, mais au lieu de cela, cela ne fera que doubler votre anxiété. Vous devez trouver un moyen – votre moyen – d'admettre que vous avez peur.

Et franchement, vous continuerez à avoir peur pendant longtemps. Alors travaillez avec cette réalisation.

Pas besoin de la combattre.

Parfois, cette peur disparaît à mesure que vous devenez plus compétent.

D'autres fois, elle disparaît pendant un certain temps et revient lorsque vous entrez dans un nouvel environnement, travaillez avec des développeurs logiciels intelligents ou passez à une nouvelle pile technologique.

C'est normal.

Image _Photo par [Unsplash](https://unsplash.com/@open_photo_js?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">Jasmin Sessler / <a href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utmcampaign=api-credit)

Si vous voulez progresser en tant que développeur logiciel, vous devez vous rappeler :

C'est LA vie.

C'est une onde sinusoïdale – montant et descendant sans fin. Ne la prenez pas trop au sérieux ou vous vous perdrez.

La constance > le travail acharné

La constance est reine.

Lorsque vous commencez à apprendre, vous établissez des voies neuronales qui facilitent la récupération des informations.

Selon les recherches en neurosciences, ces voies ne se renforcent que par la fréquence d'utilisation, pas seulement par l'intensité.

Cela signifie que 30 minutes par jour, 5 jours par semaine, est bien mieux que 2,5 heures un jour, une seule fois par semaine.

Mêmes heures, impact différent.

Ne travaillez pas seulement dur, appliquez la sagesse ici.

Talent = pratique cachée

Il est facile de rejeter les progrès comme du talent.

Mon premier cours de programmation était en C++ et mes camarades de classe refusaient de croire que je n'avais jamais codé auparavant parce que j'étais simplement si talentueux.

Mais ce qu'ils refusaient aussi d'accepter, c'est qu'après le cours, je passais cinq heures à taper :

cout << "ceci est mon premier programme"

Puis je réalisais qu'il ne s'exécutait pas parce que j'avais oublié un point-virgule ;.

Alors je le retapais et réalisais qu'il n'affichait pas mon énoncé sur une nouvelle ligne parce que je n'avais pas ajouté endl.

Cette pratique délibérée a construit un talent perçu.

Le talent est plus sexy que le travail acharné, donc personne ne veut entendre que vous avez travaillé dur et que vous en êtes arrivé là. Dites-moi simplement que vous êtes né comme ça – c'est plus crédible.

Image Talent vs. Travail acharné - La majorité d'entre nous se fraye un chemin à travers le travail acharné.

Mais devenir un développeur logiciel compétent est comme jouer d'un instrument.

Seuls quelques-uns sont nés talentueux.

La majorité ne peut devenir aussi bonne que la quantité de pratique que nous mettons.

Et vous pouvez immédiatement dire qu'un étudiant n'a pas pratiqué dès qu'il s'assoit au clavier.

Vous rencontrerez des imbéciles !

Chaque domaine a sa dose de personnes horribles.

Sans aucun doute.

Mais je ne suis pas sûr de ce qui attire autant d'imbéciles dans le développement logiciel.

Peut-être parce que le codage donne l'impression d'avoir un super-pouvoir ou une compétence rare. Si vous êtes un programmeur débutant, vous rencontrerez ceux qui codent depuis des années et pensent que personne d'autre ne devrait entrer.

Un développeur Windows seulement ? Vous rencontrerez des fanatiques de Linux qui pensent que vous êtes médiocre.

Si vous êtes une femme, vous serez immédiatement rejetée à cause de votre genre. Je le sais d'après des histoires personnelles de collègues au fil des ans.

Si vous êtes une minorité, vous rencontrerez des gens qui pensent que vous devriez seulement aller chercher le café, pas coder.

Si vous venez d'un autre domaine (particulièrement pas STEM), vous rencontrerez des gens qui se font automatiquement les gardiens de la communauté de programmation.

"Nous ne voulons pas de scientifiques sociaux ici – nous sommes puristes !"

Image _Photo par [Unsplash](https://unsplash.com/@markusspiske?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">Markus Spiske / <a href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utmcampaign=api-credit)

Ils sont en ligne.

Et au travail.

Et malheureusement, parfois dans votre famille.

Ce n'est pas si vous les rencontrerez, c'est quand.

Apprenez à passer à autre chose.

Les choses s'améliorent, mais il reste encore beaucoup à faire pour éduquer les gens.

Mais ne laissez pas cela vous décourager. Construisez votre résilience pour ne pas abandonner après avoir rencontré ces personnes.

Et quand vous arriverez au sommet, ne soyez pas un imbécile !

Maîtrisez une chose

Les nouveaux développeurs ont tendance à sauter d'une chose à l'autre.

D'accord, ce n'est pas seulement les nouveaux développeurs – ce sont aussi les personnes expérimentées.

Vous avez appris React pendant une semaine. Puis JavaScript pendant deux semaines. Laravel pendant trois.

Arrêtez.

Vous devez vous réveiller et réaliser que vous prolongez simplement le temps qu'il vous faudra pour vraiment apprendre quoi que ce soit.

"Si l'on est maître d'une chose et que l'on comprend bien une chose, on a en même temps une compréhension et une compréhension de nombreuses choses." ~ Vincent Van Gogh

Choisissez une chose.

Restez-y pendant quelques mois – idéalement 6 à 12 mois avant de passer à autre chose.

Cela a deux avantages :

  1. Vous irez assez loin et atteindrez une masse critique qui vous rapprochera de la maîtrise.
  2. Après avoir maîtrisé un domaine, vous pouvez transférer vos connaissances à un autre. Exemple : apprenez Flask et vous pourrez facilement passer à Django. Apprenez React en profondeur, et vous pourrez rapidement identifier les avantages et les inconvénients de Laravel en quelques jours.

Cela ne signifie pas apprendre HTML seul pendant six mois. Puis seulement CSS pendant 1 an.

Plutôt, cela signifie ne pas mélanger l'apprentissage :

  • Django
  • Avec Express
  • Puis React
  • Un peu de développement de jeux
  • Et iOS.

Vous pourriez en faire beaucoup en peu de temps. Et peut-être vous sentir comme un programmeur débutant en croissance rapide. Mais c'est une illusion.

Vous n'avez maîtrisé rien.

Le développement logiciel est un domaine en constante évolution

C'est excitant.
C'est frustrant.
C'est intimidant.

Mais si je devais, je le referais tout.

Merci d'avoir lu !

Ouf ! Beaucoup de réflexion et de nombreuses heures pour mettre cela ensemble.

  1. Suivez-moi sur Twitter : Je suis le plus actif sur Twitter. Si vous avez aimé cela, partagez et retweetez ceci pour aider à répandre la parole. Vous avez des questions ? Mon DM est ouvert.
  2. Rejoignez la communauté email : Je mets en place des ressources pour aider les nouveaux codeurs et les développeurs juniors à renforcer leur confiance. Si vous êtes intéressé, rejoignez cette liste email. Et si vous avez aimé cela, découvrez plus de mes articles pour débutants et développeurs juniors.

Attention - J'adore la recherche, donc j'ai tendance à étayer mes conseils et mon approche avec des concepts de psychologie comportementale et de neurosciences.