Comment trouver votre premier emploi en tant que programmeur?

Récemment, Alexey Parshukov, chef d'unité chez SkyEng, ex-CTO DocDoc, a organisé un webinaire «Démarrage rapide de la programmation à partir de zéro» et a discuté des différences dans l'apprentissage des langages de programmation, l'essence de la profession de programmeur, comment trouver un emploi et ce que sont les employeurs. Vous pouvez regarder le webinaire sur le lien et lire l'article à ce sujet maintenant :)



image




Qu'est-ce qu'un métier de programmeur?



Le métier de programmeur présente des avantages évidents que tout le monde connaît:



  • Bons salaires


À partir de 100 tr. par régions de la Russie, 250-300 tr à Moscou, à l'étranger de 10 mille dollars;



  • Horaire flexible


Un développeur est avant tout un travail à distance;



  • Demande sur le marché international


C'est l'un des emplois les plus faciles pour l'immigration.



Mais tout le monde ne peut pas devenir développeur, sinon tout le monde se serait recyclé en tant que programmeur il y a longtemps. Vous devez toujours rester en ligne. Vous ne pouvez maîtriser aucune technologie, lire un livre, suivre un cours, maîtriser parfaitement Python et gagner 20 ans avec cela. L'industrie et les technologies évoluent si rapidement que les approches, les frameworks, les langages de programmation qui sont pertinents aujourd'hui changeront presque certainement complètement dans 4 ans, et si vous abandonnez la profession pendant un an, vous devrez pratiquement repartir de zéro.



Par exemple, partir pour l'armée est un très gros problème pour les étudiants, car beaucoup de choses vont changer en une année d'absence du monde du développement. Ce n'est pas très critique. Vous pouvez vous rattraper assez rapidement, mais, dans tous les cas, vous devez constamment rester sur la ligne de tendance, apprendre constamment, étudier les approches modernes, regarder ce qui change et comment, et vous serez alors un développeur prospère qui gagne beaucoup d'argent.



Et un autre inconvénient, dont peu de gens parlent, est une discrimination fondée sur l'âge assez forte. Si vous êtes étudiant, trouver un emploi sera assez facile. Si vous avez entre 30 et 40 ans, vous êtes le bienvenu dans toute entreprise technologique. Si vous êtes dans la quarantaine, ce sera plus difficile. Mais si vous avez plus de 50 ans, vous ne trouverez probablement pas d'emploi nulle part. Cela vaut la peine de se rappeler, cela existe.



Comment savoir si un emploi de programmeur vous convient?



Ce n'est pas si important ici quelle éducation vous avez, si vous êtes diplômé de l'université par profession. L'essentiel est que vous ayez fortement développé la persévérance. Pourquoi est-ce si important?



Imaginez que l'on vous confie une tâche en tant que développeur, par exemple, déplacer un bouton du côté gauche de l'écran vers la droite dans une application mobile afin qu'il soit pratique d'appuyer dessus avec votre pouce. Vous vous asseyez et commencez à faire cette tâche. Il vous faudra un peu de temps pour comprendre l'application: où elle se trouve, comment elle est assemblée. Il en faudra un peu plus pour étudier le code qui programme et affiche ce bouton à l'écran. Il faudra très peu de temps pour apporter des modifications à ce code et dire au compilateur ou au téléphone portable: "Veuillez afficher ce bouton non pas à gauche, mais à droite."



Mais alors ce code ne fonctionnera probablement pas. Et pour les prochains essais, cela ne fonctionnera pas. Vous aurez besoin de lire une tonne de documentation pour comprendre comment fonctionne le mappage des boutons sous Android ou iOS. Nous devrons essayer 10 façons différentes: trouver des rondes de travail, étayer le tout avec des béquilles, écrire au développeur, regarder les codes sources Android et dans 4-5 jours, au mieux, ou même plus tard, ce bouton sera affiché selon vos besoins.



Tout travail consiste en ceci: chaque jour, chaque tâche. Chaque ligne de code que vous écrivez est très susceptible de ne pas fonctionner ou de ne pas fonctionner comme vous le souhaitez, et il n'y aura aucune raison évidente pour laquelle cela ne fonctionne pas. Il faut un temps fou pour comprendre ce qui se passe là-bas et comment faire en sorte que cette chose fasse ce que vous voulez.



