entrevista ao engenheiro de software do Facebook: o único post que você precisa ler

Prática 1-em-1 com ex-entrevistadores do Facebook. Aprender.

as entrevistas de codificação no Facebook são realmente desafiadoras. As perguntas são difíceis, específicas do Facebook, e cobrem uma ampla gama de tópicos.

a boa notícia é que a preparação certa pode fazer uma grande diferença, e pode ajudá-lo a conseguir um emprego de Engenheiro de Software no Facebook. Nós montamos o guia final para ajudá-lo a maximizar suas chances de sucesso.

Aqui está uma visão geral do que vamos cobrir:

  • Processo e cronograma
  • Exemplo de perguntas
    • Codificação de entrevista
    • projeto do Sistema de entrevista
    • Comportamental entrevista
  • dicas de Preparação

1. Processo de entrevista e linha do tempo

1.1 que entrevistas esperar

o que é o processo de entrevista de engenharia de software do Facebook e linha do tempo? Demora quatro a oito semanas em média e segue estas etapas:

  1. Currículo, carta de apresentação e referências
  2. Recrutador tela do telefone: uma entrevista
  3. Técnico de tela do telefone: uma ou duas entrevistas
  4. Local: de quatro a seis entrevistas

Vamos olhar cada uma dessas etapas em mais detalhes abaixo:

1.1.1 Recrutador tela do telefone

Na maioria dos casos, você vai iniciar o processo de entrevista com o Facebook, falando a um recrutador de RH no telefone. Eles estão olhando para confirmar que você tem uma chance de conseguir o emprego em tudo, então esteja preparado para explicar o seu passado e por que você é um bom ajuste no Facebook. Você deve esperar típico comportamental e retomar perguntas como, “Fale-me sobre si mesmo”, “porquê Facebook?”, ou ” conte – me sobre o seu dia-a-dia como um desenvolvedor.”

se passar por esta primeira tela de RH, o recrutador irá então ajudar a agendar suas primeiras telas técnicas com um engenheiro do Facebook. Uma grande coisa no Facebook é que eles são muito transparentes sobre o seu processo de recrutamento. Seu contato HR irá, portanto, acompanhá-lo através das etapas restantes no processo de contratação, e também irá compartilhar com você um e-mail útil listando recursos que você pode usar para preparar.

1.1.2 tela técnica de telefone

você vai passar por uma ou duas telas técnicas iniciais 45mins que geralmente acontecem por telefone. Seus entrevistadores vão começar com algumas questões comportamentais, mas a maior parte do tempo será gasto em questões de codificação típicas (por exemplo, estruturas de dados, algoritmos, etc.)

você vai usar um editor de código online simples sem realce de sintaxe ou auto-completação para estas entrevistas telefônicas (por exemplo, CoderPad) e é uma boa idéia se acostumar a usar um deles de antemão.

finalmente, se você vive perto de um escritório no Facebook e está realmente motivado para se juntar à empresa, você pode pedir para vir no local para as telas iniciais. O seu recrutador normalmente terá todo o gosto em organizar isto para si, uma vez que é uma experiência melhor para si e para os seus entrevistadores.As entrevistas no local são o verdadeiro teste. Você normalmente vai passar um dia inteiro em um escritório no Facebook e fazer quatro a seis entrevistas no total. Cada entrevista durará cerca de 45 minutos e cobrirá um dos seguintes tópicos::

  1. entrevista de codificação, onde você vai resolver questões de codificação geral que normalmente será mais difícil do que na tela técnica inicial.
  2. entrevista de Design, onde lhe será feita uma pergunta de design de sistema ou produto, dependendo do seu passado.Entrevista comportamental, onde você pode esperar perguntas sobre seu passado, realizações e motivação para trabalhar no Facebook.

você normalmente terá três entrevistas de codificação, uma entrevista de design e uma entrevista comportamental. Mas como vamos discutir na próxima seção, a repartição exata vai variar dependendo do papel, equipe e nível para o qual você está se candidatando.

além destas entrevistas, Você também almoçará com um colega engenheiro enquanto estiver no local. A entrevista para o almoço deve ser a sua hora de fazer perguntas sobre como é trabalhar no Facebook. A empresa não vai avaliá-lo durante este tempo, mas recomendamos que se comporte como se fossem.

1.2 diferenças entre níveis e papéis

