
Travailler dans l'informatique est cool, mais le chemin vers l'industrie n'est peut-être pas exactement ce que les parents ou les enseignants de l'école décrivent. Sur les bourses du travail, ils recherchent des développeurs mobiles, des développeurs, des backends et des appels d'offres, mais où sont ces professions sur la liste des spécialités des universités classiques?
Nous lançons une série d'articles dans lesquels nous décrirons en détail chaque métier à travers l'expérience des gens. Le premier numéro traite des développeurs Python. Artem Sukharenko et Danila Lobanov ont raconté leurs histoires. Ils sont entrés récemment dans la profession, mais ont réussi à acquérir de l'expérience dans d'autres domaines. Et l'expert était Alexei Petrenko, doyen
du département Python de Geekbrains .
Nous avons parlé de ce que vous devez savoir avant la formation, de ce qui est bon et mauvais langage, de ce qui est difficile à apprendre et sur quoi se concentrer; quelles professions et quel argent promettent la connaissance de la langue, comment se préparer aux premiers entretiens et bien plus encore.
Pourquoi apprendre Python
Artem Sukharenko a étudié au Département d'automatisation et d'informatique de
SibGIU . Sa spécialité était l'ingénierie, mais pas liée à la programmation. Après ses études, Artyom a obtenu un emploi à l'usine ZSMK - l'une des plus grandes usines métallurgiques de Russie.
"J'ai été stupéfait de voir à quel point tout est terrible", dit-il, "un moteur électrique soviétique délabré, pas de modernisation, les spécialistes ne sont pas vraiment nécessaires." Pendant longtemps à l'usine, il ne s'est pas arrêté, mais a continué à travailler avec l'électricien. Il a grandi pour devenir un ingénieur de premier plan à Sibirtelecom, puis a quitté la Sibérie pour Moscou et a obtenu un emploi dans un centre de données commercial, où il était responsable des infrastructures.

La programmation est parfois implicite. Artem a essayé de travailler avec des microcontrôleurs, de faire quelque chose de plus compliqué, mais s'est toujours reposé sur les échecs des employeurs et des clients - ils n'en avaient pas besoin. Il y avait suffisamment de choses élémentaires qui, comme le dit Artem, il est intéressant de ne faire que les 15 premières minutes, et des compétences spéciales ne sont pas nécessaires pour cela.
"Peut-être que je ne suis pas allé là-bas, mais je n'ai pas trouvé de développement pour moi-même. Cinq ans d'université - juste pour tordre les fils. C'était tellement décevant. "
Une fois, un collègue a donné à Artyom l'idée d'étudier la programmation non pas pour les électriciens, mais pour devenir développeur. Il a commencé à lire des livres, à essayer différentes tâches, mais n'a pas osé changer de profession. «Mon désir se prépare depuis longtemps. Au début, ils n'étaient pas autorisés à changer de profession d'hypothèque, de problèmes financiers, de peur personnelle. »
À 36 ans, Artyom est allé à des cours de développeur Python.
Le développement Web est devenu un klondike pour de nombreuses personnes intéressées par les métiers techniques. Et Python est l'un des langages de programmation les plus populaires pour entrer dans la profession. Il séduit par sa simplicité et sa polyvalence.
«Connaître Python, vous pouvez faire beaucoup de choses - des simples scripts à l'analyse des données et à la construction de réseaux de neurones. Mais plus précisément, le développement sur Python est un backend pour les serveurs Web, le développement de la partie cachée d'Internet est celui que les utilisateurs ordinaires ne voient pas. Le serveur, sa logique, son interaction avec les bases de données », explique Alexei Petrenko, doyen du département Python chez Geekbrains.
«Je pense que c'est un bon choix comme première langue. Il a une syntaxe simple. Il pardonne les petites erreurs du développeur. Python a un seuil d'entrée bas, il est très facile d'apprendre les bases de la programmation dessus. Il a un très large public et une vaste bibliothèque, ainsi que de nombreuses bibliothèques externes créées par des développeurs du monde entier. Pour cette raison, il devient une langue qui convient à tout. "
«Bien que Python soit promu en tant que langage pour tout, il n'a en fait que deux domaines d'application: toutes sortes de science des données, ML et autres mathématiques - et le développement Web. En cela, il m'a un peu déçu », explique Danila Lobanov, un ancien administrateur système récemment devenu développeur Python.