Et le résultat final, dans lequel tout a fonctionné, devrait vous apporter beaucoup de joie. C'est le principal facteur de motivation du développeur, qui le pousse à aller travailler et à faire quelque chose au jour le jour. La persévérance vous permettra de ne pas vous effondrer, de ne pas refuser, de ne pas changer d'avis, de ne pas être distrait par le café et les réseaux sociaux, mais de rester assis pendant des heures et de réfléchir aux raisons pour lesquelles cela ne fonctionne pas et comment le faire fonctionner.



Quel genre d'employeurs existe-t-il?



Free-lance



En règle générale, ce sont de petites tâches pour peu d'argent. Ils peuvent être effectués assez rapidement. Ils sont cotés sur des bourses indépendantes. Le principal échange en Russie est freelance.ru. Le principal international est upwork.com.



Les échanges sont adaptés pour entreprendre certaines tâches pratiques qui apportent un certain avantage, par exemple, gagner votre premier argent. C'est assez simple. Personne ne lira votre CV, vérifiez si vous avez une réelle expérience, si vous pouvez tirer cette tâche ou non. C'est un bon endroit pour mettre la main sur et commencer à programmer quelque chose, en faisant de l'argent. En théorie, il y a des gens qui ont fait cela toute leur vie et qui y gagnent beaucoup plus d'argent que l'employeur.



Mais il y a aussi des inconvénients. Le principal est que cela ressemble plus à créer votre propre entreprise qu'à travailler en tant que programmeur, car vous passez beaucoup de temps à rechercher des commandes, à communiquer avec le client, à aligner efficacement les processus et à consacrer peu de temps au développement. Et, en règle générale, les produits pour lesquels des tâches sont données sur les bourses utilisent une pile technologique assez spécifique. Par exemple, de nombreuses tâches seront liées à des changements dans le moteur de blogs Wordpress. Il est rarement utilisé dans le développement de produits, encore moins souvent dans les entreprises, mais il y aura un million de tâches sur ce sujet en freelance: réparer certains Landos, déplacer une image, écrire un plugin. Cette expérience et ces technologies sont peu applicables au travail pour un employeur. Il est difficile d'apprendre quelque chose en freelance car il n'y a pas d'équipe. Il n'y a aucune personne avec qui vous interagissez,de qui vous pouvez apprendre quelque chose, qui peut tester votre travail et partager vos expériences. Par conséquent, le travail indépendant est bon pour commencer, mais pas pour un travail professionnel.



Studios / Intégrateurs / Sous-traitants



Ce sont des entreprises assez différentes, dont les activités sont très différentes. Il y a à la fois des petits et des grands joueurs, mais ils partagent généralement des avantages et des inconvénients.



Des pros:



  • Un large flux de projets complètement différents


Vous ne vous endormez pas dans une routine de projet particulière. Ce sont des projets différents, ils changent constamment, vous avez la possibilité d'apprendre constamment quelque chose de nouveau;



  • La plupart de ces entreprises ont des processus assez clairs.


Ils ont des algorithmes pour travailler avec la documentation, un processus de développement intégré, une interaction avec un client, ils travaillent bien avec des estimations, ils savent calculer l'économie, car c'est leur activité professionnelle.



  • Haut niveau


Vous pouvez bien apprendre à développer des logiciels à partir d'eux.



Les inconvénients:



  • Toutes les entreprises ne sont pas géniales


Les meilleures entreprises se portent vraiment bien. Ils ont tout parfaitement construit, ils ont de l'argent, des clients et des projets intéressants. Mais il existe de nombreuses entreprises de niche avec un petit personnel de 5 à 10 personnes, dans lesquelles les processus ne sont pas si bien huilés, mais dans ces entreprises, vous pouvez facilement trouver un emploi et apprendre quelque chose d'utile. Vous pouvez apprendre à développer des logiciels en travaillant avec eux pendant six mois et vous déplacer dans une autre entreprise pour un emploi mieux rémunéré.



  • Peu de liberté


En règle générale, le client sait ce dont il a besoin. Il a un design, il a une tâche clairement définie, il vient souvent avec ses propres technologies. Et malgré le fait qu'il vous semble qu'il serait préférable de faire autrement, ces questions ne sont généralement pas discutées.



