Meu caminho de engenheiro para programador

Sumário
O autor entendeu o quão difícil é para os engenheiros da Rússia viverem e decidiu ir para os programadores. Ele fez isso. Um post sobre como.

Por que estou escrevendo tudo isso


  • Gratidão . Agradeça à comunidade Habr.
  • Suporte e motivação . É moral apoiar engenheiros que também decidiram mudar seu chamado para um novo, mas não podem decidir.
  • Auto motivação . Um pequeno relatório e alguns planos feitos publicamente são muito úteis para avançar.
  • Compartilhe experiência . Talvez alguém mostre meu caminho para o seu próprio caminho.

Gratidão


Por isso, o post foi concebido. Aqui é por onde começar.
Meu post " Engenheiro VS Programador. Ou aonde os engenheiros vão ”trouxe muitos comentários, algumas mensagens pessoais, algumas entrevistas. Mais importante, ele me trouxe uma onda de apoio, positividade e motivação.


Muito obrigado a toda a comunidade Habr! Foi o apoio da comunidade que deu o pontapé inspirador ao meu objetivo e me levou aos programadores.


Agradecimentos especiais Quero dizer que a serenityfx , que se registrou especificamente para deixar um comentário com uma proposta de compartilhar sua experiência, teve tempo para conversar comigo pessoalmente, para responder às minhas perguntas. Ele me deu orientação e me ajudou a entender como e para onde ir a seguir.


Obrigado, Habr! Você é legal!


Resumo da última postagem


Tendo trabalhado como engenheiro por 14 anos, incluindo um engenheiro de desenvolvimento, decidi mudar para programadores, porque um engenheiro de software é uma especialidade exigida com salários mais altos, grandes perspectivas e oportunidades.

Do meu jeito


Graças ao feedback de Habr, pude articular claramente mais dois caminhos de desenvolvimento.
O primeiro é tentar novamente encontrar-se como engenheiro de desenvolvimento, na Rússia e no exterior. Felizmente, vários contatos pessoais vieram diretamente dos comentários, o que nos permitiu fazer várias tentativas.


A segunda maneira, que também é bastante clara, é baixar as habilidades do programador de microcontroladores e sistemas embarcados e procurar posições iniciais (no meio de junho) nesta área.
Como um “macaco inteligente e bonito” que tinha tempo, tentei caminhar simultaneamente em duas direções. Ativamente envolvido em busca de emprego, inclusive no exterior, e começou a bombear suas habilidades em controladores.


Seis meses depois, ficou claro que o primeiro caminho ainda é um beco sem saída. Nós devemos ir aos programadores. Coincidência me levou a dispensar. Eu me concentrei nos controladores e na procura de emprego, mas como programador.


Inesperadamente, recebi uma oferta para trabalhar como freelancer em um projeto que me usou tanto como programador de controladores quanto como engenheiro de desenvolvimento. Minha vida de freelancer durou 8 meses e terminou com pagamentos de pedidos. Mas minhas habilidades de programação cresceram muito nesse período, então voltei ao mercado de trabalho e procurei um emprego como engenheiro de software.


De acordo com os resultados de uma das entrevistas, fui convidado primeiro para um estágio, depois para um período de teste, que gradualmente se transformou em um contrato permanente. Então me tornei um engenheiro de software embarcado.


Mas vamos ficar um pouco mais detalhados sobre cada uma das etapas.


Posição inicial


Começa com um engenheiro de desenvolvimento. De fato, meu trabalho consistiu na metade do desenvolvimento e teste de algoritmos, hardware, um quarto das questões organizacionais - gerenciamento de equipes, compras e documentação e um quarto da programação de dispositivos desenvolvidos.


Como engenheiro da velha escola, eu tinha uma propensão ao conhecimento teórico; portanto, quando fui demitido pelas costas, já tinha vários cursos com vários graus de utilidade:



Além disso, havia cursos interessantes, porém inúteis, do HTML da ITMO Academy (HTML / CSS / JS),
" Gerenciamento de projetos " do HSE e " Teoria dos grafos " do ITMO. E também metade do curso JavaRush concluído, que foi abandonado depois de decidir ir para o incorporado.
Na prática, tive experiência em modelar e processar sinais associados aos meus dispositivos. Experimente escrever firmware para os controladores da série SiliconLabs C8051, controladores júnior Atmel e alguma experiência de desenvolvimento para FPGAs da Altera.


Também estava atrás de mim a experiência de gerenciar uma equipe e produção em pequena escala, mas eu considerava isso irrelevante.


Procurando emprego


O tópico das entrevistas merece um post separado. Havia muitos, eles passaram em ondas.
Havia muita estranheza nas entrevistas. Quando fui entrevistar para o cargo de programador, eles me perguntaram por que, com tanta experiência, não quero trabalhar como engenheiro. Em uma entrevista com um engenheiro, fui torturado por experiência em programação.
Houve breves reuniões nas quais eu disse: "Pare, você não precisa de mim". Por outro lado, uma das posições era uma maratona de entrevistas de cinco entrevistas de duas horas em inglês no Skype. Havia militares camuflados a quem eu não queria ir em princípio. Havia uma empresa, que em essência era uma cooperativa de freelancers liderada por um gerente.
O principal resultado da maioria das minhas entrevistas foi a falta de ofertas de emprego onde eu queria e a disponibilidade de empregos onde eu não queria trabalhar.


