Article original : How to Become a Standout Developer and Accelerate Your Coding Skills
Par Randall Kanna
Il y a un flux sans fin de nouveaux défis à relever dans le domaine de la technologie.
Les frameworks que vous connaissez changeront. Les outils que vous utilisez avec tant d'aisance évolueront. Les technologies entreront et sortiront de la mode. Vous pourriez vouloir passer à un autre domaine de la tech lorsque votre intérêt pour un autre s'estompe.
Travailler dans l'ingénierie signifie que vous apprenez toujours quelque chose de nouveau pour garder vos compétences à jour.
Alors qu'Angular était populaire il y a cinq ans et que la plupart des emplois en frontend exigeaient des compétences en Angular, le marché a maintenant changé. React a dépassé tous les autres frameworks frontend en tant que nouvelle technologie à la mode.
Alors que Rails était populaire il y a cinq ans, maintenant Node et Python dominent les descriptions de poste.
Garder vos compétences à jour est l'une des clés pour être un ingénieur exceptionnel et construire une carrière durable.
Cependant, cela peut sembler difficile lorsque vous commencez votre carrière. Je me souviens avoir regardé tout ce que je devais apprendre et me sentir si frustré lorsque les gens discutaient d'une nouvelle technologie que je ne connaissais pas.
Et dès que je me sentais compétent dans un framework, un autre devenait populaire. J'avais l'impression de ne jamais pouvoir rattraper mon retard.
Mais c'est aussi l'un des meilleurs aspects d'être ingénieur – vous ne vous ennuierez jamais. Et c'est un outil que vous pouvez utiliser pour vous démarquer de la concurrence.
Apprendre à apprendre comme un développeur n'a rien à voir avec la façon dont vous avez appris à l'école. Il y aura un peu de lecture et quelques cours. Mais la majorité du temps sera consacrée à la construction.
Comment apprendre en faisant
Lorsque vous étiez enfant, vous appreniez en faisant.
Vous avez commencé à parler même si ce n'était pas en phrases complètes. Vous avez commencé à dessiner en faisant. Vous ne lisiez pas à ce sujet en tant que bébé. Vous ne lisiez pas le « Guide du bébé pour la peinture aux doigts 101 ».
Vous avez commencé à marcher en pratiquant. Et cela vous a aidé à saisir de nouveaux concepts rapidement. Vous étiez toujours en train de faire.
En général, en ingénierie, les concepts commenceront à s'ancrer si vous vous concentrez sur la construction plutôt que sur la mémorisation.
Lorsque j'ai commencé en tant qu'ingénieur, je lisais constamment des livres et faisais des fiches. Je ne peux pas vous dire combien de temps j'ai passé à faire des fiches. Je pensais qu'acheter un nouveau livre ou un cours en ligne m'apprendrait à coder et ferait de moi un ingénieur superstar. Mais cela ne s'est jamais produit.
En regardant en arrière maintenant, je ne suis pas sûr de ce que je pensais que ces fiches feraient.
Après des mois d'essais pour mémoriser la syntaxe et les définitions, j'étais exactement là où j'avais commencé. Ce n'est que lorsque j'ai commencé à construire que mes compétences ont commencé à s'accélérer.
Bien que j'adorais lire des livres d'ingénierie et que je le fais toujours, la majorité de mon temps est consacrée à parcourir le livre et à essayer un nouveau concept immédiatement.
C'est une façon plus difficile d'apprendre. Je ne vous mentirai pas – c'est effrayant. Mais rien n'aide à construire de nouvelles compétences en programmation comme construire quelque chose soi-même. La façon la plus rapide d'apprendre à coder sera en construisant.
Mais comment pouvez-vous faire cela ?
Échapper à l'enfer des tutoriels
Lorsque j'apprenais à coder, j'ai passé des mois à suivre des tutoriels. Je regardais le tutoriel et suivais étape par étape. Sans jamais essayer de faire quoi que ce soit par moi-même.
Si un tutoriel devenait trop difficile, je passais à un autre. Je passais des heures chaque jour à regarder des tutoriels.
J'ai essayé d'utiliser les compétences d'apprentissage que j'avais acquises à l'université et de les appliquer au codage. Et cela n'a pas fonctionné. Apprendre à coder, c'est apprendre activement. Pas passivement.
Mais c'était si facile de suivre les tutoriels. Je ne me sentais jamais stupide ou ne ressentais aucun syndrome de l'imposteur. J'avais l'impression d'avoir accompli quelque chose à la fin de la journée.
Pendant ce temps, je suivais absentement la vidéo et n'apprenais rien. Je ne me poussais pas. Si vous voulez apprendre de nouvelles compétences rapidement, vous devez vous pousser.
Après environ six mois passés dans l'enfer des tutoriels à profiter du beau temps, j'ai réalisé que j'avais appris presque rien. Je n'avais aucune compétence. J'avais privilégié les fiches et le visionnage passif de tutoriels plutôt que de construire quoi que ce soit.
Pendant ce temps, des amis qui avaient commencé à travailler sur des projets immédiatement me dépassaient à une vitesse que je trouvais incroyable.
Je me sentais si frustré. Je ne pouvais même pas créer une application basique. Si ce n'était pas dans un tutoriel avec des guides étape par étape, je ne pouvais pas le faire. Ce n'est que lorsque j'ai commencé à me concentrer sur la construction de quelque chose de petit par moi-même que le codage a enfin cliqué pour moi.
Éloignez-vous des tutoriels dès que vous vous sentez à l'aise. Les tutoriels sont excellents lorsque vous commencez. Mais à un certain point, ils ne font que ralentir votre apprentissage si vous en dépendez trop.
Cela s'applique à chaque étape de votre carrière. Si vous êtes un ingénieur junior, choisissez un petit projet. N'utilisez pas de tutoriel. Essayez de comprendre comment le construire par vous-même. Ne vous sentez pas mal si vous ne pouvez pas encore construire une application entière - c'est normal ! Commencez par de petits projets et construisez progressivement.
Et si vous êtes un ingénieur et avez quelques années d'expérience et souhaitez passer de l'ingénierie backend à l'apprentissage automatique, par exemple, choisissez un petit projet et commencez à coder.
Toujours en train d'apprendre
Une autre compétence qu'un développeur exceptionnel doit avoir est de devenir un apprenant sans fin.
Lorsque vous commencez à apprendre à coder, la quantité de matériel que vous apprenez chaque jour semble astronomique. Vous acquérez constamment de nouveaux concepts. Il semble qu'il y ait un flux sans fin d'informations à apprendre.
Idéalement, vous serez toujours en train d'apprendre quelque chose de nouveau, peu importe depuis combien de temps vous êtes ingénieur. Mais cela peut parfois se stabiliser.
Vous commencez à vous sentir à l'aise dans un emploi et le sentiment tenace que vos compétences ont commencé à stagner commence à s'installer. L'ennui suit rapidement.
Garder vos compétences aiguisées maintiendra votre statut d'emploi stable même en période économique difficile.
Voici quelques façons dont vous pouvez toujours être en train d'apprendre.
- Écrivez du code. Beaucoup.
- Trouvez des développeurs meilleurs que vous et travaillez avec eux.
- Demandez à changer d'équipe au travail si vous sentez que vous stagnez.
- Contribuez à des projets open source.
- Participez à des meetups et des conférences.
- Abonnez-vous à des newsletters.
- Commencez à vous connecter avec des développeurs sur Twitter.
- Lisez constamment.
- Construisez des projets parallèles.
- Poursuivez de nouvelles certifications.
- Suivez des cours en ligne.
- Prenez un peu de temps libre. Vous ne pouvez pas emporter vos congés payés dans la tombe.
- Lisez des articles de blog.
- Trouvez un mentor.
- Partagez vos connaissances.
- Écrivez des articles de blog.
Certaines de ces choses, vous ne pouvez pas les faire pendant votre temps libre. Et c'est OK. Nous avons tous une vie personnelle. Concentrez-vous sur la recherche de moyens d'apprendre pendant vos heures de travail, comme changer d'équipe, trouver un mentor ou devenir mentor, etc.
Être un ingénieur exceptionnel ne signifie pas que vous devez passer tout votre temps libre à coder. Le codage est toujours un travail. C'est votre 9-5. Mais vous pouvez choisir d'être un constructeur dans votre travail.
Lorsque vous travaillez sur une nouvelle compétence, éloignez-vous du livre et du cours. Essayez de prendre des tâches au travail qui utilisent les nouvelles compétences que vous voulez acquérir immédiatement. Cela vous permettra de développer des compétences rapidement et efficacement au travail.
Devenez à l'aise avec l'inconfort
Tout en apprenant de nouvelles compétences, vous devez aussi vous pousser. Vous devez devenir à l'aise avec l'inconfort.
Avant de devenir ingénieur, suivre des tutoriels semblait facile et accueillant. Je me sentais rarement submergé. J'utilisais Codecademy et d'autres plateformes similaires et pensais que je faisais des progrès. Mais ce n'était pas le cas.
Après plus de 6 mois de tutoriels, je n'avais pas beaucoup progressé dans mon parcours de codage depuis que j'avais commencé. J'étais toujours un débutant.
Lorsque j'ai commencé à travailler en tant qu'ingénieur logiciel junior, j'étais dans un état constant de peur. J'avais l'impression de ne jamais pouvoir faire assez de travail. C'était une sensation terrifiante. Pourtant, j'ai soudainement appris plus vite que jamais dans ma vie. Mon cerveau était comme une éponge.
Trouvez des opportunités de croissance. Si vous continuez à faire la même chose et à vous sentir à l'aise, vous ne trouverez jamais les opportunités de croissance. Si vous prenez les mêmes tâches au travail et continuez à travailler sur les mêmes choses, vous ne vous pousserez pas et ne grandirez pas.
Toujours mordre plus que vous ne pouvez mâcher. Si vous passez tout votre temps à suivre des tutoriels, cela deviendra routinier et ce ne sera plus un défi. Et vous n'apprendrez pas.
Cependant, si vous choisissez de vous pousser, vous apprendrez plus vite. Vous serez inconfortable, ce qui signifie que vous grandirez.
Un peu comme si vous pratiquiez le piano, si vous continuiez à pratiquer la même pièce encore et encore parce que vous étiez confiant avec elle, vous n'amélioreriez pas vos compétences en apprenant des pièces plus difficiles.
Le même principe s'applique à la plupart des choses dans la vie.
Lorsque j'essayais d'obtenir mon premier emploi de développeur, j'ai dû choisir entre un poste chez Apple et un apprentissage dans une petite startup.
Le poste chez Apple allait payer plus et je connaissais d'autres personnes qui y travaillaient, donc j'aurais des amis et un système de soutien intégrés. Cependant, c'était moitié QA et moitié ingénierie, avec la possibilité de passer à l'ingénierie à temps plein si tout se passait bien.
Le travail dans la startup était instable au mieux. Rien n'était garanti. Ils n'avaient pas d'autre ingénieur qui s'identifiait comme une femme dans l'entreprise. Je serais la seule femme dans toute l'équipe d'ingénierie.
Sans parler du fait que ce n'était pas une offre d'emploi ! C'était une offre pour un apprentissage de trois mois sans garantie que j'aurais un emploi après. Je devrais déménager en ville, signer un bail et espérer que je pourrais somehow me permettre le loyer si je ne réussissais pas l'apprentissage.
Et c'était à l'époque où les bootcamps de codage étaient au plus fort de la bulle. Les étudiants obtenaient leur diplôme à San Francisco et le marché était plus saturé que jamais. Les offres d'emploi incluaient fréquemment « Pas de diplômés de bootcamp », ce qui était très décourageant.
Je savais que si je commençais chez Apple, ce serait bon pour mon CV. Je gagnerais aussi plus d'argent. Mais je ne pouvais pas m'empêcher de penser aux opportunités de croissance et de mentorat que la startup m'offrait.
Malheureusement, je ne savais pas quoi faire. On m'avait vendu l'idée d'un emploi de développeur bien payé pendant mon bootcamp de codage. Pas un apprentissage mal payé qui pourrait ne mener à rien.
J'ai fini par accepter l'apprentissage de trois mois. La plupart de mes amis pensaient que j'avais perdu la tête. Ma propre famille pensait que j'avais perdu la tête.
J'avais soudainement trois mois pour me prouver lors de l'apprentissage. J'ai rapidement perdu le compte du nombre de week-ends et de nuits tardives que j'ai travaillés. J'étais terrifié.
Le rythme était rapide et j'étais impressionné par le peu que je savais. Je me sentais si nerveux certains jours que je voulais appeler pour dire que j'étais malade. Je fantasmais sur le fait que mon train soit retardé sous terre pour être forcé de manquer le travail. Chaque standup semblait une torture parce que je sentais que je ne faisais pas assez.
Pendant ce temps, des amis qui avaient fréquenté le même bootcamp que moi discutaient de leurs emplois d'entrée de gamme confortables chez Apple et de la façon dont ils pouvaient partir à une heure raisonnable chaque jour. Sans parler du fait qu'ils étaient payés tellement plus !
Après les deux premiers mois, mon manager a demandé à avoir une réunion sur l'apprentissage. J'étais convaincu qu'ils allaient me licencier.
Au lieu de cela, ils m'ont dit qu'ils mettaient fin au programme d'apprentissage un mois plus tôt et qu'ils allaient m'offrir un poste d'ingénieur logiciel à temps plein dans l'entreprise. Je ne peux pas décrire à quel point j'étais heureux ce jour-là.
J'ai continué à me jeter dans mon travail. Je me portais volontaire pour des tâches que je ne me sentais pas prêt à accomplir. Si je ne savais pas comment faire quelque chose, je disais que je pouvais le faire quand même. Un an et demi plus tard, j'étais ingénieur logiciel senior dans la même startup.
Aurait-il été plus facile si j'avais accepté le poste chez Apple ? Absolument. Mais les ingénieurs que je connaissais et qui avaient accepté le poste chez Apple n'ont jamais eu de mentor comme moi pour les pousser et les défier d'améliorer leurs compétences.
À long terme, ils ont fini par passer plus de temps à récupérer le temps de formation perdu. Certains sont toujours coincés avec le même titre de niveau d'entrée des années plus tard.
Selon vos objectifs, cela pourrait être bien pour vous. Et c'est okay. Mais je voulais devenir un développeur exceptionnel avec une carrière exceptionnelle. Et je suppose que si vous lisez ceci, vous aussi.
Éait-ce risqué d'accepter le travail dans la startup ? Absolument. La plupart des gens pensaient que ce n'était pas une bonne décision. Mais j'ai choisi d'être inconfortable et cela a payé. Était-ce confortable ? Absolument pas. J'ai probablement vieilli de cinq ans dans ce rôle.
Choisissez l'inconfort. Le plus grand succès le plus gratifiant dans la vie arrive après un travail acharné. Posez le tutoriel et prenez une tâche que vous ne savez pas résoudre.
Travail en profondeur
Le codage est un travail qui nécessite une concentration profonde. Changer de contexte pour vérifier votre téléphone ou les plateformes de médias sociaux sera préjudiciable à la quantité de travail que vous pouvez accomplir en une journée donnée.
La plupart des gens travailleront quelques minutes puis vérifieront leur téléphone. Si l'employé moyen passe 8 heures à travailler chaque jour et passe deux heures ou plus à être improductif, vous pouvez rapidement devenir connu comme un ingénieur qui fait les choses en passant simplement vos heures de travail à vraiment travailler.
En construisant une habitude de concentration et de travail en profondeur, vous deviendrez un ingénieur qui se démarque de la foule. Créer cette habitude montrera également que vous avez une éthique de travail impénétrable.
Combien de temps pouvez-vous passer sans vérifier votre téléphone ou Facebook ou Twitter ? Cinq minutes ? Dix ? Quinze ?
Si vous ne l'avez pas lu, procurez-vous un exemplaire de Deep Work de Cal Newport. Commencez petit. Essayez de vous concentrer sur une tâche pendant 20-25 minutes sans interruption. Mettez votre téléphone en mode avion, fermez tous les onglets inutiles et placez un grand panneau sur votre porte qui dit « NE PAS DÉRANGER ».
Commencez à construire ce temps. Essayez de travailler jusqu'à une session de 45 minutes sans interruption. Dans un monde aussi distrait, la capacité de faire cela est rare et la quantité de travail que vous trouverez soudainement pouvoir accomplir en peu de temps sera choquante.
Il existe de nombreuses applications qui utilisent la technique Pomodoro et qui peuvent vous aider à rester concentré. Essayez d'expérimenter avec quelques-unes et voyez ce qui fonctionne pour vous.
Conclusion
Construire une carrière exceptionnelle en tant que développeur consiste à devenir un apprenant toute la vie. Si vous pouvez utiliser les stratégies que j'ai partagées ci-dessus pour développer vos compétences, vous serez toujours employé.
Cet article de blog est un extrait de mon dernier livre, The Standout Career. Il est disponible pour pré-commande maintenant.