Depois de alguns anos trabalhando como programador no interior do Ceará, decidi que precisava tentar passos maiores na minha carreira. A região que vivia, o cariri cearense, ainda não se tornou um polo tecnológico, portanto, conseguir um bom emprego na área de TI por lá pode não ser tão fácil, já que a região não absorve todos os profissionais que a mesma forma.
Conseguir um emprego melhor como programador, para mim era igual a abrir mão do meu emprego como funcionário público e migrar para os grandes centros. Então, já que teria que deixar minha cidade e ir pra longe, decidi que o melhor seria fazer uma mudança para o exterior.
Embora tivesse alguns anos de experiência, os quais considero pouco, me sentia despreparado para o mercado internacional e por isso, iniciei algumas ações que me ajudariam a conseguir a tão sonhada realocação. Compartilho aqui de forma resumida, 4 coisas que me ajudaram nesse processo:
1. Certificações
Inicialmente decidi adquirir certificações java, para mim, essa era uma forma de provar que eu possuía conhecimentos suficientes com a linguagem que decidi trabalhar. Estudar para certificações me fez aprender mais profundamente sobre Java e suas principais APIs, e esse é o principal objetivo alcançado. Não quero dizer que certificações são obrigatórias, mas o conhecimento mais aprofundado sobre a linguagem que trabalhamos é sim obrigatório, o qual pode ser adquirido de outras formas logicamente. O importante é dedicarmos um tempo para aprendermos o máximo possível o stack com o qual trabalhamos.
2. Inglês
Não é necessário comentar que emigrar para outro país, torna o inglês obrigatório. No meu caso, foi um diferencial, já que vim para Portugal. No entanto, a quantidade de projetos nearshore e de empresas de outros países em Portugal, faz com que a língua inglesa seja considerada obrigatória para vários processos de recrutamento. Por isso, dediquei praticamente dois anos de estudos online e um mini intercâmbio para que me sentisse confortável o suficiente com outro idioma.
Além disso, na área de tecnologia, o fato de não saber inglês nos coloca em posição desfavorável, pois os melhores livros e documentações são lançadas em inglês e depois traduzidas pelas comunidades. Saber inglês, pode te colocar em contato direto com a fonte. Quando estudei para certificações java por exemplo, não havia livros em português e a prova de certificação também não era traduzida. Por isso, considero obrigatório ter ao menos um bom nível de leitura em inglês, mesmo que não esteja nos seus planos morar em outro país.
3. Side Projects e Voluntariado
As empresas buscam profissionais com experiência validada, o que chamam de real world experience. Mas como podemos adquirir experiência de forma rápida? Bem, a área de TI é uma das áreas mais democráticas de trabalho. Não é necessário um grande investimento para começar, podemos comprar um bom equipamento para trabalhar, podemos começar de casa, até mesmo podemos criar um novo projeto e usá-lo como meio para adquirir mais experiência.
Com isso em mente, procurei um projeto internacional no qual pudesse me juntar e contribuir como voluntário, assim poderia pôr em prática o inglês e comprovar para os recrutadores que eu já estava habituado a trabalhar com outro idioma e projetos internacionais.
Seguindo a recomendação de um amigo de trabalho, me cadastrei no site Volunteer Match, e encontrei um projeto para contribuir como voluntário, o qual faço parte ainda hoje mesmo já estando em outro país. O projeto em questão é o 8billionminds, um projeto que promove o compartilhamento de conhecimento gratuito.
Com esse projeto, tenho a oportunidade de discutir temas como arquitetura e evolução do sistema com outros devs de várias partes do mundo, pratico inglês gratuitamente e aumento meu networking. Isso é fantástico, você não precisa sair de casa ou fazer muito para conseguir uma experiência validada. Publique seu código no github, crie projetos open sources, mesmo que não haja contribuições no início. Ter um projeto para se dedicar, também é uma ótima maneira de aprender outras tecnologias.
4. Estudo contínuo
Se temos que focar em aprender algo bem, devemos focar em aprender o básico. Ter uma base sólida, traz grandes vantagens ao aprender coisas mais complexas. Na minha opinião, devemos focar um tempo considerável em aprender mais profundamente sobre uma linguagem ao invés de frameworks, pois frameworks nascem e morrem e quando você tiver que mudar para um novo, a sua curva de aprendizado será menor caso domine muito bem os conceitos básicos. Por exemplo, trabalhem certo tempo com Java EE, e quando decidi mudar para Spring não senti dificuldades, principalmente porque tinha acumulado um conhecimento mais sólido por conta das certificações.
Conteúdos como algoritmos, orientação a objetos, clean code, TDD são tópicos que transcendem linguagem de programação. Se você trabalha com uma linguagem orientada a objetos, aprender bem o design OO é fundamental, talvez até mais importante que a própria linguagem.
Roadmap Desenvolvimento de Software
Temos muito o que aprender e por isso, acredito que esse é o tópico mais importante. Acesse o site abaixo e veja quantas tecnologias permeiam o desenvolvimento de software. Muitos desses conhecimentos, só virão com a experiência e a prática, então não se desespere por não saber tudo, você nunca saberá 😀
Estudar continuamente faz parte do trabalho, por isso, enquanto profissionais de TI, devemos encontrar tempo para reciclar os conhecimentos já adquiridos e adquirir novos. Um bom profissional está sempre a aprender.