Pour entrer dans ces entreprises, vous devez connaître les langages de programmation appliqués. Par exemple PHP, Python, Java, Javascript.



C'est un bon endroit pour commencer une carrière.



Startups / Petites entreprises



Il existe des centaines de telles entreprises. Une douzaine de nouveaux ouverts tous les jours, mais neuf d'entre eux fermeront définitivement.



Il y a de nombreux avantages à essayer de travailler dans une startup:



  • C'est très excitant et amusant;
  • Le moyen le plus simple est de gagner beaucoup d'argent.


Au début, souvent, le fondateur partage activement ses actions, surtout si la startup prend son envol et se développe rapidement, alors vous deviendrez très bientôt millionnaire;



  • Il n'y a pas d'héritage dans les projets, il n'y a pas de vieux code qui donne envie de pleurer
  • Beaucoup de liberté


Vous pouvez choisir les technologies et programmer comme vous le souhaitez. Vous pouvez grandement influencer le produit.



Mais il y a aussi des inconvénients:



  • 9 entreprises sur 10 sont fermées


Beaucoup d'entre eux fermeront au cours de la première année sans lancer le produit;



  • Faible opportunité d'apprentissage


En règle générale, les meilleurs spécialistes ne viennent pas dans ces entreprises, il n'y aura pas toujours quelque chose à apprendre là-bas;



  • Imprévisibilité


Souvent, le flux financier de ces entreprises est instable. Vous pouvez travailler pour une telle entreprise pendant un certain temps et vous ne recevrez pas votre salaire pendant deux mois.



En fait, le plaisir l'emporte sur tous ces inconvénients. Mais aller dans une telle entreprise sans expérience ne sera pas la meilleure décision. Le niveau de stress sera très élevé et le niveau de connaissances pratiques, très probablement, ne suffira pas à faire glisser le projet.



Banques / Entreprise



Avantages:



  • Stabilité;
  • Bon salaire;
  • Faible niveau de responsabilité


Personne ne vous demandera de recycler et d'être responsable de quelque chose de grand. Toute grande entreprise est un maître dans la répartition des responsabilités entre un groupe de gestionnaires.



Moins:



  • Très faible vitesse


Vous pouvez couper une fonctionnalité pendant un an ou deux sans la libérer, car pendant ce temps, elle perdra sa pertinence. Le salaire, bien sûr, sera payé, mais cette chose est très démotivante;



  • Expérience spécifique


En règle générale, il s'agit d'une sorte de logiciel bancaire. En gros, il s'agit d'un ancien code, qui n'est ni très agréable ni très intéressant à travailler;



  • Il sera assez difficile de changer de domaine d'activité ici.


Tout d'abord, parce que vous perdrez votre salaire. À Sberbank, ils sont toujours plus élevés qu'à Yandex.



Une excellente option pour un premier emploi si vous atterrissez en stage. Dans une grande entreprise, lors d'un stage, vous pouvez obtenir en peu de temps de nombreuses informations utiles de nature appliquée: sur la manière dont le logiciel est développé, les outils à utiliser. Cette expérience, dans tous les cas, sera pertinente.



Entreprises alimentaires



Avantages:



  • Technologies actuelles;
  • Processus débogués;
  • Équipe de professionnels;
  • Haut niveau de stabilité.


Moins:



  • Il est difficile de gagner beaucoup d'argent;
  • Difficulté à trouver un emploi;
  • Un grand nombre d'outils à gérer.


Chaque entreprise a son propre ensemble d'outils, et cette expérience ne sera pas très pertinente pour le marché et pour déménager ailleurs.



Comment choisir une langue?



Cela dépend de ce que vous voulez faire et de l'entreprise dans laquelle vous souhaitez vous rendre.



PHP, par exemple, est un langage très populaire. Il est utilisé par un groupe d'entreprises russes et étrangères, par exemple Facebook. Mais il ne sert à rien d'apprendre PHP pour trouver un emploi sur Twitter, car il n'y est pas utilisé. Si vous souhaitez accéder à Yandex, vous devez apprendre Python ou Java. Le réapprentissage de PHP vers Java n'est pas un processus facile.



