Artigo original: How to Get a Software Engineer Job at Google and Other Top Tech Companies

Escrito por: YK Sugi

Tradução realizada em português europeu.

Olá a todos!

Já falei sobre como eu, pessoalmente, consegui um emprego como engenheiro de software na Google em alguns vídeos no meu canal do YouTube sobre programação e ensino, chamado CS Dojo.

No entanto, muita gente ainda me faz perguntas sobre como obter um emprego na Google como engenheiro de software. Então, aqui está o meu artigo a explicar a estratégia que utilizaria.

Podes utilizar a mesma estratégia para obter um emprego como engenheiro de software não só na Google, mas também em empresas tecnológicas de topo como a Amazon, Microsoft e Facebook.

Neste artigo, vou mostrar o processo de 6 passos para conseguir um emprego numa destas empresas. Ao longo do caminho, também vou abordar:

  • Como aprender a programar
  • O que aprender depois de aprender a programar
  • Como obter o teu primeiro emprego ou estágio como programador
  • As melhores formas de concorrer a vagas de engenharia de software
  • Como te preparares melhor para entrevistas de programação
  • É importante obter uma licenciatura em ciências da computação?
  • É importante ir para uma universidade de topo?

Tudo bem, vamos começar!

Passo 1: Aprender a programar

Esta é a qualificação mínima que vais precisar para te tornares engenheiro(a) de software.

Para isto, eu recomendo que comeces por um site interativo, tal como o Codecademy e o freeCodeCamp. Podes aprender a maior parte dos fundamentos da programação a partir destes sites. Também ouvi que o SoloLearn é bom.

Depois disto, sugiro que utilizes vídeos de tutoriais para aprender tópicos mais avançados. Para isto, recomendo sites como YouTube, Pluralsight, Lynda.com e Udemy. Nestes sites, deves ser capaz de encontrar tutoriais sobre tópicos como:

  • Desenvolvimento para a web
  • Desenvolvimento para dispositivos móveis
  • Desenvolvimento de jogos

dependendo do teu interesse.

Que linguagem de programação devo aprender primeiro?

A minha resposta abreviada seria: escolhe JavaScript ou Python. Isso, porém depende mesmo dos teus interesses. Tenho uma resposta mais detalhada a essa questão neste vídeo (em inglês).

Passo 2: Trabalhar em alguns projetos pessoais

Após teres seguido alguns tutoriais de programação, deves criar alguns projetos pessoais para praticar o que aprendeste.

Para isso, deves encontrar algo que tenhas interesse em criar.

Por exemplo, se gostares de fotografia, podes talvez criar um site de portfólio para as tuas fotografias. Se gostares de negociar ações, podes talvez criar um sistema que analisa os gráficos das ações por ti. Se gostares de resolver problemas, podes tentar competir numa competição de programação.

Quando trabalhas num projeto, tenta primeiro criar o máximo possível por ti mesmo. Depois, se te deparares com um obstáculo, podes obter ajuda de outras pessoas ao utilizar recursos on-line ou off-line. Por exemplo, podes utilizar o Stack Overflow para fazer questões específicas e técnicas, no caso de ficares preso em algo relacionado com programação.

Passo 3: Conseguir o teu primeiro emprego ou estágio em programação

Assim que tiveres criado alguns projetos pessoais, deves ser capaz de obter o teu primeiro emprego ou estágio em programação. Com isto, vais ter alguma experiência antes de começares as entrevistas com as empresas tecnológicas de topo.

É possível obter o teu primeiro emprego logo numa das empresas de topo, mas é bem mais fácil e comum obter primeiro um emprego numa empresa menos conhecida.

As melhores formas de concorrer a vagas de emprego em engenharia de software

Concorrer simplesmente a vagas on-line não é necessariamente a melhor estratégia, porque é isso que praticamente toda a gente faz.

Em vez disso, recomendo que utilizes o LinkedIn e redes de contactos pessoais para obter o teu primeiro emprego em programação.

No LinkedIn, encontra primeiro recrutadores das empresas em que tens interesse em trabalhar. Depois, pergunta-lhes se tens qualificações para as vagas que tens interesse. Deves perguntar como te podes preparar melhor no caso de ainda não teres qualificações suficientes.

Para redes pessoais, recomendo sites como o Meetup para conhecer engenheiros e recrutadores em empresas locais.

Espera! Isso não é tudo.

Utilizar o LinkedIn e redes pessoais funciona bem se estiveres a concorrer para empresas de dimensões pequenas a médias. No entanto, descobri que estas estratégias são menos eficazes para empresas mais populares como a Google e a Facebook.

Para estas grandes empresas, em vez disso, recomendo combinar as três estratégias seguintes:

  1. Feiras de emprego e eventos de recrutamento em universidades perto de ti.
  2. Ser recomendado por amigos que trabalham nessas empresas.
  3. Simplesmente concorrer on-line.

Combinar todas estas estratégias ajudará a aumentar as hipóteses de conseguir uma entrevista numa destas empresas tecnológicas de topo.

Já agora, não tenho a certeza absoluta sobre qual é a razão para o LinkedIn ser menos eficaz com estas grandes empresas, mas penso que possa ser porque estas recebem muitas mensagens. Basicamente, são muito populares por lá. 😜

Passo 4: Aprender sobre estruturas de dados e algoritmos

Empresas tecnológicas de topo como a Google e a Microsoft fazem geralmente perguntas sobre estruturas de dados e algoritmos nas suas entrevistas. Então, deves aprender sobre esses tópicos caso ainda não o tenhas feito.

