Article original : A guide to teaching yourself to code (and getting a job!)

Par Nicole Archambault

Évitez ce dont vous n'avez pas besoin ; apprenez et pratiquez ce dont vous avez besoin

Image

Comme la plupart des gens, je n'avais absolument aucun plan pour apprendre à coder par moi-même. La décision est venue lorsque j'ai perdu mon emploi dans le service client en 2015.

La transition s'est faite aussi naturellement que de tomber amoureux d'une âme sœur. Nous étions de vieux amours—j'avais essayé de faire en sorte que cela fonctionne à l'université, mais le timing n'était pas bon. Ce n'est pas pour dire que c'était facile ! Mais c'était tellement plus facile avec tant d'émotion pour alimenter l'expérience.

J'ai obtenu mon premier emploi dans la tech environ 10 mois après avoir commencé à m'enseigner le développement web, après une quantité incroyable de travail.

Et croyez-moi quand je vous dis que si je peux le faire… vous le pouvez aussi.

Je suis assez sûre qu'il existe de nombreux guides sur ce sujet—comment apprendre à coder et obtenir son premier emploi en codage. Mais celui-ci est écrit par moi, donc il est différent. Je pense que vous apprécierez mes perspectives. :)

Maintenant, je pense qu'il va sans dire que condenser tout le processus en 5 étapes est une simplification excessive. Je vais vous donner une idée générale de ce qu'il faut faire. Vous avez quelques options pour combler les lacunes, et honnêtement, vous devriez faire les deux !

Option 1 : Comptez sur vos communautés pour obtenir du soutien
Option 2 : Obtenez une aide et des conseils dédiés

Les deux sont en fait ma spécialité ! Je suis une constructrice de communauté passionnée. Je comprends l'importance de voir et d'entendre des personnes qui essaient de faire ce que vous visez à faire.

L'Option 1 est une partie importante de votre croissance en tant que développeur. Vous aurez besoin d'un réseau de personnes. Cette industrie est en fait particulièrement géniale, et très amusante. Nous grandissons avec la technologie—et les uns avec les autres. Nous nous voyons lors de conférences. Nous participons à des chats Twitter hebdomadaires. C'est génial.

L'Option 2 présente quelques barrières d'accès. Essentiellement, cela implique d'avoir quelqu'un—idéalement un coach expérimenté avec une compréhension approfondie de votre situation et de vos objectifs—qui vous prend par la main, fait connaissance avec vous, explore vos rêves avec vous, et planifie votre voyage de là où vous êtes, à là où vous voulez être. Ensuite, vous vous plongez dans les compétences avec une carte et un chemin réels vers votre destination. À ce stade, le travail acharné est à vous et à vous seul.

J'ADORE travailler en tête-à-tête avec les nouveaux codeurs, mais bien sûr, avec le niveau d'attention et d'expertise requis… ce n'est pas gratuit. La plupart d'entre nous font ce que nous pouvons pour soutenir les nouveaux codeurs via des articles de blog, des épisodes de podcast, des livres, et plus encore—mais certains d'entre nous sont prêts à donner plus de notre temps et de notre présence que d'autres ! Ainsi, l'Option 2 est un investissement en vous-même.

Donc, ceci est effectivement une version simplifiée, mais toujours une vue d'ensemble assez complète du processus d'apprentissage de la programmation, puis de l'obtention de votre premier emploi de développeur !

Étape 1 : Comprenez ce que vous faites

J'ai créé un guide entier de 14 pages pour cette toute première partie du voyage car c'est la partie la plus facilement négligée. C'est aussi pourquoi beaucoup de gens abandonnent—ils n'ont simplement pas fait leurs devoirs initiaux.

Vous pouvez télécharger ce guide, intitulé « 10 choses que vous devez savoir AVANT d'apprendre à coder », ici :

Vous pensez apprendre à coder ?
_Vous envisagez d'apprendre à coder et de changer de carrière ? Avant de vous lancer, découvrez ce que l'industrie n'est pas…_resources.lavieencode.net

D'abord, pourquoi voulez-vous faire cela ?

