Construire votre propre programme d'apprentissage personnel
Publié: 2022-03-10Après avoir terminé un bootcamp en mars 2019, j'ai été submergé par le choix de frameworks, de bibliothèques, de langages et de cours parmi lesquels je devais choisir pour poursuivre mon apprentissage indépendant et, espérons-le, décrocher l'un de ces emplois de développeur junior insaisissables. Presque tous ceux à qui j'ai parlé avaient une opinion différente sur ce qui était important et méritait d'être poursuivi, mais la plupart d'entre eux ont convenu qu'il était important d'apprendre « les principes de base », sans jamais vraiment préciser ce qu'ils étaient.
Même après avoir obtenu mon premier emploi de développeur l'été dernier, il est rapidement devenu évident que je devais suivre un apprentissage parascolaire régulier pour répondre aux exigences de ce nouveau rôle. J'ai oscillé entre les cours Udemy pendant un certain temps, et pendant que j'apprenais, je me suis souvent retrouvé à copier l'instructeur sans développer par moi-même des compétences en résolution de problèmes . Il m'a fallu créer mon propre petit projet parallèle de bloc-notes pour vraiment saisir le nouveau matériau. Alors maintenant, je savais quel était mon style d'apprentissage : exposition initiale à des idées dans un cours ou au travail, créer une esquisse d'un projet pour solidifier les concepts, puis utiliser ce nouvel apprentissage dans mon travail quotidien si je le pouvais.
La plupart d'entre nous ont une idée solide (quoique durement acquise) de la façon dont nous apprenons le mieux à court terme, mais comment cela se traduit-il dans la structure de l'apprentissage parascolaire à long terme ? Je vais vous dire comment j'ai résolu ce problème pour moi-même. Ces stratégies s'appliqueront à tous les niveaux d'expérience, que vous soyez novice en matière de développement logiciel ou ingénieur chevronné.
Votre propre programme personnel
C'est ma méthode de mettre sur pied un programme d'apprentissage . En tant que personne disposant d'un temps limité et ayant tendance à être prise par la brise de l'impulsivité au détriment d'un travail soutenu et concentré, j'ai trouvé cette méthode la plus compatible avec mon cerveau et mes rythmes généraux. Votre kilométrage, bien sûr, peut varier.
Utilisez les spécifications du rôle "Dream Job" pour définir des objectifs
J'ai trouvé cette étape vraiment utile pour noyer tout le bruit ambiant et me concentrer sur des choses qui seront pratiquement utiles à ma carrière dans les cinq prochaines années environ. (En tant que développeur front-end, je me suis souvent retrouvé à faire les yeux doux en apprenant Rust. Bien que fascinant, ce n'est pas exactement une priorité.)
Vous ne voudrez peut-être pas travailler vous-même dans une grande entreprise de technologie, mais cela vaut la peine de regarder ce qu'ils priorisent lors de l'embauche car, pour le meilleur ou pour le pire, les grandes entreprises ont tendance à donner le ton à l'industrie dans son ensemble. J'ai une petite liste d'entreprises non maléfiques que j'aimerais rejoindre un jour et elles partagent toutes globalement les mêmes priorités : HTML/CSS sémantique, excellentes compétences en JS vanille, accessibilité et un cadre populaire. Un jour, je vais apprendre Rust, mais pour l'instant, travailler sur ces compétences est ma priorité absolue.
J'ai tendance à privilégier Indeed, Guardian Jobs et LinkedIn pour obtenir un large éventail d'emplois sur le marché, mais tout aussi utile est Twitter (recherchez simplement [nom de l'entreprise qui vous intéresse] et « emplois »), et gardez un œil périodique sur la page "Carrières" de vos quelques entreprises préférées tous les deux mois. Jessica Rose, qui tweete sous le nom de @jesslynnrose, écrit fréquemment de longs fils Twitter d'offres d'emploi dans des "entreprises non perverses" qui ne sont parfois pas très bien médiatisées ailleurs.
Une fois que vous avez rassemblé quelques spécifications de poste, essayez de repérer les points communs entre elles et notez-les. Nous les utiliserons pour la prochaine étape.
Identifiez les opportunités pour développer les compétences que vous souhaitez
Rappelez-vous cette liste que j'ai mentionnée? Divisez-le en deux colonnes. Première colonne : les choses sur lesquelles vous pouvez travailler dans votre travail quotidien. Colonne deux : choses que vous devez examiner à votre rythme.
Apprentissage au travail
Les choses sur votre liste qui sont couvertes par votre travail quotidien sont les choses dont vous devez vous soucier le moins. Quoi qu'il en soit, vos compétences dans ces domaines s'amélioreront avec le temps. Certains d'entre vous travailleront dans d'énormes organisations composées de nombreux développeurs avec différents niveaux d'ancienneté et de spécialités, et je vous conseille d'en tirer le meilleur parti, pour le dire franchement.
Si l'accessibilité est une lacune de vos connaissances que vous souhaitez améliorer, essayez de ravaler vos nerfs et approchez quelqu'un sur votre lieu de travail qui possède ces compétences pour une conversation / un café Zoom. Essayez de vous jumeler avec eux, en sachant que vous pouvez vous « jumeler » sur des choses qui ne posent pas de problèmes de codage. Discutez avec eux de l'endroit où ils trouvent leurs informations, des comptes Twitter, des blogs et des podcasts qu'ils suivent et de la manière dont ils se tiennent eux-mêmes au courant des nouveaux développements.
Apprentissage à domicile
En tant que personne ayant deux carrières antérieures, dont aucune n'était liée à l'informatique, qui est entrée dans l'industrie via un bootcamp de neuf semaines il y a un an, j'ai une compréhension rudimentaire de l'informatique, et beaucoup d'entre vous sont probablement dans la même situation.
J'ai trouvé que les Masters Frontend étaient inestimables lorsqu'il s'agissait de cours vraiment bien conçus sur les principes de l'informatique et d'un apprentissage plus spécifique. Personnellement, j'ai trouvé que les cours de Will Sentance sur Frontend Masters étaient précieux pour comprendre le comment et le pourquoi du JavaScript vanille. De même, les cours « Quatre semestres d'informatique en 5 heures » de Brian Holt exposent les étudiants au type de concepts qui peuvent survenir lors d'entretiens techniques.
Il y a des frais d'abonnement mensuels pour Frontend Masters, et cela en vaut la peine, mais il existe de nombreuses ressources gratuites merveilleuses . Je recommande vraiment à tous ceux qui ne l'ont pas encore fait de s'inscrire au CS50. Le cours, organisé par l'Université de Harvard, est une merveilleuse ressource gratuite qui vous exposera à C, Python, JavaScript et à des modules sur l'éthique et les structures de données de base. Les conférences sont très amusantes et vous pouvez faire autant ou aussi peu de cours que vous le souhaitez, sans contrainte de temps.
De même, FreeCodeCamp a bien mérité son statut de point de départ clé pour les développeurs autodidactes et ceux qui souhaitent s'appuyer sur leurs compétences existantes, et je vous encourage à rechercher des cours correspondant à vos intérêts sur Udemy (je suggérerais de ne pas achetez un cours Udemy qui ne bénéficie pas d'une forte remise. Leurs ventes ont lieu une fois toutes les quelques semaines et il y a toujours des codes de réduction qui circulent).
Un de mes préférés est The Complete Node.js Developer Course par Andrew Mead, et j'adore les cours de Colt Steele (il y en a un particulièrement bon sur les algorithmes et les structures de données qui vous aidera si jamais vous vous retrouvez du côté des algorithmes les plus lourds du spectre des entretiens techniques). Smashing Magazine organise également des ateliers en ligne fréquents sur une gamme de sujets qui vous aideront à améliorer vos compétences.
Comme vous le savez peut-être, les compétences qui permettent aux gens d'obtenir des emplois dans le domaine de la technologie peuvent souvent différer des compétences que les gens doivent utiliser au travail. Ces cours vous apprendront les bases de l'informatique tout en vous gardant agile pour les entretiens et vous aideront à combler les silences potentiellement écrasants avec des sommations rapides de différentes structures de données, ainsi que leurs avantages et inconvénients. Le but n'est pas de suivre tous ces cours, mais d' identifier et de combiner ceux qui correspondent aux caractéristiques du poste que vous avez ciblé.
J'ai trouvé que Twitter était incroyablement utile pour trouver des personnes avec qui discuter de problèmes de code. Au printemps dernier, j'ai crié dans le vide à propos d'un problème que j'avais avec Android Studio et j'ai été surpris de participer à un appel vidéo avec un développeur Android moins de dix minutes plus tard, et en plus, il semblait ravi de vous aider !
Ne sous-estimez pas la gentillesse de la communauté des développeurs et n'hésitez pas à lui demander de l'aide lorsque vous en avez besoin, et faites de votre mieux pour vous mettre dans des situations où vous pouvez parler à des personnes d'un monde similaire au vôtre au sein du contexte plus large de l'industrie technologique. Le hashtag #CodeNewbie est une chose pratique à utiliser si vous avez besoin d'aide.
Définir des objectifs et des calendriers
Il est maintenant temps de lier vos objectifs d'apprentissage autodirigés à certaines cibles. Essayez de ne pas placer la barre trop haut - s'il n'est pas réaliste pour vous de suivre un cours Udemy en une semaine, n'essayez pas de vous forcer à le faire si fort que vous atteigniez l'objectif au détriment d'autres choses importantes dans votre vie ou ne pas atteindre l'objectif et vous donner l'impression d'être un échec. L'idée est de rester sur la bonne voie , en appliquant une légère pression pour rester motivé, mais pas au point de se sentir dépassé et de perdre toute motivation.
En tant que personne du matin, je me sens mieux à même de me concentrer sur l'étude dans les heures qui précèdent le début de mon travail de jour à 9h30. Dans cet esprit, et en utilisant le merveilleux outil de suivi du temps, Toggl, je passe de 7 h à 9 h deux matins par semaine à l'étude du code. L'utilisation de Toggl était extrêmement importante pour moi car, peu importe ce que je fais, j'ai souvent l'impression que ce n'est pas suffisant. Mais avec l'aide de Toggl, j'ai pu voir avec certitude que je faisais un minimum de quatre heures par semaine (avec un supplément le soir et le week-end si j'en avais envie) et je me sentais mieux capable de m'éloigner de mon ordinateur portable et de me reposer quand mon le temps était écoulé, en sachant que j'avais accumulé un nombre d'heures acceptable selon mes propres critères.
Rendre les progrès mesurables
Pensez à votre emploi du temps hebdomadaire moyen et essayez de bloquer un moment de la journée où vous avez les meilleures chances d'assurer une concentration ininterrompue. Certains d'entre vous seront des soignants ou autrement extrêmement occupés, et il vaudra probablement mieux que vous preniez votre temps au fur et à mesure que vous le pourrez.
Si cela vous aide à voir un exemple, mes objectifs personnels sont les suivants :
- Terminez un cours Node.js Udemy d'ici la fin février.
- Faites 30 minutes de programme d'exécution avant le travail tous les jours.
Essayez de pécher par excès de prudence pour votre premier ensemble d'objectifs. Vous pouvez toujours augmenter la pression si vous le souhaitez, mais il est préférable de le faire une fois que vous avez réussi à quelques-uns ; assurez-vous d'avoir suffisamment d'espace mental et physique pour vous concentrer vraiment sur ce que vous devez faire pour rester sur la bonne voie.
Trouvez un mentor, ou un ami, ou les deux !
Le mentorat est quelque chose que la plupart des développeurs recommanderaient pour améliorer les compétences, mais, d'après mon expérience personnelle, trouver quelqu'un avec le temps de vous guider est un défi, surtout maintenant. Il existe des ressources telles que Coding Coach qui peuvent vous aider, et je connais quelques développeurs qui ont trouvé leur mentor de rêve lors de rencontres et sur les réseaux sociaux, mais trouver le match parfait est plus facile à dire qu'à faire.
J'ai parlé à Falina Lothamer, une conceptrice pédagogique chez Thinkful - un cours en ligne ouvert et massif (ou MOOC, pour faire court) - pour avoir une idée de la façon dont les professionnels abordent l'apprentissage indépendant. Elle a été très claire sur le fait que trouver et travailler avec un mentor est essentiel pour faire progresser vos compétences en tant que développeur.
"Si vous avez besoin d'avoir quelque chose d'établi pour vous, demandez à ce mentor de dire : "Voilà où je pense que vous devriez vous concentrer", de vous montrer ce qu'il fait dans son travail et de partager son opinion sur l'avenir de votre région. de la technologie va beaucoup aider. Je pense qu'il y a beaucoup de gens dans l'industrie qui sont prêts à remplir ce rôle de mentor et à faire pour les autres ce que quelqu'un a fait pour eux.
Après avoir exprimé certaines de mes frustrations d'avoir heurté un mur de briques avec un certain nombre de cours Udemy, me retrouvant simplement à retenir des informations et à ne pas nécessairement avoir confiance en ce que j'ai appris pour l'appliquer dans d'autres domaines ou sur d'autres projets, Fallina était il est clair qu'être responsable devant une autre personne - idéalement un mentor mais également un autre développeur avec une expérience professionnelle similaire à la vôtre - est essentiel.
« En tant que développeur, vous devez rechercher des opportunités pour démontrer ce que vous savez et comment vous apprenez. Avoir quelqu'un d'autre à qui parler des défis auxquels vous êtes confrontés, et avoir de l'espace pour en parler avec quelqu'un et se rendre compte que "cette chose que j'essaie de faire est compliquée, je ne suis pas un développeur terrible", avoir cela la validation peut être énorme.
Pour ceux qui ne parviennent pas à trouver un développeur senior pour les prendre sous leur aile, je recommande de suivre les conseils de Fallina et de vous rendre responsable devant quelqu'un d'autre dans l'industrie à un niveau similaire au vôtre. Les développeurs se regroupant et partageant des histoires renforceront le fait que ce travail est difficile et qu'ils ne sont pas les seuls ingénieurs à lutter pour se débrouiller au travail certains jours. Ce travail peut être très éprouvant sur le plan émotionnel, et avoir un copain avec qui lutter sera inestimable les jours où rien ne semble aller bien.
Je vous recommande de vous inscrire à Interview Cake, Execute Program ou à un cours Udemy correspondant à votre niveau de compétence et à votre spécialité, et à effectuer les mêmes exercices que votre ami à peu près au même moment. Discutez de ce que vous avez trouvé plus facile et de l'endroit où vous êtes tombé, et maintenez le contact les uns avec les autres tout au long. Bien que vous puissiez certainement faire ces choses seul, favoriser un sentiment d'appartenance à la communauté vous aidera à rester concentré sur votre tâche et augmentera vos chances de vous y tenir.
Un étui pour les applications Scratch Pad
Si vous avez le temps et l'énergie à consacrer à un grand projet parallèle en plus du travail, plus de pouvoir pour vous, mais je trouve la pression pour le faire un peu lourde. Au lieu de cela, je suis un fan du projet de bloc-notes, principalement parce que je profite vraiment du fait de suivre beaucoup de nouvelles idées à la fois, et que je me désintéresse rapidement des projets personnels, il n'y a pas de pression de temps pour me conduire.
Si votre projet parallèle passe un appel API, affiche les informations de manière semi-attrayante et que vous avez appris quelque chose du processus, et que la construction du projet dans une application plus large ne correspond pas à votre neurologie, votre programme de soins , ou vos goûts, alors accordez-vous une pause . Vous ne vous moqueriez pas d'un artiste pour avoir dessiné, et vous ne devriez certainement pas vous sentir mal si vos projets parallèles sont des mutants à moitié formés tant que vous obtenez quelque chose du processus. Mes référentiels GitHub sont des élégies aux bonnes idées passées, et j'ai fait la paix avec.
Tour d'horizon
Compte tenu de l'état du monde en ce moment, la dernière chose que je veux être, c'est une autre voix exigeant la productivité en période de confinement. Ce n'est pas de cela qu'il s'agit. Ce sont simplement des étapes qui ont fonctionné pour moi lorsque j'avais besoin d'apprendre au fil du temps, sans m'épuiser ni me mettre une pression excessive. S'ils travaillent pour vous, merveilleux. Sinon, pas de soucis. Nous avons tous notre propre rythme.
Pas
- Utilisez les spécifications du poste pour identifier les compétences clés.
- Répartissez ces compétences entre l'apprentissage au travail et l'apprentissage à votre rythme.
- Fixez-vous des objectifs clairs, mesurables et réalistes, et ne les augmentez que lorsque vous aurez trouvé votre rythme.
- Trouvez un mentor ou un copain pour être responsable de ces objectifs.
- Relaxer! Un apprentissage désordonné vaut mieux que pas d'apprentissage.
Ressources utiles
- Udemy
- Gâteau d'entretien
- CS50
- Exécuter le programme
- Coach de codage
- Basculer
- #CodeNewbie
- Les ateliers en ligne de Smashing Mag
- FreeCodeCamp
- Maîtres frontaux
- En effet
- Emplois de gardien
Bonne chance!