Entrevistas en Google o Facebook

A.K.A. Como conseguí trabajo en Silicon Valley

Estos son algunos tips que he recopilado para mis amigos. Pasos para prepararse y tener un excelente resultado en tu entrevista con una empresa de tecnología. En mi experiencia, empresas como Google, Facebook, Apple, etc., tienen un proceso muy similar, que más adelante les platico.

Estudiar

Antes que nada hay que practicar y estudiar, mucho. Recordar algoritmos y estructuras, o si al igual que yo, no estudiaste estos en la escuela, aprenderlos. La manera más eficiente que encontré fue buscar problemas de tipo entrevista en internet y resolverlos. Los problemas generalmente requieren ordenar los datos en algún tipo de estructura, o usar un algoritmo, entonces como los vayan resolviendo irán practicando. Uno o dos al día después de trabajar, o de las clases, es suficiente. Es importante resolverlos en un editor como notepad, o mejor aún, en un pizarrón blanco. Una vez terminada tu solución intenta compilarla, te servirá para encontrar y corregir errores. Recuerda que en las entrevistas no tienes acceso al compilador o auto-completar. Revisa las soluciones de los problemas y no te preocupes si algún problema te es imposible, o tu solución no es la mejor. Eso si, aprende las razones por que son mejores.

Lenguaje a elegir para practicar

Es importante escoger un lenguaje para tus entrevistas y apegarte a este. De preferencia que sea uno que se utilice en el puesto que estas buscando el que mejor conoces. Sin embargo, algunas veces no hay entrevistas en el, o no es conveniente. En estos casos es muy importante que te prepares para las preguntas de dominio especifico de tu alternativa. No te olvides de practicar algoritmos, como recursion o búsqueda binaria, ya que la mayoría de los problemas esperarán que uses un algoritmo específico. Muy importante también es conocer el tiempo y memoria de las soluciones (“Big O Notation¨). Dicho esto un buen ejercicio para empezar es implementar funciones como memcopy o estructuras como árboles binarios y sus funciones de inserción.

En la entrevista

Tiene esta estructura:

  1. El entrevistador se presenta en unos 5 minutos.
  2. Una pregunta sencilla, puede ser relacionada con la información de tu currículum, generalmente no demora más de 5 minutos y es de conocimientos. Algunas veces se omite.
  3. Un problema o 2 dependiendo de la dificultad y tu velocidad para resolverlo.
  4. Finalmente unos minutos para que le hagas preguntas al entrevistador.

Pasos clave para resolver el problema

En todo momento habla lo que estas pensando y planeando hacer. Es muy importante por dos razones. Primero, una de las cosas que se evaluaran es como enfrentas el problema y comunicas tus ideas. Y segundo, si te desvias del camino en tu respuesta, el entrevistador te lo hará saber.

  1. Aclara tus dudas. ¿Los datos de entrada son un diccionario o un arreglo? ¿Puede haber valores nulos? ¿Contiene números negativos? ¿No enteros? No asumas nada, y aclara todo. Ten claro que problema tienes que resolver. Muéstrale al entrevistador que estas consiente de esos casos. Muchas veces te dejarán responderte tu solo la pregunta, y escoger el camino que quieras. Elige el escenario más fácil.

  2. Plantea la solución. Antes de lanzarse a programar describe lo que piensas hacer y asegúrate de que le parezca correcta al evaluador. Lo último que quieres es perder tiempo con una solución poco eficiente o incorrecta.

  3. Hora de escribir código. Si no recuerdas alguna API que quieras usar, pregúntale a tu entrevistador que tan importante es tener la sintaxis correcta, o usar los nombres correctos de las APIs. Así sabrás si debes poner más atención a esto, o te puedes concentrar en mejorar tu solución. Aunque se espera que estes familiarizado, es entendible que no conozcas a fondo todos los detalles. Decir “Se que esta función existe, pero no me acuerdo de su nombre” es valido y evitará que pierdas tiempo. Es preferible hacer esto que perder todo el tiempo de tu entrevista implementando alguna subrutina que no es parte importante de tu solución.

  4. Probar tu solución. Siempre es bueno para encontrar errores en el código, no olvides probar casos extremos. Además la otra persona este esperando que hagas al menos un par de pruebas.

  5. Termina. Da una última revision, pide una opinión y haz las últimas correcciones. Si aún hay tiempo, pasarán al siguiente problema o aclararán detalles de tú solución, te preguntará el tiempo de ejecución (Big O notation) si no lo mencionaste, etc.

Conclusión

Lo más importante para que consigas el trabajo de tus sueños es prepararte. Si has llegado hasta aquí y te sientes listo, mándame tu currículum y se lo paso a un reclutador de Google.

Enlaces útiles

Entrevistas en Google

Problemas tipo entrevista

Google Codejam

Style Guides

BigO notation

Publicado por