o processo que descrevemos acima irá variar ligeiramente dependendo do nível e do papel que você está entrevistando para. Aqui estão algumas das diferenças mais comuns que você deve esperar.

1.2.1 Junior vs engenheiros seniores de software

as expectativas para engenheiros seniores e seniores são diferentes.

se você é um engenheiro de nível de entrada / júnior, você será esperado para fazer muito bem em suas entrevistas de codificação. Mas normalmente você só terá uma única entrevista de design de sistema onde a barra de desempenho será menor do que para mais candidatos seniores.

se você é um engenheiro sênior, então ambos terão que fazer muito bem em codificações e entrevistas de design de Sistema. Você também pode ter duas entrevistas de design do sistema em vez de uma em certas situações (por exemplo, você está se candidatando para a equipe de infraestrutura).

1.2.2 colaboradores individuais vs gestores

o Facebook tem duas carreiras. Você pode se tornar um gerente onde você acaba liderando equipes de engenheiros (pista de gerenciamento). Ou você pode ficar muito prático tecnicamente e se especializar à medida que você se torna mais sênior (faixa de contribuinte individual).

se você está entrevistando como um colaborador individual, então você deve esperar principalmente entrevistas técnicas e normalmente terá apenas uma única entrevista comportamental.

se você está entrevistando como gerente, diretor, ou acima, então você deve esperar pelo menos duas entrevistas comportamentais. Esteja preparado para responder a perguntas sobre como você desenvolve as pessoas, trabalha com equipes cross-functional, executa em projetos, cresce uma organização, etc.

1.3 O Que Acontece Nos bastidores

o seu recrutador está a liderar o processo e a levá-lo de uma fase para a outra. Aqui está o que acontece nos bastidores em cada uma das etapas descritas acima:

  • após a tela técnica do telefone, os entrevistadores com quem você falou têm 24h para enviar suas audiências e notas para o sistema interno. Seu recrutador, em seguida, analisa o feedback, e decide movê-lo para a entrevista no local ou não, dependendo de quão bem você fez.
  • após o local, os quatro a seis entrevistadores farão uma recomendação sobre a sua contratação ou não e o recrutador compila o seu “pacote” (feedback da entrevista, currículo, referências, etc.) Se eles pensam que você pode obter o emprego, eles vão apresentar o seu caso na próxima reunião de avaliação do candidato.
  • as reuniões de Avaliação de candidatos são utilizadas para avaliar todos os candidatos que terminaram recentemente os seus loops de entrevista e estão perto de receber uma oferta. Seu pacote será analisado e possíveis preocupações serão discutidas. Os seus entrevistadores são convidados a juntar-se à sua reunião de avaliação de candidatos, mas normalmente só comparecerão se houver um forte desacordo nas notas que recebeu (por exemplo, 2 não contratações, 2 contratações). Se após as discussões a equipe ainda não pode concordar se você deve receber uma oferta ou não, você pode ser convidado a fazer uma entrevista de acompanhamento para resolver o debate. No final da reunião de avaliação do candidato, uma recomendação de contratação / não contratação é feita para consideração pelo Comitê de contratação.
  • o Comitê de contratação inclui líderes seniores de todo o Facebook. Esta etapa é geralmente uma formalidade e o Comitê segue a recomendação da reunião de avaliação do candidato. O foco principal é em ajustar o nível exato e, portanto, a compensação que você será oferecido.

também é importante notar que a contratação de gestores e pessoas que se referem a você têm pouca influência no processo global. Eles podem ajudar – te a conseguir uma entrevista no início, mas é só isso.

2. Perguntas de exemplo

aqui em IGotAnOffer, acreditamos na preparação de entrevistas motivadas por dados e temos usado dados de Glassdoor para identificar os tipos de perguntas que são mais frequentes no Facebook.

para entrevistas de codificação, dividimos as perguntas que lhe serão colocadas em subcategorias (por exemplo, Arrays / Strings, grafos / árvores, etc.), para que você possa priorizar os mais freqüentes em sua preparação. Para questões de design de sistema e comportamento, listamos 10 questões de exemplo que foram frequentemente relatadas em Glassdoor.

2.1 entrevista de codificação

perguntas de entrevista de engenheiro de software do Facebook

