Migração de carreira, como um Engenheiro Mecânico vira um Desenvolvedor de Sistemas?
Tags: career, productivity
Published: 2020-10-08 15:34:09

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/2jmyh2rmu0n8fdyfxol0.jpeg)

Este artigo visa ajudar a todos que desejam iniciar no mundo da programação, mas não sabem por onde começar. Há cerca de um ano, também passei por este dilema, e decidi então, compartilhar as minhas experiências. Mas, antes de começar a falar sobre programação, irei explicar como decidi fazer a transição de carreira (e começar tudo do zero) aos 26 anos de idade.

Em 2011, aos 17 anos, iniciei os estudos no curso de Engenharia Mecânica com Ênfase em Mecatrônica, sonhando em trabalhar em grandes projetos na área de robótica ou de automação. Após 5 longos anos de estudos, finalmente peguei meu diploma, me sentido pronto para encarar os desafios no mercado de trabalho. Iniciei então, minha jornada em busca de um emprego na área de engenharia, buscando em sites de vagas de empregos e empresas, indicações e classificados.

Mas os anos foram se passando e aquela oportunidade na área nunca aparecia. Enviei centenas de currículos (talvez milhares), dezenas de entrevistas, centenas de testes online e presenciais, mas aquela ligação de confirmação nunca chegou. Em 2019, após 4 anos de buscas infrutíferas, comecei a me interessar pelo mundo da tecnologia e da programação. Comecei a pesquisar sobre quais linguagens de programação deveria estudar para adentrar neste universo, mas acabei me deparando com centenas de linguagens e seus frameworks para estudar, e acabei ficando ainda mais perdido no meio de tanta informação. Apesar da internet nos fornecer milhares de vídeos, artigos, textos e diagramas para auxiliar quem está começando na área, muitas vezes esses conteúdos apresentam muitos termos técnicos, conteúdos muito desatualizados e, por vezes, contraditórios.

Ainda indeciso, acabei me decidindo em iniciar um curso básico de HMTL e CSS pelo Youtube, onde pude entender alguns conceitos básicos de programação e como montar um site simples. Após concluir este curso, iniciei outro curso no Youtube, desta vez em programação Python. Foi neste curso que a minha paixão por programação foi despertada e, depois de fazer o curso (e ainda não sabia direito qual área seguir dentro da programação), acabei iniciando um curso de Java e de Banco de Dados. Em 2019, acabei ingressando no curso de tecnólogo em Análise e Desenvolvimento de Sistema e, em poucos meses, consegui um estágio na área de Desenvolvimentos de Sistemas, onde tive contato com diversas linguagens e tecnologias (como Javascript, Typescript, Ionic, Angular e Cordova) durante a participação de um projeto de desenvolvimento de um aplicativo mobile híbrido (para iOS e Android) e PWA.

Foi durante este estágio que pude notas alguns erros que cometi quando escolhi as primeiras linguagens de programação para estudar. Como não conhecia quase nada sobre o mundo de programação (e pensava que quanto mais linguagens eu aprendesse, mais fácil seria conseguir um bom emprego como desenvolvedor), acabei estudando linguagens de back-end, front-end e mobile ao mesmo tempo. Mas hoje, percebo que não necessariamente alguém que conheça dezenas de linguagens diferentes está mais capacitado para os desafios de um projeto, do que alguém que seja especialista em apenas uma ou duas linguagens. No início da minha jornada, acabei tentando aprender várias linguagens (que não se comunicam muito entre si) como Python e Java (linguagens Back-End) e linguagens Web (HTML, CSS e Javascript — mais voltadas ao Front-End). Foi só quando aprendi claramente a diferença entre Front-End, Back-End e Full-Stack (que explicarei resumidamente a seguir) que decidi seguir carreira na área de Front-End (e talvez me especializar em mobile no futuro).

Basicamente, o desenvolvedor Front-End é o responsável por desenvolver as telas da aplicação que foram projetadas pelo arquitet/desginer, utilizando tecnologias como HTML ou PHP, CSS e Javascript (com diversos frameworks — Vue.js, Node, Angular, Gulp, Bootstrap, jQuery, etc). Por vezes, este desenvolvedor precisará criar as próprias telas que irá programar (utilizando softwares como Photoshop, Ilustrator, Corel Draw, entre outros) e, por vezes, uma vaga de Front-End poderá exigir conhecimentos em WordPress, User Experience e User Interface (UX/UI) e SEO.

O desenvolvedor Back-End é responsável por desenvolver a parte não-visível do programa (que ocorre por baixo da aplicação) e exige alto grau de conhecimento em raciocínio lógico. Entre algumas das linguagens mais famosas que são utilizadas no Back-End estão o Java, C#, Python, Ruby, Go, Swift (para Ios) e Kotlin (para Android). Além disso, é vital conhecer sobre banco de dados, API, JSON, Rest, SOAP, testes e segurança das aplicações.
Por fim, o desenvolvedor Full-Stack é aquele que faz tanto o Front quanto o Back de uma aplicação, ou seja, precisa saber tudo aquilo que um Front-End e Back-End conhece. Por assumirem mais responsabilidades e ter um nível de conhecimento maior, é uma das áreas mais bem pagas, com relação as duas anteriores.
Também há o Desenvolvedor Mobile (que pode ser Front-End, Back-End ou Full-Stack) e que pode se especializar em Android (com Java/Kotlin), sistema operacional iOS (com Swift) ou híbrido (programa que roda nos dois sistemas simultaneamente, podendo utilizar React Native, Ionic, Flutter, etc).

A maior lição que tirei desta jornada foi que, se você está infeliz com sua carreira atual, não hesite em arriscar e começar algo novo. Nunca é tarde demais para iniciar uma nova carreira ou profissão do zero. Afinal, o tempo que perdemos fazendo coisas que não gostamos, pode sair bem mais caro do que o tempo que podemos dedicar fazendo algo que nos faz sentir feliz e realizado, e que poderá mudar nossas vidas para sempre. Eu não me arrependo de mudar drasticamente de área, abrindo mão de construir uma carreira em uma profissão de renome, para fazer algo que me identifico de verdade. Hoje eu sinto que não estou apenas construindo softwares e aplicativos móveis (que talvez sejam utilizados por milhões de pessoas ao redor do mundo), mas, sobretudo, eu sinto que estou construindo pontes que conectam desejos, sonhos e objetivos de milhares de pessoas, tendo a chance de melhorar a vida de milhares de pessoas ao redor do mundo através da tecnologia e da programação. Nunca desista de seus sonhos, nunca é tarde para recomeçar.

“Insanidade é continuar fazendo sempre a mesma coisa e esperar resultados diferentes” — Einstein, Albert.