«J'ai aimé Python car il peut faire n'importe quel travail. Il a une bibliothèque pour les applications mobiles, pour le bureau, sur laquelle vous pouvez écrire des scripts d'automatisation pour les serveurs, vous pouvez utiliser des applications Web. Mais en fait, seuls les développeurs Web sont tenus de travailler sans mathématiques approfondies. Personne n'y écrit des applications de bureau, encore moins des applications mobiles. Il existe d'autres langues pour cela qui ont été créées spécifiquement pour leurs tâches. »
Danila s'est familiarisée avec l'ordinateur relativement tard, à environ 18 ans. Il a refusé l'enseignement supérieur et est presque immédiatement allé travailler en tant qu'administrateur système. Il a commencé par les tâches les plus élémentaires, puis a poursuivi l'étude de Linux et de la programmation.
«J'ai essayé d'apprendre le C, PHP, Java d'autres langages, mais cela ne s'est pas arrêté - j'ai commencé et arrêté. Je ne pouvais même pas écrire les scripts les plus simples. Quand je suis allé aux cours C, j'ai pu lire le code, mais je n'ai pas pu l'écrire. Ils m'ont donné une tâche, je l'ai regardée et je ne savais pas comment le faire. Le professeur s'est assis à côté, a écrit ligne par ligne, a expliqué, et j'ai compris que c'était exactement ce que je devais faire. Mais ils m'ont confié une tâche similaire et j'étais de nouveau dans la stupeur. "
Après des tentatives infructueuses, Danila a abandonné la programmation pendant longtemps. Il a travaillé une dizaine d'années en tant qu'administrateur système. Et quand il a senti que l'administration n'apportait plus de joie, il a décidé de donner au développement une chance de plus.
«Il vaut mieux pour un nouvel arrivant de comprendre d'abord la syntaxe», estime Alexei Petrenko, «alors seulement, vous devriez penser où vous voulez aller plus loin. Plus vous étudiez, plus vous vous éloignez de la syntaxe vers les bibliothèques, les modèles de conception, les modèles individuels. »
Danila a choisi Python parce que le langage était considéré comme facile. «La syntaxe s'est avérée vraiment simple», dit-il, «comment écrire du texte en anglais. Au début, je l'ai étudié moi-même sur du matériel vidéo sur YouTube, sur des articles, résolu des problèmes sur pythontutor.ru. Mais ensuite, j'ai réalisé que les ressources sur Internet ne sont que les bases et les bases. Ils sont accessibles à tous et partout, et n'aideront pas à apprendre la programmation à fond. Je me suis rendu compte que nous devons chercher des cours qui donneront tout de même, de manière systématique, et ensuite me mèneront plus loin. "
Ce que vous devez savoir avant de commencer la formation
Avant de plonger sérieusement dans l'étude de la langue, Alexei Petrenko recommande de savoir à l'avance si vous aimez programmer du tout. «Je vous conseille d'essayer d'écrire plusieurs programmes, de prendre des cours gratuits. Avant de commencer la formation, il est préférable de comprendre ce qu'est une variable et comment ajouter deux variables.
Pour que les cours ne deviennent pas inutiles, une seule chose peut aider: la pratique. Si vous regardez et écoutez, rien n'en sortira. Pour un débutant, il est même pratique de réécrire le code que l'enseignant affiche à l'écran. Réécrivez et réfléchissez à son fonctionnement.
Le minimum requis pour les cours est de quatre heures par semaine. Deux jours par semaine pendant deux heures. Mais je recommanderais de passer une heure par jour à écrire votre propre code. L'essentiel est de ne pas plonger dans la programmation avec sa tête pour qu'il n'y ait pas d'émeute magique. Lorsque vous apprenez tout de suite pendant trois jours, vous obtenez de la bouillie dans votre tête.
Le démarrage peut être facile, mais des difficultés vous attendent
Artyom a continué à travailler comme électricien dans l'après-midi, et le soir, il a commencé à étudier des cours, malgré sa fatigue. «Comme toutes les personnes naïves, je m'attendais à la magie des cours. Je suis venu pas complètement nul. Il y avait plusieurs livres et même des sites Web simples dans les bagages, y compris en PHP (péché, je l'avoue). J'attendais que le cerveau me forme dans les cours et je deviendrai magicien. Les réalités se sont avérées différentes - il y a des gens qui en savent un peu plus. »

Artyom a aimé les cours, mais tout ne s'est pas bien passé. Le programme à l'époque était nouveau, un peu rodé et chaotique selon ses impressions. Les étudiants ont parlé de questions controversées, ont donné leur avis et les défauts ont été corrigés en cours de route. L'un des enseignants était si faible qu'on lui a demandé de le renvoyer. Mais le reste, comme le rappelle Artem, était très fort.
Danila, cependant, tout est devenu encore plus difficile. Après plusieurs cours d'introduction, il a cessé de suivre le programme et a quitté son flux plusieurs fois pour répéter le programme dans le suivant.
«Tout le monde a reconnu, y compris Geekbrains, que les niveaux 2 et 3 du programme Python étaient parmi les cours les plus difficiles de l'université. Beaucoup d'informations en trop peu de temps, très gros devoirs. Beaucoup n'ont absorbé qu'une partie du matériau. Personnellement, j'ai été transféré deux fois au flux suivant. Nous avons demandé de faciliter le programme, on nous a demandé comment, et j'ai suggéré de diviser deux cours en trois. Certains de ces éléments ont été pris en compte et sont en cours de mise en œuvre. »
Contrairement aux premières tentatives pour apprendre le C, quand rien n'en est sorti, Danila est partie. Les choses qu'il ne comprenait pas se sont transformées en choses qu'il ne comprenait pas, comment ne pouvaient pas être comprises. Mais cette ligne ne peut être surmontée en entassant simplement des manuels. Comme le dit Danila, la programmation et les compétences linguistiques sont deux choses complètement différentes.
«L'enseignement de la programmation est également très difficile. Il semble à tout le monde que comme une personne peut écrire des programmes, cela signifie qu'elle peut enseigner. Ce n'est pas le cas. Lorsque la pensée est reconstruite et que vous savez beaucoup de choses, vous ne pouvez pas vous souvenir de ce que c'est que de ne pas comprendre. "
Alex prévient que Python n'est facile qu'au début. Et après une base facile, vous devrez faire un effort pour maîtriser les aspects les plus sérieux - les bibliothèques et les frameworks. «Si nous comparons le langage de programmation avec un réservoir, alors, par exemple, le langage C est l'océan. Vous plongez d'une falaise à une grande profondeur et nagez ou coulez. Le langage Python est une plage de sable propre où vous pouvez aller loin, nager calmement, et si vous comprenez que vous voulez avancer, il y a un énorme creux derrière la belle plage, comparable en profondeur à C et Java. ”
«La programmation asynchrone en Python est une astuce cérébrale», se souvient Artem. «Nous l'avons vécu d'une manière ou d'une autre superficiellement, puis même lors des entretiens, lorsqu'on m'a posé des questions à ce sujet, j'ai eu l'impression de nager.
Les modèles de conception sont également impossibles à prendre brusquement. J'ai déjà lu les extraits trois fois, spécialement lu le livre, et je n'ai toujours pas confiance en moi jusqu'à la fin. Pendant un mois, qui dure un cours sur eux, il est généralement irréaliste de maîtriser. »
Danila rappelle que le module de sélection est le plus difficile: «Les trois fils se souviennent de ma douleur avec les choix. Il existe un tel module, et il ne m'a pas donné grand-chose en même temps. Maintenant, c'est simple pour moi - maintenant je ne comprends pas comment vous ne pouvez pas le comprendre. "

"La configuration de base de Python contient environ 70 fonctions et des dizaines de mots réservés, mais même un programmeur sympa ne les utilise pas nécessairement tous. Autrement dit, pour apprendre une centaine de mots et comprendre ce qu'ils font, vous pouvez passer une à trois semaines si vous le souhaitez et travailler activement », explique Alexey.
«Les programmeurs débutants écrivent des programmes qui fonctionnent également. Mais ils écrivent le code une fois - ils le lisent dix fois. Lorsqu'au bout d'un moment une autre personne essaie de lire le programme, des difficultés surviennent.
Afin de travailler en équipe à l'avenir et de montrer le code à quelqu'un d'autre, vous devez connaître les normes de style généralement acceptées. En Python, ils sont appelés Peps. Je conseillerais de lire Pep8 en parallèle avec la syntaxe d'apprentissage. Il s'agit d'un accord de programmeurs qui écrivent sur Python. Il recommande comment écrire correctement et à quel point.
Il y a quelques années, une scission s'est produite en Python. Il y a eu Python 2.7, puis la version 3. est sortie. La deuxième version est toujours utilisée, mais uniquement dans les entreprises plus anciennes pour maintenir le code hérité. Si vous obtenez un emploi dans une telle entreprise, vous devrez apprendre Python 2, mais je recommanderais d'apprendre la troisième version. Tous les projets modernes et les bibliothèques tierces sont écrits pour cela. »
Comment réussir le premier entretien
Artem et Danila ont suivi les cours de manière très différente. Après plusieurs tentatives, Danila a décidé de ne pas terminer ses études, car il n'a pas trouvé de compréhension mutuelle avec le professeur des derniers cours, mais il a trouvé un emploi. Artyom, avec ses camarades, déjà pendant la formation, a soulevé un projet de formation dans une startup, qui a commencé à rapporter de l'argent réel.
«Le projet s'appelait GoLiving. C'est quelque chose comme AirBnb, seule l'idée est la suivante: en Amérique, il y a des gens qui vont souvent travailler dans différentes villes pendant une courte période. Et ils peuvent échanger entre eux un logement avec assurance garantie afin de s'assurer que vous ne retournerez pas dans l'appartement détruit. Maintenant, je ne sais pas jusqu'où cette ressource est allée; le financement semble avoir été suspendu. Mais nous avons même eu des investisseurs. »

Danila, pendant la formation aux cours, est restée sans travail pendant six mois. Il a démissionné spécifiquement pour étudier, mais en raison de fréquents transferts, les études ont pris plus de temps et l'argent mis de côté pour cette période touchait à sa fin. Après avoir quitté les cours, Danila n'a même pas eu le temps de commencer à apprendre Django - le framework de développement Web le plus populaire.
«Le soir du Nouvel An, j'ai écrit à une entreprise qui était juste à côté de ma maison. Je suis allé sur leur site, j'ai vu un travail de développeur backend et leur ai écrit une lettre. Je dis que je voudrais travailler avec vous, bien que j'aie étudié, mais j'en sais un peu. Je suis très intéressé et je développerai. Et ils m'ont appelé pour une entrevue. »
«Mon expérience chez Geekbrains montre que certains étudiants trouvent du travail avant de terminer leur cours d'un an», explique Alexey. «L'employeur veut voir une capacité élémentaire à travailler avec la syntaxe dans le développeur de serveur, la connaissance du fonctionnement des sites, le fonctionnement du backend, le même Django gagnant en popularité. J'ajouterais également ici le travail d'équipe et la connaissance des bases de données, car tout backend de n'importe quel site est inextricablement lié au stockage d'informations.

Environ 200 offres d'emploi de développeurs python ouvertes sur My Circle chaque mois, vous pouvez consulter les dernières actualités et vous abonner à la newsletter sur les nouvelles offres d'emploi.
Pendant l'entretien, l'essentiel est de ne pas se taire. Si on vous confie une tâche à laquelle vous ne pouvez pas répondre tout de suite, il vous suffit de raisonner à haute voix, de montrer comment vous pensez et ce qui est capable d'avancer vers une solution.
Et l'essentiel n'est pas de désespérer si le premier entretien n'a pas abouti. En passant à deux ou trois entretiens, vous remarquerez que les questions commencent à se répéter. Et puis vous choisirez où l'obtenir vous-même, car un jour vous irez partout partout à partir de trois entretiens. »
Lors de l'entretien, Danila a été très surprise par le fait qu'on ne lui ait pas posé une seule question technique: «Ils n'ont donné aucune tâche - ils ont juste parlé de la façon dont j'ai étudié, de ce qui m'intéresse. En conséquence, ils ont proposé un emploi et j'ai accepté. »
Alexei estime qu'il vaut la peine d'être plus prudent avec ces entreprises. «En plus des questions générales, il devrait y avoir des tâches pour écrire du code. Même si sur papier avec un crayon, c'est normal. Mais si vous êtes venu à un entretien avec un programmeur et que vous n'avez pas reçu une seule question sur la programmation, vous avez soit été interviewé par une personne incompétente, soit vous ferez quelque chose de non programmatique. Les programmeurs doivent être vérifiés pour la programmation. "
«Je pense que ne pas poser de questions techniques est la bonne approche», dit Danila. «Grigory Petrov, qui est très célèbre dans la communauté Python, dit également que les compétences en programmation (compétences dures) peuvent toujours être renforcées. L'essentiel est de s'accorder sur les perspectives de vie pour être à l'aise de travailler ensemble. Je suis d'accord avec lui.
Bien sûr, les compétences en programmation sont importantes. Mais maintenant je travaille avec des choses qui ne sont pas enseignées dans les cours. Ils m'ont montré déjà au travail, puis je me suis rendu compte, j'ai lu la documentation, les articles, j'ai regardé des exemples. Je suis plus préoccupé par les entreprises qui donnent des éléments de test «normaux». Vous regardez et pensez - est-ce vraiment un test ou suis-je un pigiste gratuit maintenant? "
«L'interview que j'ai eue a fait fondre mon cerveau comme ça», se souvient Artem. "Quand je suis sorti, l'état était comme si j'allais sur le pilote automatique - mes pensées ont continué à bourdonner tellement."
C'était comme ça: il y avait deux eychars et deux technophiles. Un pythoniste et full-stack qui était impliqué dans le web - où j'ai aussi essayé. Le second - à en juger par les problèmes - est un cerveau parfait. Il avait un matan si fort que hoo!
Les premières questions de tous les jours sont venues: «comment vous voyez-vous, comment vous vous sentez» Ensuite, il a pris une pile complète, m'a poursuivi à travers Python, selon Django. Il a dessiné des exemples directement sur papier et leur a demandé. Pas compliqué, mais avec des sous-marques.
Et puis l'oncle-cerveau s'est emparé de moi. Il est allé plus loin dans le matan, a posé des questions sur les algorithmes, et comme la société travaille avec la sécurité et le chiffrement, il m'a également conduit à travers. Mais en cela je ne suis pas du tout fort, donc j'ai répondu comme un enfant de cinq ans. En général, il pleuvait sur le chiffrement, retenu par les algorithmes, mais pas beaucoup.
Honnêtement, je ne m'attendais même pas à ce que je sois rappelé. Néanmoins - a reçu une offre. Dans quelques jours, il y aura une première journée de travail. »
Sur quel argent vaut-il compter
Les gens vont à l'informatique non seulement à l'appel de l'âme. C'est une industrie avec certains des salaires les plus dynamiques en Russie. Et parfois, il semble que les salaires des programmeurs par rapport aux professions moyennes diffèrent comme les salaires à Moscou et dans les régions. Cependant, ni Artem ni Danila ne se sont lancés dans cette profession pour la richesse. De plus, ils ne l'ont pas encore trouvé.
«Même à Moscou dans les positions initiales, les programmeurs se voient proposer 40 à 50 000, peut-être même moins. Dans les régions de 20 000 pour les juniors n'est pas rare non plus. Ce n'est pas un travail aussi bien rémunéré, comme tout le monde le prétend. Oui, lorsque vous atteignez le niveau supérieur, les salaires peuvent dépasser 200-300 mille. Mais où n'y a-t-il pas de tels salaires? Récemment, une compagnie de taxi a montré le revenu des chauffeurs de taxi qui gagnaient le plus. Il y en a 230, 240 mille.

Le tableau des salaires des développeurs de python par qualification montre que la médiane de juin est de près de 60 000 roubles , tandis que celle du milieu reçoit déjà en moyenne un peu plus de 100 000 roubles . Mais la différence entre les médianes pour le senior et le leader est assez faible - 151 000 roubles et 167 000 roubles, respectivement.
Lors du traçage du graphique, les données du calculateur de salaire «Mon cercle» ont été utilisées.
Peut-être qu'en programmation, il est plus facile d'atteindre un niveau supérieur à la moyenne que dans de nombreux autres domaines. Mais pour moi, ce n'était pas du tout le principal. Je voulais créer des programmes. »
«Les salaires dépendent de la région», explique Aleksey, «Quelqu'un se contentera de 40 000 en tant que débutant, quelqu'un peut immédiatement 100 000. Regarder comment faire ses preuves. Si vous montrez que vous pouvez non seulement écrire le code, mais aussi comprendre l'architecture, vous pouvez esquisser l'ensemble du schéma du projet, tous les modules, services, connexions entre eux. »
Artem, dans l'ensemble, s'est mis au développement pour un salaire inférieur à celui qu'il avait en tant qu'ingénieur. «Chez l'électricien, j'avais le poste d'ingénieur en chef et le salaire était très bon. Je suis parti parce que je veux du développement. Et en programmation, vous pouvez vous développer indéfiniment. "
Malgré le fait qu'en programmant l'une des gradations les plus claires et compréhensibles en termes de compétences (junior, intermédiaire, signataire) - elle reste relative et alimente en permanence le débat par le flou de ses critères. Litiges dans l'esprit "vous êtes dans la société X Signor, et vous n'accepterez pas la société Y et junior" ou "jusqu'à ce que vous travailliez depuis dix ans, pas Signor".
«Vous pouvez pomper vers le niveau intermédiaire pendant l'année d'étude. Par exemple, Geekbrains propose des cours obligatoires et des cours optionnels. Tous doivent être complétés complètement pour être honnête - j'ai pompé au niveau intermédiaire. Autrement dit, il s'avère qu'une année du programme principal et six autres mois de cours parallèles », estime Aleksey,« Et Signor est une personne qui a une riche expérience. C'est quelqu'un qui comprend différents cadres, qui est capable de faire évoluer les tâches, de comprendre les ressources dont ils ont besoin. Un homme qui n'invente pas les vélos. Qui, d'après ma propre expérience, a compris tous les aspects et toutes les nuances du travail.
Si une personne après trois ans de travail se considère comme signataire - pourquoi pas. Tout dépend de l'entreprise, des aspirations et des compétences. Si une personne est douée et déterminée, je le croirai.
Une interview complète avec le doyen du département Python de GeekBrains - comment et pourquoi les débutants apprennent la langue