engenheiros de software do Facebook resolvem alguns dos problemas mais difíceis que a empresa enfrenta com o código. É, portanto, essencial que eles tenham fortes habilidades de resolução de problemas. Esta é a parte da entrevista onde você quer mostrar que você pensa de uma forma estruturada e escrever um código que é preciso, livre de bugs e rápido.

Aqui estão os tipos de perguntas mais comuns feitas em entrevistas de codificação no Facebook e sua frequência. Por favor, note que a lista abaixo exclui o design do sistema e questões comportamentais que cobrimos nas próximas seções.

  1. Matrizes de Seqüências de caracteres / (38% das perguntas mais freqüentes)
  2. Gráficos / Árvores (29%)
  3. Programação Dinâmica (18%)
  4. Pesquisa / Classificar (9%)
  5. listas Ligadas (4%)
  6. Pilhas / Filas (2%, menos frequentes)

Também listamos exemplos comuns usados no Facebook para estes diferentes tipos de perguntas abaixo. Para tornar estas questões mais fáceis de estudar, modificamos a fraseologia para corresponder ao problema mais próximo no Leetcode ou outro recurso, e estamos ligados a uma solução livre.Por fim, recomendamos a leitura do seguinte artigo escrito por um ex-entrevistador do Facebook para entender mais sobre a abordagem passo-a-passo que você deve usar para resolver questões de codificação.

exemplos de perguntas de codificação feitas pelo Facebook

1. Matrizes de Seqüências de caracteres / (38% das perguntas mais freqüentes)

  • “Dado um array nums de n números inteiros, onde n > 1, retornar um array output tais que output é igual ao produto de todos os elementos de nums except nums.”(Solução)
  • ” dado um texto não vazio s, poderá apagar no máximo um carácter. Julgue se pode torná-lo um palíndromo.”(Solução)
  • ” Implement next permutation, que rearranja números para a próxima maior permutação de números lexicograficamente.”(Solution)
  • ” Given a string s and a string T, find the minimum window in S which will contain all the characters in T in complexity O (n).”(Solution)
  • ” Given an array of STRs, group the anagrams together.”(Solução)
  • ” dado um texto S contendo apenas os caracteres ‘(‘, ‘)’, ‘{‘, ‘}’, “, determinar se o texto de entrada é válido.”(Solution)
  • ” Given an array nums of n integers, are there elements A, b, c in nums such that a + b + c = 0? Encontre todos os trigêmeos únicos no array que dá a soma de zero.”(Solução)

2. Gráficos / árvores (29%)

  • “dado o nó root de uma árvore de busca binária, retorne a soma de valores de todos os nós com valor entre L e R (inclusive).”(Solution)
  • ” Given a Binary Tree, convert it to a Circular Doubly Linked List (In-Place).”(Solução)
  • ” Implemente um iterador sobre uma árvore de busca binária (BST). O seu iterador será inicializado com o nó raiz de um BST.”(Solução)
  • “Dada uma árvore binária, você precisa calcular o comprimento do diâmetro da árvore.”(Solution)
  • ” Serialize and deserialize a binary tree”(Solution)
  • ” Given a binary tree, find the maximum path sum.”(Solution)
  • ” Given a tried dictionary (array of words) of an alien language, find order of characters in the language.”(Solução)
  • “verificar se um dado grafo é bipartido ou Não” (solução)

3. Programação dinâmica (18%)

  • “Dada uma lista de números não-negativo e um destino inteiro k, escrever uma função para verificar se a matriz tiver uma contínua subarray de tamanho pelo menos 2 que soma até o múltiplo de k, isto é, resume a n*k, onde n também é um número inteiro.”(Solução)
  • “digamos que você tem um array para o qual o ith elemento é o preço de um dado estoque no dia I. Se você só foi autorizado a completar no máximo uma transação (ou seja, comprar um e vender uma ação do estoque), crie um algoritmo para encontrar o máximo lucro. “(Solução)

  • “dada uma cadeia de entrada (s) e um padrão (p), implementar a correspondência de expressão regular com suporte para '.' e '*'.”(Solution)
  • ” You are given a list of non-negative integers, a1, a2, …, an, and a target, S. now you have 2 symbols + and -. Para cada inteiro, você deve escolher um de + e - como seu novo símbolo. Descubra quantas maneiras de atribuir símbolos para fazer a soma dos inteiros igual ao alvo S. ” (solução)

