Résumé
L'auteur a compris à quel point il est difficile pour les ingénieurs de vivre en Russie et a décidé de s'adresser aux programmeurs. Il l'a fait. Un post sur comment.
Pourquoi j'écris tout ça
- Gratitude . Dites "merci" à la communauté Habr.
- Soutien et motivation . Il est moral de soutenir les ingénieurs qui ont également décidé de changer leur appel vers un nouveau, mais ne peuvent pas décider.
- Auto-motivation . Un petit rapport et quelques plans rendus publics sont très utiles pour aller de l'avant.
- Partagez votre expérience . Peut-être que quelqu'un montrera mon chemin vers son propre chemin.
Gratitude
Pour cela, le poste a été conçu. C'est par où commencer.
Mon poste « Ingénieur VS Programmeur. Ou où vont les ingénieurs »a apporté beaucoup de commentaires, quelques messages personnels, quelques interviews. Plus important encore, il m'a apporté une vague de soutien, de positivité et de motivation.
Un grand merci à toute la communauté Habr! C'est le soutien de la communauté qui a donné le coup de pied d'inspiration, en avant, à mon objectif et m'a conduit vers les programmeurs.
Remerciements spéciaux Je tiens à dire que serenityfx , qui s'est spécifiquement inscrit pour laisser un commentaire avec une offre de partage de son expérience, a pris le temps de me parler personnellement, pour répondre à mes questions. Il m'a donné des instructions et m'a aidé à comprendre comment et où aller ensuite.
Merci, Habr! Tu es cool!
Résumé du dernier message
Ayant travaillé en tant qu'ingénieur pendant 14 ans, y compris un ingénieur de développement, j'ai décidé de passer à des programmeurs, car un ingénieur logiciel est une spécialité recherchée avec un salaire plus élevé, de larges perspectives et opportunités.
Mon chemin
Grâce aux retours de Habr, j'ai pu articuler clairement deux voies de développement.
La première consiste à réessayer de vous retrouver en tant qu'ingénieur développement, tant en Russie qu'à l'étranger. Heureusement, plusieurs contacts personnels sont venus directement des commentaires, ce qui nous a permis de faire plusieurs tentatives.
La deuxième voie, qui est également assez clairement tracée, consiste à télécharger les compétences du programmeur de microcontrôleurs et de systèmes embarqués et à rechercher des positions de départ (milieu juin) dans ce domaine.
En tant que «singe intelligent et beau» qui avait le temps, j'ai essayé de marcher simultanément dans deux directions. Engagé activement dans la recherche d'emploi, y compris à l'étranger, et a commencé à pomper ses compétences dans les contrôleurs.
Six mois plus tard, il est devenu clair que la première voie est toujours une impasse. Nous devons aller aux programmeurs. La coïncidence m'a incité à rejeter. Je me suis concentré sur les contrôleurs et la recherche d'emploi, mais en tant que programmeur.
De façon inattendue pour moi-même, j'ai reçu une offre de travailler en tant que pigiste sur un projet qui m'a en même temps utilisé à la fois comme programmeur de contrôleurs et comme ingénieur de développement. Ma vie d'indépendant a duré 8 mois et s'est terminée par des paiements sur commandes. Mais mes compétences en programmation ont beaucoup progressé au cours de cette période, alors je suis retourné sur le marché du travail et à la recherche d'un emploi en tant qu'ingénieur logiciel.
D'après les résultats de l'un des entretiens, j'ai été invité d'abord pour un stage, puis pour une période d'essai, qui s'est progressivement transformée en CDI. Je suis donc devenu ingénieur logiciel embarqué.
Mais voyons un peu plus en détail chacune des étapes.
Position de départ
Commence par un ingénieur de développement. En fait, mon travail consistait pour moitié à développer et tester des algorithmes, du matériel, un quart des problèmes d'organisation - gestion d'équipe, approvisionnement et documentation, et un quart de programmation d'appareils développés.
En tant qu'ingénieur de la vieille école, j'avais un penchant pour les connaissances théoriques.Au moment où j'ai été licencié dans le dos, j'avais déjà plusieurs cours d'utilité variable:
De plus, il y avait des cours intéressants mais inutiles de l' ITMO Academy HTML (HTML / CSS / JS),
« Project Management » du HSE et « Graph Theory » de l'ITMO. Et aussi la moitié du cours JavaRush terminé, qui a été abandonné après avoir décidé de passer à l'embarqué.
En pratique, j'avais de l'expérience dans la modélisation et le traitement des signaux associés à mes appareils. Expérience dans l'écriture de micrologiciels pour les contrôleurs SiliconLabs C8051, les contrôleurs Atmel juniors et une certaine expérience de développement pour les FPGA Altera.
Derrière moi se trouvait également l'expérience de la gestion d'une équipe et de la production à petite échelle, mais je considérais que cela n'était pas pertinent.
Vous cherchez un emploi
Le sujet des entretiens mérite un article séparé. Ils étaient nombreux, ils passaient par vagues.
Il y avait beaucoup de bizarreries dans les interviews. Quand je suis venu interviewer pour le poste de programmeur, ils m'ont demandé pourquoi avec une telle expérience je ne voulais pas travailler comme ingénieur. Lors d'une entrevue avec un ingénieur, j'ai été torturée pour son expérience en programmation.
Il y a eu de courtes réunions au cours desquelles j'ai dit "Arrêtez, vous n'avez pas besoin de moi". En revanche, l'un des postes était un marathon d'interviews de cinq interviews de deux heures en anglais sur Skype. Il y avait des militaires camouflés auxquels je ne voulais pas aller en principe. Il y avait une entreprise, qui était essentiellement une coopérative d'indépendants dirigée par un manager.
Le principal résultat de la plupart de mes entretiens a été le manque d'offres d'emploi là où je voulais et la disponibilité d'emplois où je ne voulais pas travailler.
La vie en freelance
Ici, j'ai plongé tête baissée dans tous les avantages et les inconvénients de la pige, qui ont été discutés à plusieurs reprises sur Habré. Pour moi, le temps est devenu un énorme plus. J'ai vécu dans ma maison de ville dans la nature et je n'ai pas passé de temps sur la route. Mais j'ai facilement donné 12 heures par jour au projet, ayant la possibilité d'étudier et de combler les lacunes de connaissances que j'avais en programmation. J'ai plongé dans le monde de STM32, y compris FreeRTOS. J'ai d'abord simulé le projet dont j'avais besoin sur Discovery, puis j'ai fait une planche et je l'ai répétée sur la série 10x. En parallèle, j'ai compris Git et la conception pour UML dans le cadre des tâches nécessaires. Malheureusement, je ne pouvais pas partir loin de chez moi, car je devrais avoir avec moi l'oscilloscope, le fer à souder, l'alimentation.
Dans le même temps, des projets liés aux antennes et radars se sont déroulés. Mais le principal revenu a été apporté par un client. Soit dit en passant, ce revenu était une fois et demie plus élevé que mon salaire d'ingénieur en développement.
Cependant, au début, le client a commencé à retarder le paiement des étapes, mais je l'ai accepté. Quand il a complètement arrêté de payer et a disparu de l'horizon, il a dû serrer sa ceinture et aller chercher du travail à nouveau.
Oui, banal connu de tous - conclure un contrat. J'ai échangé de l'argent contre de l'expérience en freelance et en programmation.
Test de bataille
Je suis entré dans cette entreprise la deuxième fois. La première tentative de résolution de la tâche de test (une petite tâche pour le microcontrôleur) n'a pas abouti à un entretien. J'ai rappelé, j'ai découvert ce qui n'aimait pas exactement ma solution (quelques commentaires, une seule solution a été proposée). La deuxième tentative six mois plus tard a été plus réussie.
Entretien avec un représentant RH, avec de petits tests. La conversation avec le futur collègue est longue et approfondie. Au total plus de 2 heures. Une proposition de «stage» rémunéré de plusieurs jours.
Pendant le "stage", il a fermé quelques bugs. Il a reçu l'argent entre ses mains avec l'offre d'une période d'essai de trois mois.
On peut dire qu'à partir de ce moment-là a commencé une véritable plongée, d'une durée de six mois. En bref pendant cette période:
- plongé tête baissée dans tout le lac Legacy Code, aux prises avec des bogues;
- J'ai étouffé le Linux intégré, des pilotes aux scripts bash;
- parcouru rapidement SVN;
- appris les tests unitaires par GTest;
- maîtrisé la méthodologie CI, configuré ses tâches avec un tas de tests Hudson / Ant / Python -> compilation + unit;
- compris Qt et ses widgets;
- stimulé l'application pratique de FreeRTOS sur STM;
- écrit des scripts de test de sortie pour un nouvel appareil;
- presque cessé de ressentir le syndrome de l'imposteur.
Les six premiers mois ont été une période très active. Vous travaillez pendant 8 heures. Ensuite, vous rentrez chez vous et pour le reste du temps, vous essayez de tirer rapidement vos connaissances et vos compétences pour résoudre les tâches définies par la journée. Le lendemain, vous venez travailler et essayez de résoudre un problème avec de nouvelles connaissances.
Les collègues ont beaucoup aidé. Où des conseils pratiques, où juste des idées.
Lorsque vous travaillez en mode: il y a un problème - vous devez le résoudre de toute urgence, puis la formation se déplace beaucoup plus rapidement. L'essentiel est de ne pas oublier de regarder un peu plus loin et d'avoir le temps de comprendre exactement ce que vous faites.
Maintenant, j'ai un peu ralenti, d'autant plus qu'en hiver je tombe dans un état proche de l'hibernation, mais je travaille non seulement en tant que programmeur, mais j'en ai aussi envie. Code hérité, sprints, conception, tests, CI / CD en pleine croissance. Et j'aime ça putain!
Le salaire par rapport à l'ingénieur de développement a plus que doublé. Aucun traitement ou exigences obscures. C'est encore plus que ce à quoi je m'attendais quand j'allais chez les programmeurs.
Et ensuite ...
Ne vous arrêtez pas. Ce n'est pas difficile, car la programmation a la capacité de glisser dans le processus. Après avoir commencé, il est très difficile de s'arrêter.
Pour étudier. Parce qu'il y a encore beaucoup de points blancs dans mes connaissances, y compris théoriques. Et comment pas assez pratique.
Je veux vraiment m'occuper de mon projet, d'autant plus que j'ai quelques idées en tête et que j'ai deux écharpes intéressantes sur les mains.
Inscrit à quelques cours. Algorithmes et bases de données.
Je veux rejoindre le seigneur dans la même sphère, mais nous verrons.
Conclusion
Le principal message de ce texte est que j'ai pu devenir ingénieur logiciel pour les systèmes embarqués à partir d'un ingénieur de développement en deux ans. Si je n'avais pas perdu de temps dans de vains espoirs et piétiné sur place, je l'aurais certainement gardé dans un an et demi.
Ce qui était important et nécessaire était la connaissance de la théorie. Concepts de base, fer, Linux, contrôleurs.
Ce qui n'était clairement pas suffisant - la pratique. Aucun de mes projets, avec le beau code et les commentaires obligatoires - manquait cruellement lors de la recherche d'un emploi.
Confiance que tout ira bien. J'ai eu des commentaires inspirants sur Habré et «arrière fort» qui ont cru en moi.
Merci encore à tout le monde!