Avez-vous rêvé de coder depuis que vous étiez enfant ? Ou peut-être avez-vous simplement entendu dire que le codage est l'avenir, ce qui a du sens pour vous puisque la technologie se développe si rapidement, donc vous aimeriez monter dans le train. Peu importe votre raison, vous devrez l'établir tôt. Ce sera ce qui vous poussera à avancer lorsque les choses deviendront vraiment difficiles.

Vous devrez créer un budget pour vous-même, ce que je sais être désagréable parce que moi aussi, je déteste les budgets. Si vous changez de carrière, vous devez être sûr de pouvoir faire votre transition avec le moins de stress possible. Le codage est déjà assez difficile en soi… faites vos devoirs pour ne pas vous compliquer la tâche.

Y a-t-il même une industrie du développement web là où vous vivez ? Si oui, plongez-vous dedans et commencez à parler aux gens. Participez à des Meetups. Rencontrez des personnes qui font quelque chose de similaire à ce que vous voulez faire.

Posez des questions sur les entreprises qui embauchent dans la région. Les gens aiment-ils leurs carrières de développeur ? À quoi ressemblent leurs salaires ?

Si il n'y a pas une industrie de développement dynamique dans votre région, vous devrez être créatif. Les emplois à distance pourraient être une option si c'est quelque chose qui vous est ouvert. Alternativement, si vous avez les ressources et la flexibilité, déménager dans une nouvelle ville pourrait être un changement excitant en plus de votre nouvelle carrière.

Le but de l'Étape 1 est de s'assurer que si vous cherchez un emploi, vous ne vous lancez pas dans les choses sans avoir d'abord exploré le territoire.

Si vous vous lancez, vous pourriez vous retrouver à vous sentir mal préparé et stressé lorsque les factures arrivent, que des événements inattendus surviennent, et généralement parlant… la vie arrive.

Étape 2 : Choisissez un titre de poste, et travaillez à rebours

