Esse artigo é para você que tem interesse em se preparar para o emprego dos seus sonhos. Mentira, isso pareceu muito com a introdução de um artigo sensacionalista no Medium! rsrs
Há muito tempo queria escrever sobre como o ano 2018 e parte do 2019 foi um dos anos mais loucos da minha vida. Um ano em que, de um dia para o outro, minha vida como Desenvolvedor de Software mudou.
O Começo: Uma empresa de e-commerce muito grande
Encontro-me em junho de 2018, não lembro exatamente o dia. Somente sei que recebi um e-mail através do LinkedIn. Era uma pessoa do time de recrutamento da Amazon, cuja intenção era me convidar para participar em um processo de seleção para uma vaga na Amazon em São Paulo. Eu fiquei pálido! Não acreditava que meu perfil enquadrava em uma das vagas de uma das empresas que mais admiro no mundo. Eu trabalho todos os dias com os serviços da Amazon, e trabalhar para eles não estava nem dentro dos meus mais remotos planos.
Nessa época estava trabalhando muito e acabou que não consegui me preparar muito. Marquei a entrevista telefónica, que consiste em um desafio para resolver algoritmos em alguma plataforma online, tipo HackerRank ou Codility. Eles têm a própria plataforma de teste.
Esse tipo de plataformas possui milhares de problemas de programação baseados em lógica, matemática e estruturas de dados. Para minha supressa, consegui resolver todos os problemas e consegui ir para a próxima fase, que seria uma entrevista on-site (Entrevista física dentro do escritório da empresa). Não lembro bem se teve alguma outra entrevista no meio, que normalmente eles chamam de screening process, onde normalmente tem um bate papo para conhecer mais sobre você, sua experiência e ver se realmente se encaixa em alguma das vagas que estão abertas.
Assim como mencionei acima, eu estava em um período de muito serviço e não consegui parar para estudar para a entrevista física. Essa fase consiste em múltiplas entrevistas, onde vários funcionários da empresa te entrevistam e são em total umas 5 entrevistas. Pois bem, eu cheguei no escritório da Amazon supermotivado, mas infelizmente o meu desempenho nas entrevistas foi bem ruim. Cobra-se muito o conhecimento em estruturas de dados e algoritmos, e finalmente tem uma entrevista de system design (design de sistemas e arquitetura). Nessa última eu fui muito bem, porque uma das minhas tarefas hoje como líder do time, é pensar na arquitetura do sistema e já estou acostumado com esse tipo de tarefas. Eu saí de lá arrasado pelo cansaço e porque sabia que não tinha ido muito bem.
Embora tenha sido um resultado negativo, esse dia mudou minha carreira, pois fiquei muito motivado para aprender aquilo que eu não sabia. Eu já tinha passado por um processo de seleção na Toptal, onde também falhei por causa do mesmo motivo.
Esse é um tema bastante polêmico, e já tive conversas infinitas com meus colegas sobre se as empresas deveriam aplicar este tipo de provas para determinar se um candidato é apto ou não. Pois bem, esse dia decidi tomar vergonha na cara e começar a estudar tudo que eu não sabia. Eu estava muito curioso e queria muito aprender a resolver esse tipo de problemas. Virou um desafio pessoal.
Depois da tormenta, vem a calma
Uma das coisas mais interessantes desse primeiro processo de seleção não foi só o aprendizado de vida e a motivação que me deu para estudar sobre temas que não conhecia até então. Mas, as pessoas que conheci nesse processo seletivo foi o mais incrível da história! Conheci pessoas do Brasil inteiro que se prepararam MUITO para essa entrevista, e até hoje mantenho contato com vários deles. Isso é incrível! Somente com um dia, consegui estabelecer conexões que tenho certeza que levarei para vida toda!
Segunda tentativa: Um buscador muito famoso
O processo na Amazon levou alguns meses até a última entrevista, e algumas semanas depois de voltar de São Paulo, recebi uma mensagem de uma das pessoas que conheci lá. Fiquei mais surpreso ainda!
Acontece que, eu moro em Belo Horizonte e a Google estava abrindo muitas vagas. Essa pessoa me perguntou se eu gostaria de ser indicado, pois ela tinha entrado na Google recentemente e poderia indicar algumas pessoas para o processo seletivo. Foi com muito medo que aceitei, mas aceitei o desafio, e dessa vez não iria cometer os mesmos erros que cometi na Amazon.
Da mesma maneira, tive uma entrevista de código através de telefone, onde você compartilha a tela e a outra pessoa está olhando o que você escreve. Consegui resolver o problema e acertei a complexidade assintótica do meu algoritmo. #NãoFoiChute rsrs. Após essa fase, me pediram para marcar a entrevista on-site, e eu poderia escolher o tempo que gostaria de ter para me preparar para essa entrevista, pois todo mundo sabe que é dificílima. Marquei para dois meses depois.
Comecei os meus estudos sobre estruturas de dados e algoritmos. Criei uma planilha de estudos, contendo temas que gostaria de aprender e achava que eram fundamentais, e fui abordando um por um. Achei cursos muito interessantes, mas recebemos algumas dicas de ex-googlers e dicas na internet. Por fim, eu escolhi só uma fonte: LeetCode.
Existem milhares de cursos, tutoriais, livros, etc. com conteúdo para aprender sobre estruturas de dados e algoritmos. Mas, eu acredito que não funciona bem se você começa a estudar em vários lugares. (Minha opinião!). Preferi me focar em poucos!
Assisti também um curso da MIT cujo acesso é gratuito. Esse curso me ensinou muito, e consegui aprender bastantes tópicos avançados. Quem tiver interesse, pode encontrar ele aqui.
Finalizei esse curso, implementei todas as estruturas de dados em Javascript, decorei as complexidades algorítmicas de cada um, fiz centenas de exercícios, e só pensava em código, grafos, listas, pilhas, etc.
Foram quase dois meses estudando fortemente, e eu acreditava que já estava bem preparado, mas claro, a gente nunca está preparado 100%. Mas como eu me sentia confiante, estava pronto para a entrevista em dezembro.
Cheguei no escritório da Google extremamente assustado. Aquele escritório realmente deixa você intimidado! Começamos as entrevistas e de cara quando o entrevistador me passava o problema, eu já tinha uma ideia de como resolver. Fui bem! Bom, eu acho que eu fui bem, consegui resolver todos os problemas e eu saí bastante satisfeito da entrevista porque tinha sido um resultado bem melhor que na entrevista da Amazon, e minha sensação foi de dever cumprido. Infelizmente, recebi uma ligação uma semana depois me informando que não tinha passado.
Terceira tentativa: Uma fruta muito saborosa
Eu estava satisfeito, mas muito cansado. Achava que eu merecia ter passado na Google, mas enfim! Sabe aquela sensação de "Está faltando alguma coisa"? Eu fiz uma retrospectiva, e cheguei à conclusão que o meu primeiro objetivo tinha sido cumprido. Aqueles problemas esquisitos, eu já sabia resolver, ou pelo menos tinha uma ideia boa da estrutura que deveria ser utilizada e isso me deixou bem feliz.
Um belo dia, recebi outra mensagem de outra pessoa que conheci no processo seletivo da Amazon. E agora, era para participar em um processo seletivo na empresa mais rica do mundo! Na fruta da branca de neves, só que branca. E assim como você poderá imaginar, aceitei imediatamente. O processo seletivo foi um pouco diferente, e não posso comentar detalhes muito exatos por conta da confidencialidade.
Encontro-me em janeiro de 2019, 6 meses depois do primeiro contato de uma empresa TOP 5. Eu estava transformado internamente, cheio de aprendizados, novas conexões e uma sensação inexplicável. Recebi uma ligação me informando que eu tinha sido selecionado para a vaga e me deram os parabéns. Sinceramente, eu não acreditava. Estava tomando um café no Verdemar (Supermercado em Belo Horizonte) com minha esposa e eu olhei para ela e lhe disse: Finalmente, eu consegui!
Um dos maiores aprendizados desse processo todo é que muitas vezes você não encontra a empresa dos seus sonhos, mas a empresa encontra você. Além disso, me disseram que eu era o melhor candidato que tinham visto em muito tempo. Esse dia foi para chorar de alegria mesmo!
Depois de 7 meses em processo de seleção com quase tudo pronto, quase um ano depois de ter recebido aquela primeira mensagem da Amazon, rejeitei a oferta da maior empresa do mundo, por motivos pessoais. Foi triste, mas foi ano mais LOUCO da minha vida, e isso me mudou completamente.
5 Aprendizados
Quero deixar vários aprendizados para você que quer começar uma empreitada parecida ou para você que quer um emprego novo também, independentemente do tamanho da empresa.
- Busque uma empresa com seu perfil. Empresas como Amazon, Google, Microsoft, entre outras. tem processos de seleção bastante complicados. Focam-se muito em estruturas de dados, algoritmos, programação orientada a objetos, design de sistemas, arquitetura, escalabilidade e por fim, claro, suas skills interpessoais mesmo. A pergunta que você deve se fazer é:
O perfil da empresa está de acordo com meu perfil? Eu quero trabalhar com esse tipo de produtos?
Não necessariamente na Google se muda o mundo. Você, desde sua posição atual pode mudar o mundo ao seu redor. Você pode impactar positivamente a vida de muitos, aqueles perto de você. Pesquise muito sobre cultura, projetos, desafios, etc. Não tudo se resume a dinheiro. Trabalhar em um lugar onde você e sua família não seriam felizes, não faz sentido.
- Em todas as provas de código, aprenda a comunicar em voz alta as suas ideias. Prepare-se escrevendo código em um quadro branco mesmo, sem os aliados (auto complete) do IDE ou editor de texto. Conheça as particularidades da sua linguagem de programação. Conheça as coisas boas e ruins, os limites, overflow de tipos, as estruturas de dados que já vem com a linguagem.
Por exemplo: Normalmente você não poderá fazer a prova on-site em Javascript. Javascript é uma linguagem que não tem estruturas de dados como pilhas, arvores ou stacks. Tem jeito de você implementar elas, sim, mas você não pode perder tempo com isso nas entrevistas. Eu escolhi Java na época, mas hoje eu escolheria Python.
Escolha uma linguagem que você domina. As vezes a gente comete erros bobos devido à tensão da entrevista, então escolha aquela linguagem onde você sabe o caminho das pedras.
-
A minha opinião pessoal sobre o conhecimento de estruturas de dados e algoritmos é a seguinte: Realmente, você não vai usar essas estruturas em muitos empregos que você vai achar no mercado. Mas o conhecimento e o desafio de encarar esse tipo de problemas faz com que seu cérebro pense de outra maneira. Hoje eu sinto que melhorei muito como desenvolvedor. Penso sempre nos melhores casos, tenho mais habilidade para encontrar bugs em códigos complexos, presto atenção as funções das linguagens (funções built-in) e procuro sempre escrever código legível.
-
Não tenha medo de empresas grandes. Sente, estude, e tenha muita disciplina. O resto é consequência.
-
Networking meu amigo! Networking é tudo na vida. Seja gentil com os outros porque você não sabe quem será seu colega de trabalho amanhã. A gente não chega a lugar nenhum sozinho!
Onde me encontro hoje?
Hoje continuo liderando um time em uma empresa alemã. Cresci muito depois desses processos de seleção e sosseguei muito. Dei uma pausa para as entrevistas hehehe Cresci muito no meu emprego, e hoje levo comigo uma frase que me faz querer melhorar todo dia:
Onde você estiver, impacte positivamente às pessoas ao seu redor!
Se essas pessoas incríveis que me deram a oportunidade de participar nos processos de seleção citados acima estão lendo esse artigo, um beijo e um MUITO OBRIGADO. Vocês fizeram parte de uma mudança radical na minha vida.
Espero que não tenha sido muito chato ouvir essa história toda.
Abraços! :)