Para saber mejor cuánto tiempo puedes esperar que dure el proceso de prácticas en Facebook, sería útil que supieras cómo es el proceso de entrevista. Ten en cuenta que el proceso de entrevista para las prácticas suele ser más sencillo que el de una entrevista para un puesto de trabajo a tiempo completo, pero no bajes la guardia.
El proceso de entrevista se puede dividir en dos partes, que son:
#1 PROCESO DE ENTREVISTA DE PRÁCTICAS EN FACEBOOK
Entrevista telefónica: Una vez que comiencen las entrevistas, normalmente se harán una o dos pantallas telefónicas como introducción al proceso de entrevistas. Las pantallas telefónicas serán técnicas y generalmente implican la codificación mediante el uso de un editor de documentos online.
Entrevista presencial: Una vez que haya pasado por su entrevista telefónica, será entrevistado por otros ingenieros de software y por los gerentes de contratación siempre que estén disponibles.
A cada entrevistador se le asigna un «rol» durante estas entrevistas in situ, lo que ayuda a garantizar que obtengan una imagen holística de usted y que no haya preguntas duplicadas. Estos roles son:
- Comportamiento («Jedi»): Esta entrevista sirve para determinar si encajas o no en la cultura de Facebook. Mi recomendación sería que estuvieras preparado para hablar sobre tu interés en Facebook, teniendo en cuenta que quieren que sus candidatos sean apasionados. Además, es posible que te hagan algunas preguntas de codificación en esta entrevista.
- Codificación y Algoritmos («Ninja»): Estas son tus preguntas estándar de DS&A, similares a las que encontrarías en la mayoría de las plataformas de jueces en línea al practicar tus habilidades de codificación. Estas preguntas están diseñadas para ser un reto, pero lo bueno es que puedes usar cualquier lenguaje de codificación que quieras para resolverlas.
- Diseño/Arquitectura («Pirata»): Esta entrevista no aparece tan a menudo, pero en caso de que te toque, aquí te harán preguntas de diseño de sistemas. Lo que recomiendo hacer aquí es discutir abiertamente diferentes soluciones y sus compensaciones con tu entrevistador.
Típicamente puedes esperar dos entrevistas «Ninja» y una entrevista «Jedi», y si tienes un excelente desempeño o eres un candidato experimentado, también obtendrás una entrevista «Pirata». Después de su entrevista, los entrevistadores envían sus comentarios por escrito antes de discutir su desempeño entre ellos – esto es principalmente para eliminar cualquier posibilidad de evaluaciones sesgadas.
Una vez que se envían los comentarios de todos, su equipo de entrevistadores y un gerente de contratación se reúnen para discutir la decisión final, y una vez que se llega a un consenso, se presenta una recomendación de contratación final al comité de contratación.
Necesitarás conocer tres temas principales para asegurarte de que superas el proceso de entrevista: estructuras de datos y algoritmos, diseño de sistemas y habilidades blandas como la comunicación, el trabajo en equipo y las habilidades de liderazgo.
#2 ESTRUCTURAS DE DATOS Y ALGORITMOS
Este tema suele recibir mucha atención por parte de los candidatos a las entrevistas debido a la infame dificultad de las preguntas de codificación de las grandes empresas tecnológicas. Algunos de los conceptos más importantes de DS&A que hay que conocer son los algoritmos del camino más corto, los algoritmos de búsqueda, BFS, DFS, la programación dinámica, los árboles de búsqueda binarios, las matrices y los algoritmos de ordenación, sólo por nombrar algunos.
Lo bueno es que hay un sinfín de recursos que puedes utilizar para aprender este tema. Uno que me viene a la mente es GeeksforGeeks, un portal en línea que actúa como una biblioteca de todas las cosas de la ciencia de la computación – ha escrito artículos y videos que puede utilizar para aprender la teoría de DS&A, y también tiene preguntas de codificación de práctica específica de la empresa también.
#3 DISEÑO DE SISTEMAS
El diseño de sistemas es un tema que varía en prioridad dependiendo de la empresa, pero responder a las preguntas relacionadas con el diseño por lo general conduce a mejores salarios y puestos de trabajo en el futuro. Los conceptos relevantes que hay que conocer para este tema serían redundancia y replicación, CDNs, sharding de bases de datos, balanceo de carga y caché, por nombrar algunos.
Al igual que el DS&A, hay un montón de maneras en las que puedes abordar el tema – una manera que se me ocurre es utilizando Tech Interview Pro, un programa de preparación para entrevistas diseñado por un antiguo SWE de Facebook que tiene dos módulos en profundidad sobre diseño de sistemas, y luego podrías utilizar Sphere Online Judge (SPOJ), una plataforma de jueces online con decenas de miles de problemas de práctica relacionados con el diseño para resolver.
#4 HABILIDADES SUAVES
Es bastante extraño ver que las habilidades no técnicas como la comunicación y las habilidades de liderazgo sean importantes en una entrevista técnica, pero es bastante importante ser capaz de expresar adecuadamente las ideas que se te ocurren durante la codificación en pizarra y que demuestres que puedes trabajar con un equipo una vez que consigas el trabajo.
Afortunadamente, este es un tema bastante poco desafiante para preparar. En cuanto a los recursos, podrías utilizar How To Win Friends & Influence People, un libro clásico que te muestra cómo establecer una relación y demostrar por qué eres el mejor candidato para el trabajo.
Mucha suerte con tus entrevistas.