D'accord, donc j'aborde cela différemment de beaucoup de gens. Lorsque les gens commencent à apprendre à coder, l'une des plus grandes questions que j'entends est « que devrais-je apprendre ? » (aussi, « où devrais-je l'apprendre ? »).

Gardez à l'esprit que vous ne codez même pas encore à ce stade. Ou peut-être que vous explorez simplement, apprenez les bases, mais vous ne construisez pas encore de projets. Vous posez toujours les fondations, et vous apprenez à connaître vos outils et leur but. C'est une phase super importante !

Avec tous ces outils disponibles… comment savez-vous lesquels vont correspondre à un titre de poste réel ?

Ne serait-ce pas frustrant d'apprendre un tas de compétences et de langages assez peu liés à un niveau basique, et puis de réaliser qu'ils ne vous obtiennent pas réellement un emploi ? Ou que vous devrez approfondir juste quelques-uns d'entre eux avec un apprentissage supplémentaire, afin d'être même compétitif pour les emplois dans votre région ?

Oui… c'est ce que j'ai fait.

Une petite histoire pertinente

J'ai appris le HTML puis j'ai ajouté le CSS. Je détestais un peu le CSS au début, mais nous avons travaillé dessus et maintenant nous sommes cool. Jusqu'à présent, tout va bien, non ?

Ensuite, je suis passée à JavaScript. Les outils de base comme les variables et même les boucles et quelques structures de données basiques, j'étais à l'aise avec. Mais, en général… les choses ont commencé à devenir difficiles pour moi.

J'ai un trouble d'apprentissage non verbal. C'est un peu drôle que cela n'ait pas été diagnostiqué jusqu'à après que j'ai lutté pour acquérir les compétences nécessaires pour obtenir ce premier emploi 10 mois plus tard. Mes luttes avaient tellement plus de sens.

À ce stade, les algorithmes me faisaient peur. Les algorithmes de freeCodeCamp étaient super difficiles. Beaucoup de mes anciens traumatismes d'apprentissage sont remontés. J'ai pleuré plusieurs fois par frustration lorsque je n'arrivais tout simplement pas à contextualiser un modèle mental pour que mon cerveau neuroatypique puisse « faire clic ».

Dans un état de panique, je suis sortie des rails. Ou peut-être « sur » les rails, car j'ai commencé à apprendre Ruby. Je suis arrivée au même point. J'ai paniqué à nouveau.

Je suis passée à PHP et WordPress. En fait, je les aimais vraiment tous les deux et je les utilise principalement aujourd'hui avec JavaScript. Mais, je suis arrivée à ce même point, et j'ai finalement fini par m'effondrer d'épuisement. Qu'est-ce qui n'allait pas chez moi ?

J'ai fait une pause autour du moment où j'ai écrit cet article parce que j'avais eu une crise existentielle, me demandant si j'étais même faite pour cela :

Pourquoi je réduis mon apprentissage du code… et j'augmente mon apprentissage de la résolution de problèmes
_Wow, cela fait presque un mois que je n'ai pas posté ! Je n'arrive pas à croire que le temps passe si vite. J'ai un point à cela…_medium.com

Cette histoire sert un peu de conte moral, pour montrer ce qui peut potentiellement arriver si vous faites les choses dans le désordre, ou sans une structure initiale. Vous devez être capable de construire ces compétences pour un emploi si vous voulez un emploi.

Voici donc ma question : pourquoi ne pas simplement éliminer les conjectures et déterminer quel type de travail vous aimeriez faire d'abord ?

Et bien sûr, cela va changer avec le temps ! Nous grandissons et changeons non seulement en tant que développeurs mais aussi en tant qu'êtres humains avec le temps. Nous apprenons davantage sur nous-mêmes, et nous voulons changer nos objectifs. Mais commencer avec une sorte de direction de boussole aide VRAIMENT.

Comment faites-vous pour le découvrir ? Vous voudrez faire un inventaire approfondi de vos rêves, passions et compétences existantes. Souvent, il est utile d'évaluer cela avec l'aide de quelqu'un d'autre (comme moi). Nous avons les compétences et les talents que nous apportons à la table que les autres n'ont pas… et que nous-mêmes oublions souvent.

Regardez ce qui est disponible dans votre région. Recherchez sur des sites de recherche d'emploi comme Indeed. Demandez dans les forums locaux en ligne.

Mais la partie importante ici est de prêter attention aux compétences qui sont listées : à la fois techniques et interpersonnelles.

Oui, interpersonnelles. Nous avons assez de problèmes avec un manque de compétences interpersonnelles comme la communication efficace, l'empathie, la compassion et l'inclusion. N'apportez pas plus de cela ici.

Mais ces compétences en codage vont vous guider et vous tracer un chemin vers votre destination afin que si vous changez vos objectifs, vous sachiez au moins ce dont vous vous écartez et vers quoi vous vous dirigez.

Étape 3 : Construisez vos compétences

À ce stade, vous avez une bonne idée de l'industrie du développement local, et vous avez fait vos recherches sur les titres de poste. Vous avez une idée des types de compétences que vous devrez construire sur votre chemin vers votre premier emploi de développeur.

Maintenant, il est temps de construire vos compétences.

Il est important de noter que vous ferez cela en parallèle de l'Étape 4, et en parallèle de tout autre chose que vous pourriez faire (nous voulons garder ces choses limitées). Vous devez toujours apprendre et construire vos compétences tout en construisant des projets avec elles.

Je recommande généralement que les développeurs web commencent par le front-end puisque toutes les routes mènent à l'expérience de l'utilisateur. Mais cela varie vraiment en fonction de ces objectifs initiaux. Voyez où il était utile de les identifier d'abord ?

Par exemple, votre point de départ sera différent si votre objectif est de travailler avec des données. Peut-être que votre objectif est d'apprendre, disons, Python, puisque Python est naturellement très efficace avec la gestion des données. Vous organiserez naturellement votre voyage de construction de compétences différemment en fonction de vos objectifs finaux.

La partie importante ici est que peu importe où vous allez, vous avez une feuille de route. Vous voulez éviter de vous retrouver à apprendre des choses dont vous n'avez pas besoin car elles vous empêcheront d'obtenir un emploi dès que possible.

Vous devriez avoir une liste de ressources que vous savez fonctionner pour vous. Savoir comment vous absorbez le mieux l'information est absolument intégral à cette partie. Ne perdez pas de temps avec des livres si vous apprenez mieux avec des vidéos. Encore une fois, le temps est de l'essence, donc vous devez non seulement apprendre mais apprendre intelligemment, efficacement et efficacement.

Passez un bon moment sur cette section. Vous ajoutez des outils à votre boîte à outils, et vous les utiliserez tous les jours une fois que vous commencerez à travailler.

Étape 4 : Construisez votre portfolio et votre CV

Rappelez-vous, l'Étape 4 se déroule en parallèle de la construction de vos compétences. Vous apprenez tous les jours, et vous appliquez ce que vous apprenez. Et bien sûr, il y a quelques parties vraiment importantes ici que je trouve que les étudiants en codage négligent. Alors laissez-moi aborder cela rapidement !

Astuce #1 : Les projets vous donnent l'avantage en tant que codeur autodidacte

Vous n'avez pas le long CV remontant à votre majeure en informatique au MIT. Moi non plus. Mais, comme… malheur à nous ?

Non.

En tant que codeur autodidacte sans le CV pour soutenir vos compétences, vous allez devoir montrer ce que vous avez. Donc, même si vous allez vous concentrer sur votre CV également, vous devez VRAIMENT consacrer du temps à ce portfolio. Si rien d'autre, votre CV grandira avec votre portfolio à mesure que vous ajoutez des compétences !

Astuce #2 : Vous n'avez pas besoin d'une tonne de projets !

Premièrement, vous n'avez pas besoin d'une tonne de projets. Je pense que beaucoup de débutants sont submergés à l'idée de devoir construire des tonnes de projets afin de montrer ce qu'ils savent.

C'est pourquoi nous alignons ces compétences vers la description de poste réelle. Si vous construisez même UN seul projet mais que vous le maintenez intelligemment—vous allez être des années-lumière devant vos pairs.

D'accord, donc vous avez créé un projet, vous avez posté quelques commits sur GitHub, et vous sentez déjà que vous devez passer au suivant. Arrêtez-vous là, padawan.

Avez-vous tiré le maximum absolu de ce projet ? Parce que vous apprenez des compétences pour un emploi, elles se rassembleront probablement en une pile. Et vous pouvez très probablement appliquer beaucoup de vos compétences nouvellement acquises à la même pratique.

Disons que vous travaillez pour devenir un développeur web front-end. Vous venez de construire votre premier site web.

Pouvez-vous transformer un site web en une application web, afin que les utilisateurs puissent se connecter ?

Si vous n'avez pas construit votre page en mobile-first (vous auriez dû !), que diriez-vous de la refactoriser en mobile first ?

Prenez le temps de regarder vos projets non seulement comme un atout mais aussi comme un aperçu du fonctionnement interne de votre cerveau. Cela est INCROYABLEMENT important pour les responsables de l'embauche. Ils veulent savoir comment vous pensez, afin de déterminer si cela apporte quelque chose de précieux à leur entreprise et à leur équipe.

Donc, pour rebondir sur l'Astuce #2…

Astuce #3 : Devenez un conteur, pas seulement un codeur

Quel meilleur moyen de montrer aux gens le fonctionnement interne de votre cerveau que de documenter votre voyage ?

L'une des ressources les plus sous-estimées pour obtenir un emploi est… roulement de tambour…

…votre fichier README.txt.

Cela ne devrait pas être seulement l'endroit où vous dites aux gens comment exécuter votre programme. C'est là où vous devriez dire aux responsables de l'embauche :

  • Pourquoi vous avez ajouté cette fonctionnalité
  • Pourquoi vous avez abandonné l'ajout de cette autre fonctionnalité et l'avez supprimée
  • Vos prochains plans pour l'expansion
  • Ce que vous aimeriez voir en termes de feedback
  • Ce que vous avez appris à chaque étape
  • Ce dont vous êtes fier, et ce que vous auriez pu faire mieux

Pourquoi avons-nous honte d'écrire nos histoires ? Nous n'avons pas le temps pour cela, nous devons vous trouver un emploi !

Rendez-le drôle, même. Rendez-le épique. Votre voyage est épique.

Mais oui, utilisez votre fichier README.txt, et vous serez sérieusement beaucoup plus attractif pour les personnes qui consultent votre portfolio et vous considèrent pour un emploi.

Étape 5 : Postulez à ces emplois !

Il y a TELLEMENT de choses à déballer dans cette étape, il est tout simplement impossible de tout couvrir dans un seul article ! ? Donc, je vais simplement lâcher une tonne de bombes de valeur sur vous tous.

Astuce #1 : Postulez déjà

L'une des questions les plus fréquentes que je reçois est « quand devrais-je commencer à postuler pour des emplois » ? Ma réponse est quelque chose comme « hier ».

Sérieusement. Allez-y, postulez. Le pire qu'ils peuvent vous dire est « non ».

Donc, voici le truc pour postuler à des emplois en tant que nouveau codeur autodidacte. Vous voulez le faire correctement, et vraiment démontrer :

  • Votre volonté d'apprendre
  • Votre croissance jusqu'à présent
  • Votre enthousiasme pour l'industrie (et spécifiquement, l'entreprise !)

