emile-perron / Unsplash
Je suis un journaliste expérimenté, un rédacteur et un aspirant développeur (JS, node). Si on m'avait dit il y a neuf mois que je travaillerais comme technicien et devrel dans une société informatique russe et que je me plongerais dans le développement de logiciels avec plusieurs centaines de développeurs parmi les plus puissants, je ne l'aurais pas cru.
Ici, je veux vous raconter comment je suis passé de la sphère médiatique à l'informatique, donner des conseils à ceux qui envisagent de se lancer dans le développement et partager des ressources avec les mêmes débutants que moi en programmation.
Pourquoi j'ai voulu changer de métier
À l'automne 2019, ma rédaction a été soudainement licenciée et un horizon d'opportunités s'est ouvert devant moi.
Il y avait déjà trop de design et de marketing dans ma vie. Au cours des 20 années de ma carrière, j'ai écrit sur les technologies d'impression et d'édition à la maison d'édition ComputerPress, travaillé pour l'ancienne meilleure maison d'édition Independent Media, où j'ai créé des médias de marque pour de grandes marques et le magazine de yoga le plus cool, publié un bulletin académique à HSE, travaillé dans des startups médiatiques à la mode, a réussi à cuisiner chez SUP-Media et a géré des rédactions solides.
Mais l'enthousiasme pour les produits imprimés et les projets médiatiques a progressivement disparu - la circulation du papier a diminué, les startups des médias ont été fermées ou transformées en voitures de circulation, la dépendance aux budgets publicitaires a provoqué une dépression.
Je voulais autre chose:
- , . — .
- . IT .
- , . , .
- . . , , reddit.
- . , , IT .
- . , — . .
// $$$ , IT. . - , .
— 80 . 80 , .
, UX-, , , - . //
Ici, je vais écrire une séquence d'actions qui est à mon avis plus efficace pour rejoindre le développement. Faites très attention au choix des cours et au format de la formation, sinon vous risquez de perdre du temps et de l'argent.
Comment ne pas faire
IT — (200+ 12 ). , . , . , . . — .
Et comment le faire, considérons.
Comment choisir la langue et la direction
goran-ivos / Unsplash
Décidez de ce que vous voulez programmer et dans quel environnement. Mais vous ne devriez pas rester coincé dans le choix pendant longtemps. Quelle que soit la langue que vous choisissez, un abîme s'ouvrira devant vous. Et si vous passez quelques heures chaque jour à étudier, l'abîme ne diminuera pas.
Avec chaque tâche, vous tomberez à nouveau dans l'abîme de l'ignorance et du malentendu. C'est l'état normal du développeur - ne sachant rien, il suffit de s'y habituer. Continuez calmement sur Google tout ce qui vous pose des questions.
Regardez la vidéo sur le développement. De toute évidence, le développement n'est pas uniquement une question de codage. Regardez et écoutez de quoi et comment les blogueurs développeurs parlent. Cela vous aidera à vous immerger dans l'environnement et à vous faire une idée des pièges de la profession.
// . 0. , , . , .
IT- : (IT-) , .
Il y a des liens vers chacun de ces gars sous la vidéo de Beard. Voir tout le monde pour comprendre qui et ce que vous aimez le plus. Cela devrait également vous faire décoller face à des options infinies et à la nécessité de choisir. //
Écoutez des podcasts. Mon top 5 personnel jusqu'à présent (liens ApplePodcasts):
Eh bien, voici la sélection la plus cool avec des podcasts informatiques et des descriptions détaillées, où se trouve mon top, y compris avec des liens vers différentes plates-formes.
Lisez des livres sur la programmation. Je recommande de commencer par les livres de Robert Martin, écrivain et développeur, auteur du principe SOLID. Ils vous aideront à acquérir une compréhension de l'architecture, de la culture et de la philosophie de la programmation. Pas un seul entretien n'a lieu sans connaissances théoriques. La connaissance de la théorie est la loi de l'entrée dans la profession et la garantie de sa croissance.
Lisez les textes sur les bonnes ressources.Si vous lisez déjà ce texte sur cette ressource, vous êtes en train de vous lancer dans le développement. Et aussi Tproger, vc.ru, le magazine Code et les étendues infinies de Medium pour vous aider. La plateforme Medium m'aide à résoudre des problèmes spécifiques, grâce à des blogueurs-programmeurs étrangers qui aiment faire des tutoriels sensés avec du code.
En tant que développeur js, je suis également aidé par les ressources de MDN , le blog StackOverflow, notamment learnJavaScript , Metanit , Telegram et YouTube du développeur Vladilen Minin.
Apprendre l'anglais.Si vous ne l'avez pas déjà. La plupart des informations dont vous avez besoin pour résoudre les problèmes sont rédigées en anglais. Se plonger dans le développement sans connaître l'anglais sera long et douloureux.
Je suis sincèrement désolé pour les gars qui sont venus au noob intensif sans anglais. Ils, à leur tour, se sont sentis désolés pour moi, voyant à quel point j'étais ennuyé. La programmation en binôme dans cette situation a toujours été un succès.
Trouvez-vous un tuteur. Mentor, mentor, tuteur, coach - il peut être appelé comme vous voulez. Une personne vivante vous aidera à répondre aux questions les plus stupides, et vous n'aurez pas honte de les poser, car c'est son travail.
Un mentor vous aidera à apprendre comment résoudre des problèmes et à réfléchir, ou du moins vous aidera à déterminer la direction et vous apprendra comment faire les premiers pas pour résoudre les problèmes. Mais que pouvons-nous cacher, le mentor vous apprendra à google, car au début vous ne comprendrez même pas quoi écrire dans la barre de recherche de votre navigateur.
Comment choisir un mentor
adi-goldstein / Unsplash
Cherchez votre mentor. Approprié pour vous. Si vous ne comprenez pas ce qu'ils vous expliquent, tout va bien pour vous, c'est juste que cette personne ne vous convient pas, et sa pensée n'est pas proche de vous. Oui, trouver votre mentor est une tâche qui peut ne pas être résolue du premier coup. Au fait, je recherche un mentor (js, node, react, vous pouvez aussi y aller).
Fuyez ceux qui disent que vous avez des cerveaux humanitaires et que le développement n'est pas pour vous. C'est un développeur qui ne peut pas expliquer, aucune capacité pédagogique et un PSI instable. Vous apprenez et, à ce stade, vous dictez les règles - qui et comment écouter.
Fuyez ceux qui appellent Apple une technique de cuisson- avant toi est un bas niveau, dans un mauvais sens, oldfag, et ses professeurs étaient des sexistes qui aimaient jouer à Apple / Microsoft Holivar. Il est important de comprendre dans quel but vous avez besoin de la technique et de l'utiliser conformément à l'objectif.
Ne vous accrochez pas à un mentor. Un mentor vous aide à définir votre état d'esprit, mais vous ne devriez pas et ne pouvez pas devenir un clone de votre guide. Un problème de programmation peut être résolu de dizaines de façons. Il n'y a pas de solution unique en matière de programmation.
Il y en a toujours un certain nombre, car la programmation est un processus de pensée complexe, et non une reproduction de formules mathématiques (nous ne parlerons pas ici de morceaux de code finis). Assurez-vous d'utiliser des sources et des formats différents pour le pompage.
Comment se pomper
timothy-dykes / Unsplash
Trouvez un youtubeur dont vous aimez coder les tutoriels , ou mieux quelques-uns et répétez après eux. Développez votre mémoire musculaire avec des listes de tâches, des calendriers, des applications météo et un budget domestique.
Un tel copier-coller avec un programmeur anglophone améliore également votre langue. N'oubliez pas que le code indien ne fonctionne souvent pas et qu'il peut être douloureux. Eh bien, l'accent indien est très drôle.
Publiez vous-même vos solutions de codewars sur github. Et oui, résolvez les problèmes sur les codewars. Et oui, créez un compte sur github.
Achetez un deuxième moniteur . C'est confortable.
Commit des projets vedettes sur github . Il vous sera crédité (mais pas exactement).
Parlez au canard. N'ignorez pasméthode de canard pour résoudre le problème. Il aide vraiment.
Résistez à la tentation de payer beaucoup de frais de scolarité . Tout est sur Internet, il est logique de surpayer personnellement votre tuteur / mentor / mentor si ses explications vous conviennent bien.
Après plusieurs mois d'une telle vie et consacrant au moins deux heures par jour à la programmation, il est logique de suivre des cours intensifs, mais vous pouvez immédiatement décrocher un emploi de stagiaire ou un juin dans une entreprise et commencer à résoudre les problèmes par des entretiens.
Comment choisir les cours
Après avoir fait les exercices ci-dessus pendant plusieurs mois, vous passerez complètement pour juin, si vous avez déjà vos propres projets dans votre portfolio sur github et un certain niveau de pompage sur les codewars. Mais à ce stade, il existe un risque élevé d'attraper le syndrome de l'imposteur.
Ce n'est pas une maladie si rare en informatique. Des cours intensifs (et pas si) aideront à y faire face, ainsi qu'à d'autres incertitudes. Pendant la préparation aux cours, vous pourrez probablement déjà économiser à la fois pour la formation et pour un airbag qui vous aidera pendant vos études et votre recherche d'un emploi.
Avec le contexte que je viens de décrire, vous serez Yoda dans les cours intensifs pour débutants. Mais si vous expliquez mal ou n'aimez pas le faire, vous êtes furieux par ceux qui ne savent pas ce que vous savez déjà, alors il est peu probable que des cours intensifs vous viennent. Parce que dans la programmation en binôme et en groupe, vous serez un personnage trop toxique.
Les cours sont bons parce que les débutants peuvent échanger des connaissances et améliorer leurs compétences - les plus expérimentés, qui, à leur tour, améliorent leurs compétences en explication et en transfert de connaissances.
En passant, sur les cours, vous pouvez comprendre quel type de joueur d'équipe vous êtes et à quel point vos compétences générales sont bonnes. Il s'agit de connaissances très importantes, car le codage n'est qu'une petite partie du développement et peut-être le plus agréable pour certains. La part du lion des processus informatiques repose sur l'interaction entre les personnes, la capacité de négocier et de travailler en équipe.
Lors du choix des cours, regardez:
Le programme. Faites attention à la pile technologique, demandez à voir les vraies tâches que les élèves accomplissent. Il est peu probable que vous profitiez de 10 semaines de tic-tac-toe dans un terminal si vous étudiiez pour devenir développeur commercial. Et ils ont pensé aller immédiatement travailler dans une société informatique d'ici juin. Demandez au moins quelques problèmes, il est peu probable que tout le programme vous soit présenté.
Matériel pédagogique. Pour ne pas faire face aux problèmes d'il y a cinq ans, écrits en russe médiocre et avec un faible niveau de visualisation, demandez à vous familiariser avec le matériel de formation. Vous devriez l'aimer.
Regardez comment l'information vous est présentée en tant qu'étudiant. Vous ne devriez pas avoir l'impression de voir les instructions d'un aspirateur chinois d'Alik devant vous lorsque vous lisez la description du problème.
Sinon, vous maintenez une faible culture de l'enseignement de la programmation et de la rédaction technique. Les auteurs des courbes de descriptions de tâches peuvent prétendre que ce sera encore pire au travail, ne vous laissez pas berner par ce truc pourri. Vous avez besoin d'un travail sympa.
Expérience des enseignants. Demandez une vidéo où l'instructeur explique quelque chose. Google tous les instructeurs. Cela vous aidera à mieux comprendre s'ils vous visitent ou non. Parce que ce sont ces personnes qui vous ouvriront les yeux sur la façon dont un univers complètement nouveau est organisé pour vous.
Découvrez où les instructeurs ont travaillé et quelle expertise ils ont en développement. Il est peu probable qu'un enseignant qui a travaillé en tant que programmeur dans une banque toute sa vie vous prépare à travailler comme sous-traitant frontal avec des clients commerciaux qui veulent des applications belles et rapides (mais ce n'est pas certain).
Revue de code. Demandez aux gestionnaires de savoir comment se déroulent les évaluations. J'ai découvert que j'avais une critique une fois par semaine, et ce que c'était, seulement pendant la troisième semaine de formation. Lors de la révision, l'enseignant a préféré parler de quelque chose d'abstrait, par exemple, pour discuter à quel point nous nous sommes retirés de la programmation par paires aléatoires. Il n'y a eu aucune discussion sur le code.
Et à partir de là, la frustration n'a fait qu'augmenter. Il me semblait que mon code était si mauvais qu'il n'avait même pas de sens d'en discuter. Au milieu de mes études, ce professeur a littéralement changé ses chaussures dans les airs et a quitté l'enseignement en tant que gourou des pratiques ésotériques.
Malheureusement aujourd'hui, nulle part et personne n'est enseigné à enseigner la programmation d'application en peu de temps. Par conséquent, recherchez et choisissez votre mentor, avec qui vous vous sentirez personnellement à l'aise pour comprendre l'art du codage.
De vrais projets d'étudiants. Demandez de vrais projets d'étudiants et divisez les informations reçues par deux. Les meilleurs projets sont toujours affichés, mais ce n'est pas un fait que vous vous retrouverez dans la meilleure équipe du stream.
Processus organisationnel.C'est très cool si les cours créent une véritable ambiance de journée de travail de programmeur en bonne compagnie: la matinée commence par un stand-up, il y a une programmation en binôme et en groupe, une revue (normale), une approche agile. Cela vous aidera à vous intégrer rapidement dans le flux de travail du nouveau lieu de travail.
Permettez-moi de résumer les premières étapes du développement:
- Si vous décidez de passer au développement et à la programmation depuis n'importe quel autre domaine, gardez à l'esprit que vous devrez maîtriser beaucoup de choses par vous-même.
- Si vous décidez d'aller étudier, sachez qu'il ne faut pas s'attendre à la mémorisation habituelle du matériel comme à l'école de l'apprentissage. Même si vous payez beaucoup.
- — . , . -, , , . , . , , .
- — , . . , .
- , . , .
- - . .