4. Procurar / Ordenar (9%)

  • “temos uma lista de points no avião. Encontre os pontos mais próximos da origem K.”(Solution)
  • ” Given two arrays, write a function to compute their intersection.”(Solution)
  • ” Given an array of meeting time intervalos consisting of start and end times,,,…] encontre o número mínimo de salas de conferência necessárias.”(Solução)

5. Listas ligadas(4%)

  • “uma lista vinculada é dada de tal forma que cada nó contém um ponteiro Aleatório adicional que poderia apontar para qualquer nó na lista ou nulo. Devolve uma cópia profunda da lista.”(Solution)
  • ” Given a single linked list L: L0?L1?…?In-1?L0?Em?L1?In-1?L2?In-2?… “(Solução)

6. Pilhas / filas (2%)

  • “implementar as seguintes operações de uma fila usando pilhas.”Nota: veja mais detalhes no seguinte link. (Solução)

2.2 Facebook, Instagram e Whatsapp todos têm 1bn + usuários ativos mensais. Engenheiros do Facebook, portanto, precisam ser capazes de projetar sistemas que são altamente escaláveis. As questões de codificação que abordamos acima geralmente têm uma única solução óptima. Mas as questões de design do sistema que você será perguntado são tipicamente mais abertas e se sentem mais como uma discussão.

Esta é a parte da entrevista onde você quer mostrar que você pode ser criativo e estruturado ao mesmo tempo. Na maioria dos casos, o entrevistador adaptará a pergunta ao seu passado. Por exemplo, se você trabalhou em um produto API eles lhe pedirão para projetar uma API. Mas isso nem sempre será o caso, então você deve estar pronto para projetar qualquer tipo de produto ou sistema em um alto nível.

como mencionado anteriormente, se você é um desenvolvedor júnior, as expectativas serão menores para você do que se você é de nível médio ou sénior. Além disso, para determinadas funções (por exemplo, infra-estruturas, segurança, etc.).) você provavelmente terá várias entrevistas de design do sistema em vez de apenas uma.

Aqui estão as questões mais comuns de design do sistema feitas nos relatórios de entrevistas do Facebook que podem ser encontrados em Glassdoor. Para mais informações, recomendamos ler o seguinte guia sobre como responder a questões de design do sistema, e praticar questões de design do sistema neste curso.

Top 10 de projeto de sistema de perguntas no Facebook

  • Como você projetaria Instagram / Instagram Histórias
  • Como você projetaria Facebook
  • Como você projetaria Facebook Messenger
  • Como você projetaria Facebook live update de comentários sobre posts
  • Como você projetaria um colaborativa on-line editor (por exemplo, Google Docs)
  • Como você projetaria um typehead recurso (e.g. Pesquisa do Google autocompletar)
  • Como você o design do Twitter, os trending topics
  • Como você projetaria uma distribuído Botnet
  • Como seria a criação de um sistema que possa lidar com milhões de transações de cartões por hora
  • Como você concepção de segurança para o Facebook da rede corporativa a partir do zero (equipe de Segurança da entrevista)

2.3 Comportamental entrevista

Facebook engenheiros geralmente trabalham em equipes multifuncionais com outros engenheiros, gerentes de produto, designers, analistas de dados, etc. Eles precisam ser capazes de se comunicar claramente, trabalhar com os outros de forma eficiente, construir confiança e relacionamentos, etc.

esta é a parte da entrevista onde você realmente quer mostrar que você é bom em trabalhar com outros. Como mencionamos anteriormente, se você está se candidatando a um cargo de gerente ou acima, então você terá várias entrevistas comportamentais e também cobrir temas como equipes líderes, desenvolver talento, gerenciar o dia-a-dia, etc.

abaixo listamos dez frequentes perguntas comportamentais que o Facebook tende a fazer, de acordo com dados de Glassdoor. Para mais informações, confira nossos artigos sobre como responder a perguntas de entrevistas comportamentais e o ” porquê Facebook?” pergunta.

Top 10 perguntas comportamentais feitas no Facebook

  • fale-me sobre si
  • Por Que Facebook?Fale – me sobre um tempo em que lutou para trabalhar com um dos seus colegas. fale-me sobre um tempo em que teve de resolver um conflito numa equipa. fale – me sobre o tempo em que lutou num dos seus projectos de software. por que eles eram maus

3. Como preparar