Lorsque vous communiquez avec les responsables de l'embauche, vous allez vouloir être honnête sur où vous en êtes, tout en montrant ce que vous avez fait. Ces deux composantes vont vous mettre sur le radar. Vous êtes vulnérable, et vous retenez encore un certain contrôle sur votre image perçue.

Une autre chose importante à retenir : lorsque vous postulez à une entreprise, ce n'est pas un coup unique. Beaucoup de débutants font l'erreur de penser que c'est le cas.

D'accord, donc disons que vous êtes rejeté pour un entretien. Maintenant, vous avez une fenêtre pour demander des feedbacks. S'ils répondent, c'est une très bonne entreprise. ??

Si vous aimez vraiment l'entreprise, et qu'ils savent que vous êtes autodidacte (ils le sauront de votre CV de toute façon, alors soyez transparent), dites-leur que vous aimeriez développer vos compétences dans leur direction et postuler à nouveau à l'avenir.

Boum. Vous venez de créer une connexion avec les responsables de l'embauche et montré à quel point vous êtes déterminé à améliorer vos compétences afin de répondre à leurs exigences.

Astuce #2 : Vous devez développer des compétences solides en entretien technique

En parallèle de la construction de votre portfolio, vous devrez développer ces compétences en entretien. Mais pas n'importe quelles compétences en entretien—la tech n'est pas comme toutes les autres industries. Nous sommes à la pointe. Nous aimons que vous prouviez ce que vous savez.