Il est préférable de déterminer immédiatement par vous-même 2-3 entreprises dans lesquelles vous souhaitez travailler. Découvrez les langages de programmation qu'ils utilisent et apprenez-les. Ou, commencez par la langue que vous aimez et recherchez les entreprises qui l'utilisent.



Quel genre de développeurs existe-t-il?



Backend



C'est le code qui s'exécute sur le serveur. Le backender, en règle générale, communique avec la base de données, avec les services externes et est responsable de la logique métier. Par exemple, il vous permet d'enregistrer un utilisateur, de le sauvegarder dans la base de données, de lui radier de l'argent, de lui envoyer une notification ou un SMS.



Langages typiques: PHP ou Python, ainsi que le Ruby moins courant.



L'extrémité avant



C'est ce que vous voyez lorsque vous visitez le site. Ceci est un morceau de la mise en page. La mise en page est généralement effectuée dans le langage de balisage HTML, qui indique comment le contenu est affiché sur la page, dans quelle couleur il sera affiché. Javascript est responsable de la façon dont cette page se comportera, comment elle sera animée, où le formulaire sera envoyé, quelle erreur sera affichée au client si le numéro de téléphone est mal saisi. Presque tous les programmeurs ont besoin de ces connaissances. Il n'y a pratiquement aucun domaine où vous n'avez pas à vous soucier de la mise en page. Cette langue est très bonne pour commencer, car où que vous alliez, elle sera demandée partout.



Un paquet entier



C'est un développeur qui sait créer à la fois un frontend et un backend. Lui seul peut classer à la fois côté serveur et côté client, faire fonctionner le tout ensemble, faire fonctionner le projet sans aucune aide. C'est de la voltige. Ces développeurs gagnent généralement une fois et demie plus.



Développement mobile



En fait, c'est le même frontend, mais des langues différentes sont utilisées ici. Cela n'a aucun sens de se plonger dans les langages de programmation qui étaient utilisés il y a 5 ans, tels que Objective-C et Java. Swift et Kotlin sont maintenant utilisés. Toutes les nouvelles applications sont écrites dans ces langues et les anciennes sont réécrites pour elles.



Développement de jeu



Ceci est un domaine séparé. Ici, en règle générale, C ++ et des bibliothèques spéciales telles que Unity, etc. sont utilisés. Un développeur qui sait créer une application mobile dans Kotlin ne pourra pas écrire un jeu, car une pile complètement différente est utilisée, des technologies complètement différentes.



Bureau



C'est ce qui s'exécute nativement sur votre ordinateur. Par exemple, navigateur, Word, etc. Le plus souvent utilisé C ++, C #. Les applications puissantes sont écrites en C ++. Parfois, les applications de bureau sont écrites en Delphi parce que c'est beaucoup plus simple et moins cher.



1C



C'est le produit le plus populaire en Russie. Il est utilisé, d'une manière ou d'une autre, dans n'importe quelle entreprise russe. Son principal inconvénient est qu'il n'est pas utilisé ailleurs qu'en Russie. C'est très étroit, il est très difficile de quitter 1C, mais il y a beaucoup de postes vacants et ils sont bien payés.



Devops



Ce sont des ingénieurs système qui installent des ordinateurs. Maintenant, nous avons besoin de beaucoup d'ordinateurs, les produits sont complexes. Facebook, par exemple, utilise des dizaines de milliers de serveurs, et afin de les rendre plus faciles à administrer, afin que le code passe rapidement des ordinateurs des développeurs à l'environnement de production et passe rapidement aux utilisateurs, des ingénieurs sont nécessaires pour transformer, automatiser et mettre automatiquement des dizaines de milliers en service. les serveurs. Ils le font avec des outils logiciels. Le langage le plus populaire dans ce domaine est Python et Bash. L'étude de python par n'importe quel administrateur système augmentera son salaire d'au moins une fois et demie à deux fois.



AI / ML / BigData / Crypto-monnaies



Le plus souvent, les développeurs de ces domaines utilisent tous les mêmes langages. Le ML et l'analyse des données sont principalement Python et parfois un peu Java. Les crypto-monnaies utilisent C ++. La particularité ici est qu'une bonne connaissance des mathématiques et une connaissance approfondie des outils appliqués sont nécessaires. Il est peu probable qu'un développeur Python ordinaire soit en mesure de se reconvertir en développeur IA en une semaine, car une plongée plus approfondie sera nécessaire.