Para aprender os fundamentos, recomendo a minha série de vídeos (em inglês) sobre estruturas de dados e algoritmos. Está tudo no YouTube. Criei estes vídeos para tornar o mais fácil possível compreender estes tópicos.

Visto que existem apenas 7 vídeos nesta série, vais precisar de mais material para aprender sobre tópicos mais avançados.

Existem várias opções populares para isto, incluindo (em inglês):

Deves experimentar alguns destes e continuar com o que gostares mais.

Passo 5: Prepara-te para entrevistas de programação

Entrevistas de programação em empresas como a Google e a Microsoft são difíceis, mas é algo bastante direto de te preparares.

Assim que tiveres uma compreensão sólida sobre estruturas de dados e algoritmos, recomendo estes três recursos para praticares:

Depois de praticares por conta própria durante algumas semanas, deves começar a fazer entrevistas simuladas.

Como simular entrevistas

Basicamente, junta-te aos teus amigos e distribui problemas por todos a partir dos recursos que mencionei acima.

Depois, resolve cada problema em papel ou num Google doc. Explica a tua solução a um amigo teu.

Certifica-te de que praticas como entrevistador e como entrevistado, para que consigas ver como é estar no lugar do entrevistador.

Assim que tiveres feito mais ou menos 20 entrevistas simuladas, deves estar preparado para começar a fazer entrevistas nas empresas em que desejas trabalhar.

Passo 6: Concorrer, concorrer e concorrer novamente a vagas 🙂

Utiliza as três estratégias que mencionei acima para concorrer a vagas em empresas tecnológicas de topo:

  • eventos de recrutamento/feiras de emprego
  • ser recomendado por amigos
  • e concorrer on-line.

Se não conseguires o emprego à primeira, não te preocupes. De facto, deves estar à espera de alguns fracassos, visto que entrar nestas empresas é muito competitivo.

No meu caso, precisei de concorrer para a Google 5 vezes antes de conseguir obter lá o meu emprego como engenheiro de software (vídeo em inglês).

Já está! Aqui está um pequeno resumo:

  • Passo 1: Aprender a programar
  • Passo 2: Trabalhar em alguns projetos pessoais
  • Passo 3: Conseguir o teu primeiro emprego ou estágio em programação
  • Passo 4: Aprender estruturas de dados e algoritmos
  • Passo 5: Prepara-te para entrevistas de programação
  • Passo 6: Concorrer, concorrer e concorrer novamente a vagas 🙂

Espera. É mesmo assim tão simples?

Sim, é. Mesmo assim, é preciso muito tempo e dedicação para fazer todos os 6 passos.

Mais algumas observações:

Preciso de ter uma formação em ciências da computação?

A resposta mais curta é não. No entanto, ter uma licenciatura em ciências da computação ajuda muito. Se fizeres um programa de Ciências da computação sólido, resolverás grande parte dos passos 1, 2, 3 e 4 (aprender a programar, trabalhar em alguns projetos pessoais, conseguir o teu primeiro emprego ou estágio em programação, e aprender estruturas de dados e algoritmos).

Sem um licenciatura em Ciências da Computação, só terás de aprender mais por conta própria.

Além disso, tem em conta que, mesmo com uma licenciatura em Ciências da Computação, é preciso trabalhar muito para obter um emprego de engenheiro de software numa destas empresas.

Preciso de frequentar uma universidade de topo, como o MIT, Stanford, Carnegie Mellon etc.?

Novamente, a resposta mais curta é não. Provavelmente, ajuda um pouco, mas está longe de ser necessário.

Laszlo Bock, um antigo Vice-Presidente Sénior de Operações Pessoais na Google, também concorda.

De acordo com o livro que escreveu, Work Rules! (em inglês), a Google prefere alunos excelentes de faculdades menos conhecidas do que alunos medíocres de faculdades de topo como o MIT.

Penso que isto faça sentido porque, se fores inteligente e dedicado, não deve interessar muito qual foi a faculdade que frequentaste.

É necessário ter uma média escolar alta?

Novamente, a resposta curta é que não.

Ter uma média escolar alta, provavelmente, ajuda um pouco para obter uma entrevista, mas é muito mais importante ter uma experiência prática bastante sólida e projetos interessantes para mostrar no teu currículo.

De facto, de acordo com o livro Work Rules!, a Google antigamente tinha muito interesse na média escolar do candidato. No entanto, descobriram que ter uma média alta não está fortemente relacionado com ter um desempenho forte no local de trabalho, a longo prazo. Depois dessa descoberta, deixaram de dar um destaque tão grande à média escolar.

Então, o que preciso?

Basicamente, tudo o que precisas são habilidades fortes de programação e de resolução de problemas, uma boa compreensão dos princípios da ciência da computação e projetos interessantes e experiência para mostrar no teu currículo.

Serás capaz de fazer tudo isto se seguires os 6 passos que expliquei acima.

Então, como posso escrever um bom currículo?

Se desejares, podes aproveitar o currículo (em inglês) que eu utilizei para concorrer à Google.

Esse é mesmo o currículo que eu utilizei para obter um emprego na Google como engenheiro de software. Deveria ter mesmo só uma página. Por isso, diria que o meu currículo estava muito longo. Mesmo assim, estás à vontade para utilizá-lo como um ponto de partida.

Recursos adicionais para criar um currículo:

Bem, boa sorte, e obrigado por leres este artigo!

Se tiveres alguma questão, fica à vontade para falar com o autor pelo Instagram ou pelo Twitter.