Cela est particulièrement important pour les codeurs autodidactes. Vous allez devoir savoir comment faire des choses comme :

  • Expliquer ce que sont différents concepts techniques
  • Résoudre des défis algorithmiques—tout en expliquant votre approche
  • Écrire vos étapes vers la solution
  • Lire vos intervieweurs
  • Faire un peu de danse pour maintenir le contrôle de l'entretien (c'est ma spécialité haha)

Il existe de nombreuses ressources pour cela, comme le livre de Gayle Laakmann McDowell « Cracking the Coding Interview ». De plus, il sert aussi d'arme contondante.

Cracking the Coding Interview : 189 Programming Questions and Solutions
_Je ne suis pas un recruteur. Je suis un ingénieur logiciel. Et à ce titre, je sais ce que c'est que de devoir improviser des solutions brillantes…_www.amazon.com

Vous devrez être vous-même. Ils doivent vouloir vous embaucher, vous. C'est difficile d'être soi-même lorsque l'on n'est pas sûr de ce qui est attendu de vous, mais pourquoi se faire embaucher en tant que quelqu'un que vous n'êtes pas ? Cela semble être de la nourriture pour un syndrome de l'imposteur.

À ce stade

À ce stade, vous avez une boîte à outils de compétences en croissance.

Vous apprenez tous les jours. Vous construisez des projets, mais vous en tirez le meilleur parti au lieu de simplement les abandonner et de passer à la chose suivante. Vous racontez une histoire avec votre README.txt de GitHub.

Mais surtout, vous avez une idée de là où vous allez. Cette boussole interne, aux côtés d'une communauté de soutien (comme #CodeNewbie !), va être ce qui vous sauvera lorsque vous vous perdrez.

Construisez, grandissez et gagnez en confiance en vous. Vous êtes un vrai guerrier, et vous pouvez le faire ! ??