Comment ne pas choisir la langue et la direction?



  • Ne vous concentrez pas sur les salaires


Selon une étude publiée sur Habr, la langue la mieux payée est Eclipse. C'est un langage assez à la mode, jeune, positif et moderne. Mais que se passe-t-il si vous commencez à l'enseigner aujourd'hui? Il n'y a plus que 11 postes vacants affichés sur hh.ru. Et même si vous allez dans un endroit avec un salaire élevé, cela ne veut pas dire que dans quelques années ce sera toujours d'actualité. Dans ce cas, vous ne serez peut-être pas réclamé et le passage d'une langue à une autre est une histoire assez compliquée;



  • Ne choisissez pas de langues fantaisistes, exotiques, limitées ou en danger


Il y a très peu de postes vacants pour les langues exotiques (Scala, Eclipse) et, en règle générale, ils sont tous pour des développeurs expérimentés. Les langues obsolètes sont généralement données à l'institut / école, par exemple Pascal. Ils n'ont aucune application appliquée, ils ne sont pas demandés sur le marché. Et cela ne vaut pas la peine de commencer avec 1C en raison de ses limites.



  • Ne commencez pas par des langues difficiles


Ce n'est pas une bonne idée de commencer avec C / C ++. Il existe même un tel mème sur Internet: apprenez le C ++ en 40 jours. C'est une langue difficile à apprendre. Il vous faut beaucoup de temps pour commencer à faire quelque chose et être apprécié sur le marché. Si vous envisagez de vous lancer dans le développement de jeux, il n'y a pas d'alternative, vous devrez apprendre le C ++. Mais, par exemple, vous pouvez entrer dans Yandex en tant que développeurs Java et Python.



Bonnes langues de départ



  • HTML / JavaScript


Ils sont faciles à apprendre. Ils sont le moyen le plus simple de savoir si la programmation vous convient et vous convient. La connaissance de ces langues vous sera utile dans tout domaine choisi ci-dessous;



  • PHP / Python


Ils sont également faciles à apprendre. Il y a beaucoup de postes vacants avec un poste junior. Et au fil du temps, vous pourrez utiliser ces connaissances lorsque vous vous déplacerez vers des positions plus raides. Vous pouvez faire carrière en tant que développeur de junior à senior en 2-3 ans, atteignant des niveaux de salaire élevés;



  • Java / C #


Si vous avez besoin d'un emploi stable et bien rémunéré dans une banque ou une entreprise, ce sont les meilleures langues pour commencer. Java a été une langue très populaire au cours des 20 dernières années et restera probablement la langue la plus populaire sur le marché au cours des 20 prochaines années.



Où est-il plus facile de commencer?



  1. Créez votre propre page HTML.
  2. 1-2 JavaScript, , .
  3. . «PHP ». .
  4. . .
  5. , . , - , . fill-time .
  6. Prenez le travail de vos rêves. Très probablement, la première fois, vous ne réussirez pas. Le premier travail est généralement stupide. Mais après six mois ou un an, vous pouvez déjà vous essayer à l'entreprise que vous aimez. Ou démarrez votre propre projet.


Comment ne pas le faire?



  • Vous ne devez pas vous lancer dans des professions connexes: les tests ou la technologie. soutien


Si vous êtes déjà dans ce domaine, alors, bien sûr, cela vaut la peine de vous essayer au développement, mais si vous êtes avocat ou tout juste diplômé d'une université et que vous ne savez pas comment faire carrière, vous n'avez pas besoin de choisir un chemin aussi difficile et long. Apprenez la programmation, les outils appliqués et recherchez immédiatement un emploi de programmeur. Il est tout à fait possible de le faire en peu de temps;



  • Pas besoin de trouver un emploi dans une entreprise informatique pour un autre poste


Par exemple, travailler comme coursier chez Yandex ne vous aidera pas à y trouver un emploi en tant que programmeur;



  • Pas besoin de s'embêter avec un emploi dans une grande entreprise