agora que você sabe que perguntas esperar, vamos nos concentrar em como preparar. Não é segredo que a barra de desempenho no Facebook é alta. Algumas pessoas chegam mesmo a desistir de seu trabalho para se preparar para entrevistas a tempo inteiro.

isto é obviamente extremo e não o que recomendamos fazer, mas mostra quanto esforço alguns candidatos estão prontos para colocar. Listamos os quatro passos que recomendamos para preparar o mais eficientemente possível abaixo.

3.1 Aprender sobre a cultura do Facebook

a maioria dos candidatos não fazem isso. Mas antes de investir dezenas de horas preparando-se para uma entrevista no Facebook, você deve ter algum tempo para se certificar de que é realmente a empresa certa para você.

o Facebook é prestigioso e, portanto, é tentador ignorar esse passo completamente. Mas na nossa experiência, o prestígio em si não o fará feliz dia-a-dia. É o tipo de trabalho e as pessoas com quem trabalhas.Se você conhece engenheiros que trabalham no Facebook ou costumavam trabalhar lá, é uma boa idéia falar com eles para entender como é a cultura. Além disso, recomendamos ler sobre os 5 valores fundamentais do Facebook e cultura hacker.

3.2 prática por si mesmo

como mencionado acima, você terá três tipos de entrevistas no Facebook: codificação, design do sistema e comportamental. O primeiro passo da sua preparação deve ser o de aperfeiçoar estes diferentes tipos de perguntas e praticar responder-lhes por si mesmo.

para entrevistas de codificação, recomendamos a leitura do seguinte artigo escrito por um ex-entrevistador do Facebook para entender mais sobre a abordagem passo-a-passo que você deve usar para resolver questões de codificação em uma entrevista.

e para praticar, recomendamos o uso do Leetcode onde você pode fazer muito com o nível livre, e também acessar perguntas específicas do Facebook usando o nível Premium.

para entrevistas de concepção de sistemas, recomendamos o estudo do nosso guia de entrevistas de concepção de sistemas. O guia abrange um método passo-a-passo para responder a questões de concepção do sistema, e fornece vários exemplos de perguntas com soluções.

para entrevistas comportamentais, recomendamos aprender o nosso método passo a passo para responder a este tipo de pergunta. Além disso, você vai querer escrever suas respostas para as questões de comportamento comum que listamos na seção anterior.

finalmente, uma ótima maneira de praticar codificação, design de sistema e questões comportamentais, é entrevistar-se em voz alta. Isto pode parecer estranho, mas irá melhorar significativamente a forma como comunica as suas respostas durante uma entrevista e realmente faz a diferença na nossa experiência. Desempenhar o papel tanto do candidato como do entrevistador, fazendo perguntas E respondendo-lhes, assim como duas pessoas fariam em uma entrevista.

3.3 A prática com colegas

praticando por si mesmo só o levará até certo ponto. Um dos principais desafios das entrevistas de codificação é ter que comunicar o que você está fazendo como você está fazendo. Como resultado, recomendamos vivamente a prática de entrevistas de codificação ao vivo com um colega entrevistando você.

um ótimo lugar para começar é praticar com amigos, se possível. Se você não tem ninguém em sua rede que pode entrevistá-lo, então você também pode encontrar pares para praticar em plataformas como o Pramp.

3.4 prática com ex-entrevistadores

o principal benefício de praticar com colegas é que é livre. Mas em algum momento você vai começar a notar que o feedback que você está recebendo de colegas não está ajudando muito mais. Uma vez que você chegar a essa fase, recomendamos praticar com ex-entrevistadores de empresas de alta tecnologia.Se você conhece um engenheiro de Software que tem experiência em fazer entrevistas no Facebook ou outra grande empresa de tecnologia, então isso é fantástico. Mas para a maioria de nós, é difícil encontrar as ligações certas para fazer isto acontecer. E também pode ser difícil praticar várias horas com essa pessoa a não ser que a conheças muito bem.Aqui estão as boas notícias. Já fizemos as ligações para ti. Criamos um serviço de coaching onde você pode praticar 1-em-1 com ex-entrevistadores de empresas líderes de tecnologia como o Facebook. Saiba mais e inicie as sessões de agendamento hoje.

alguma pergunta sobre entrevistas de engenheiros de software do Facebook?

Deixe uma resposta

O seu endereço de email não será publicado.