Vida como freelancer


Aqui mergulhei de cabeça em todos os prós e contras do freelancer, que foram discutidos muitas vezes em Habré. Para mim, o tempo se tornou uma enorme vantagem. Eu morava na minha casa na natureza e não passava um tempo na estrada. Mas eu dediquei facilmente o projeto 12 horas por dia, tendo a oportunidade de estudar e fechar as lacunas de conhecimento que eu tinha na programação. Mergulhei no mundo do STM32, incluindo o FreeRTOS. Primeiro, criei o projeto de que precisava no Discovery, depois criei um quadro e o repeti na série 10x. Paralelamente, descobri o Git e o design para UML como parte das tarefas necessárias. Infelizmente, eu não poderia sair de casa, porque teria que carregar o osciloscópio, ferro de soldar, fonte de alimentação comigo.


Ao mesmo tempo, projetos relacionados a antenas e radares foram executados. Mas a receita principal foi trazida por um cliente. A propósito, essa renda era uma vez e meia superior ao meu salário como engenheiro de desenvolvimento.


No entanto, no início, o cliente começou a adiar o pagamento das etapas, mas eu o atendi. Quando ele parou completamente de pagar e desapareceu do horizonte, ele teve que apertar o cinto e procurar trabalho novamente.
Sim, lugar comum conhecido por todos - celebrar um contrato. Troquei dinheiro por experiência em freelance e programação.


Teste de batalha


Entrei nesta empresa pela segunda vez. A primeira tentativa de resolver a tarefa de teste (uma pequena tarefa para o microcontrolador) não levou a uma entrevista. Liguei de volta, descobri o que exatamente não gostou da minha solução (poucos comentários, apenas uma solução foi proposta). A segunda tentativa, seis meses depois, teve mais sucesso.


Entrevista com um representante de RH, com pequenos testes. A conversa com o futuro colega é longa e completa. No total, mais de 2 horas. Uma proposta para um "estágio" pago por vários dias.


Durante o "estágio", ele fechou alguns bugs. Ele recebeu o dinheiro em suas mãos, juntamente com a oferta de um período experimental de três meses.


Podemos dizer que a partir desse momento começou um mergulho real, com meio ano de duração. Brevemente durante esse período:


  • mergulhou de cabeça em todo o lago Legacy Code, lutando com insetos;
  • Engasguei-me com o Linux embutido, de drivers a bash scripts;
  • correu rapidamente através do SVN;
  • teste de unidade aprendido pelo GTest;
  • dominou a metodologia de IC, configurou suas tarefas com vários testes Hudson / Ant / Python -> compilação + unidade;
  • descobriu o Qt e seus widgets;
  • impulsionou a aplicação prática do FreeRTOS no STM;
  • escreveu scripts de teste de saída para um novo dispositivo;
  • quase parou de sentir a síndrome do impostor.

Os primeiros seis meses foram um período muito ativo. Você trabalha por 8 horas. Então você chega em casa e, pelo resto do tempo, tenta aumentar rapidamente seus conhecimentos e habilidades para resolver as tarefas definidas por dia. No dia seguinte, você vem trabalhar e tenta resolver um problema com novos conhecimentos.


Os colegas ajudaram muito. Onde conselhos práticos, onde apenas idéias.


Quando você trabalha no modo: há um problema - você precisa resolvê-lo com urgência e o treinamento se move muito mais rápido. O principal é não esquecer de parecer um pouco mais amplo e ter tempo para entender exatamente o que você está fazendo.


Agora, abrandei um pouco, especialmente porque no inverno eu caí em um estado próximo à hibernação, mas não apenas trabalho como programador, mas também sinto vontade. Código legado, sprints, design, testes, CI / CD em pleno crescimento. E eu gosto disso!


O salário em comparação com o engenheiro de desenvolvimento mais que dobrou. Nenhum processamento ou requisitos obscuros. Isso é ainda mais do que eu esperava quando eu estava indo para os programadores.


O que vem a seguir ...


Não pare. Isso não é difícil, porque a programação tem a capacidade de arrastar para o processo. Tendo começado, é muito difícil parar.


Estudar. Porque ainda existem muitas manchas brancas em meu conhecimento, incluindo as teóricas. E como não é prático o suficiente.


Eu realmente quero lidar com o meu projeto, especialmente porque tenho algumas idéias na cabeça e tenho dois lenços interessantes em minhas mãos.


Inscrito em alguns cursos. Algoritmos e bancos de dados.


Eu quero chegar ao senhor na mesma esfera, mas vamos ver.


Conclusão


A principal mensagem deste texto é que eu fui capaz de me tornar um engenheiro de software para sistemas embarcados a partir de um engenheiro de desenvolvimento em dois anos. Se eu não tivesse perdido tempo em vãs esperanças e pisoteado no local, eu definitivamente ficaria dentro de um ano e meio.


O que era importante e necessário era o conhecimento da teoria. Conceitos básicos, ferro, Linux, controladores.
O que claramente não era suficiente - prática. Qualquer um dos meus projetos, com o código e os comentários obrigatórios e bonitos - estava em falta quando procurava um emprego.


Confiança de que tudo vai dar certo. Eu tive comentários inspiradores sobre Habré e a "retaguarda forte" que acreditavam em mim.


Mais uma vez obrigado a todos!

Source: https://habr.com/ru/post/pt441070/


All Articles