Très probablement, vous ne pourrez pas le faire en tant que premier emploi. Vous perdrez beaucoup de temps. Il est préférable de commencer par des entreprises plus simples, où vous aurez immédiatement un salaire, y passerez six mois, puis passerez dans l'entreprise de rêve, en ayant une expérience pratique derrière votre dos.



Les nuances du travail en tant que développeur



  • Le premier travail ne sera pas long


Cela ne vaut pas la peine de considérer l'employeur à long terme. En moyenne, les développeurs passent d'une entreprise à l'autre tous les trois ans. Cela est dû au fait que de nombreuses entreprises ne savent pas comment augmenter les salaires des employés, de sorte que le moyen le plus simple de gravir les échelons de carrière est de simplement partir pour une autre entreprise;



  • Il est logique de déménager à Moscou et plus à l'ouest


Même si vous vous trouvez dans un travail à distance, il est conseillé de s'orienter dans le sens du développement. De cette façon, vous grandirez beaucoup plus vite. Et surtout, cela affecte directement les salaires. La différence entre le salaire dans les régions et à Moscou sera d'environ 50%, et beaucoup plus dans les États si vous y déménagez;



  • Vous ne devriez pas choisir une spécialisation étroite


Sur le marché, les programmeurs possédant un large éventail de compétences sont beaucoup plus demandés que les spécialistes restreints;



  • Développer des compétences générales


Cela vous donnera l'opportunité de communiquer efficacement dans l'entreprise, de vous comprendre. Plus vous évoluez professionnellement, moins vous aurez besoin de connaissances en programmation elle-même, plutôt que de savoir comment obtenir efficacement des résultats en équipe;



  • Comprenez votre motivation


Il vous sera plus facile de grandir et de choisir l'entreprise que vous aimez si vous comprenez bien votre motivation. Cela peut vous rendre heureux en premier lieu.



Comment se préparer à un entretien?



Peu importe ce que vous savez. Si vous réussissez 20 entretiens, vous serez embauché pour le 21. Que vous soyez programmeur, que vous ayez des connaissances pratiques ou que vous ne l'ayez jamais fait.


Vous pouvez faire un CV vierge, vous serez invité dans différentes entreprises, vous passez par des entretiens, vous comprendrez ce qu'ils vous demandent et dès le 20e entretien vous saurez quoi répondre à ces questions. Cela vaut la peine de commencer par des entreprises simples où vous ne voulez pas vraiment trouver un emploi et après un mois, commencez à passer des entretiens dans les entreprises où vous voulez vraiment trouver un emploi. Très probablement, ils vous emmèneront et tout dépendra de vous.



Que demandent les Juns lors de l'entrevue?



  • Tester


Presque toutes les entreprises vous demanderont de faire un test, il faudra certainement le faire;



  • Exemples de codes


Il vaut mieux faire une mission indépendante ou un projet pour animaux de compagnie à l'avance, bien travailler dessus, le rendre beau;



  • Préparez des réponses aux questions sur votre expérience et qui vous vous voyez dans 5 ans


Le mieux est de préparer une belle et vraie histoire pour qu'elle soit intéressante à écouter. Ceci est important car ces questions indiquent clairement si vous êtes incité à vous développer et à quoi vous consacrez généralement votre temps. Lors de l'entrevue pour le poste de juin, l'employeur comprend déjà que vous ne savez vraiment rien faire, l'employeur veut embaucher une personne prometteuse, et ces questions montreront à quel point vous êtes prometteur.



Il vaut la peine d'apprendre les bases sur les sujets suivants:



  • Programmation orientée objet;
  • Base de données. Il n'est pas nécessaire d'apprendre un énorme livre en deux volumes sur l'optimisation SQL, mais il vaut la peine de savoir comment effectuer des requêtes SQL sous une forme basique;
  • Modèles de conception;
  • Système de contrôle de version (Git)
  • Capacités linguistiques de base. Par exemple, comment les packages PHP sont connectés.


Avec ces connaissances de base, vous pouvez résoudre certains problèmes pratiques. Ces questions étaient pertinentes il y a 5 ans, sont pertinentes maintenant et le seront dans un proche avenir.



Vous voulez en savoir plus sur le travail en tant que programmeur?



Inscrivez-vous à notre cours en ligne de six mois "Profession: Programmeur" En savoir plus!




All Articles