Conoce como entrevistan las mejores empresas de software mundo.
Como consultor Android, he tenido y he presenciado bastantes entrevistas de trabajo en Estados Unidos, por lo que se como funcionan y que tipo de entrevistas se hacen dependiendo del tipo de empresa que te vaya a contratar, si quieres saber como entrevistan las mejores empresas del mundo para estar mejor preparado para ellas, este artículo te interesa.
Cuando me entrevistaron para mi primer trabajo de Android en USA, estaba muy nervioso porque pensaba que me preguntarían cosas tan complejas que me quedaría mudo y con vergüenza, nada más alejado de la realidad, las preguntas que me hicieron fueron sencillas, preguntas que cualquier persona con al menos un año de experiencia podrían contestar.
En general me fue bien aunque para ser honesto, como no soy Ingeniero en Sistemas sino en Mecatrónica, no conocía muchos conceptos que para un Ingeniero en Sistemas son lo más básico que puede haber; por ejemplo, cuando los entrevistadores (Eran dos, por videollamada en Skype) me preguntaron «¿Has trabajado con web services?» les dije «No se que es eso, ¿Podrían darme un ejemplo?» y me dijeron «Si, por ejemplo hacer requests con post o get o usar RESTFul», estos conceptos sí los sabía, los había utilizado muchísimas veces, pero no sabía que lo que me enviaba los datos se llamaba web service. El punto es que la entrevista no fue nada fuera nada de lo común, fueron muy amables y me preguntaron cosas sencillas como cual es el ciclo de vida de una actividad en Android (Véase https://hackaprende.wordpress.com/android/activity-lifecycle/ ), resultó que esta es una de las preguntas más recurrentes en entrevistas de trabajo para Android en USA.
Las preguntas que te hacen en las entrevistas de trabajo dependen mucho del tipo de empresa que te quiera contratar, hasta el momento he identificado 3 tipos de entrevistas:
Empresas «conservadoras» posicionadas: Estas son empresas que ya tienen una trayectoria pero que son algo conservadoras por ser empresas grandes, algunos ejemplos que se me han presentado son Nike, Directv, Bank Of América, AT&T y Comcast. Por lo general, las entrevistas en este tipo de empresas constan de dos o más etapas: La primera es una entrevista por vídeo llamada (Casi siempre usan Skype), en ésta te atiende una persona que sabe muy poco o nada de software, te preguntan aspectos personales, tu experiencia, qué te gusta hacer, cual ha sido tu mayor reto, etc. Esta etapa es más para conocerte que para evaluarte, así que aquí no hay que preocuparse porque todo mundo «la pasa». La segunda etapa consiste en una entrevista técnica, esta entrevista sí la hace alguien conocedor de los temas, aunque en este tipo de empresas las preguntas que te hacen parecen sacadas de una lista, se parece a un examen de escuela donde a todos les preguntan lo mismo y las preguntas son muy técnicas:
- Podrías decirme cual es el ciclo de vida de una actividad
- ¿Qué es un Broadcast Receiver?
- ¿Cual es la diferencia entre un Service y un Intent Service?
Bien podrías hacer un temario y leerlo y pasarías sin problemas si la entrevista no fuera por vídeo llamada. Algo curioso es que en estas empresas las entrevistas son hechas en su mayoría por personas de La India, cuyo acento inglés es muy distinto, así que se tiene que poner mucha atención para entender si no tienes mucha práctica con el idioma. Por último, a veces hay tercera o cuarta etapa, las cuales son también técnicas y hechas por otra persona para llegar a un acuerdo entre varios.
Startups: Las startups son empresas de alto riesgo (Aun no están 100% seguras si su negocio es viable) que tienen un producto novedoso y tiene pocos años de vida, ejemplos: Udemy, AirBnb, Juicero, o cualquiera de las que puedes encontrar aquí: http://sanfrancisco.startups-list.com/
En estas empresas, también hay dos etapas, la primera también es de reconocimiento, te cuentan un poco sobre su producto y lo que hacen y te preguntan tus planes futuros, que te gusta hacer, por que te gustaría trabajar ahí, etc. La segunda etapa es una entrevista técnica, pero a diferencia del grupo anterior, aquí la entrevista es más práctica, es decir, te piden que resuelvas un problema, por lo general orientado al puesto que buscas, por ejemplo si vas a entrar como backend, podría ser un problema en Django, estas entrevistas son muy dinámicas, no hay tanta presión e incluso hay entrevistadores que bromean y se ríen contigo, también hay ocasiones que te dicen «No hay problema si buscas en Stackoverflow, lo que me interesa es que resuelvas el problema».
En lo personal estas entrevistas para mi son las mejores, no son para nada estresantes y te preguntan cosas que realmente te interesan, además en una startup tienes más libertad para opinar, crecer más, convivir más y tus ideas se toman en cuenta. Al terminar la entrevista, el entrevistador te pregunta si tienes dudas o algo, después se despide y a los días te llega un correo de si te aceptaron o no.
Las Grandes Ligas del Software: Empresas muy pero muy exitosas como Google, Apple, Facebook o Uber, según el libro «Crear o Morir» de Andres Oppenheimer, algunas de estas empresas tienen mayores ganancias ¡Que el producto interno bruto de algunos países!
Las entrevistas para estas empresas son palabras mayores, principalmente porque te hacen preguntas o te plantean problemas muy complejos, que en la mayoría de los casos no tienen nada que ver con tu puesto de trabajo. Al igual que en los casos anteriores, las entrevistas consisten en una etapa de reconocimiento y una entrevista técnica. La etapa de reconocimiento es exactamente igual que para las startups, la diferencia está en la entrevista técnica.
Al igual que en las startups, las entrevistas técnicas son prácticas, es decir, resolver problemas, pero con la diferencia que los problemas son orientados a algoritmos complejos que se ven en la escuela y se olvidan con el tiempo, los problemas son del tipo que te podrías encontrar en http://www.topcoder.com, si entras en esta página y practicas unos meses no creo que tengas problema alguno.
Estas empresas no evalúan tanto tu conocimiento en Android, iOS, Django, etc. sino tu capacidad de análisis y resolución de problemas, recurriendo a algoritmos como árboles, tipos de ordenamiento (Quicksort, mergesort), Grafos, etc. En cierto modo se parecen también a los exámenes que te hacen en la escuela.
Algo interesante es que estas empresas te dan un temario para estudiar, y el temario es igual o muy parecido en todas, no se si se pondrán de acuerdo.
Conclusiones y Recomendaciones:
No importa en cual de las empresas quieras entrar, hay algunas cosas que debes considerar:
- Los entrevistadores no solo evalúan tus respuestas, sino la manera en que te comportas al resolverlas, por ejemplo si empiezas a programar en cuanto te preguntan o si analizas antes de iniciar.
- Es bueno preguntarle todas tus dudas al entrevistador antes de iniciar, para que estés seguro de qué es lo que quiere, esto habla bien de ti como programador.
- Testea todo, por ejemplo, si te dicen que crees un método que tenga como argumento un string para ver si es palíndromo, checa que el string no sea null antes de usarlo, esto también es muy bueno a los ojos del entrevistador.
- No te sientas intimidado por los entrevistadores, créeme, he estado del otro lado y el entrevistador se siente igual o más nervioso que tú, además, el 99% de las veces son muy amables y no te hacen las preguntas para atacarte, sino para saber si eres el indicado para el puesto que buscan.
Lo más importante, JAMÁS te decepciones si no quedas en la entrevista, como dicen «Hay muchos peces en el agua», siempre habrá más oportunidades, y que no quedes no significa necesariamente que seas un burro, sino que en ese momento no estabas preparado para esa entrevista en específico, además, no a todos les hacen las mismas preguntas, así que hasta cierto punto es cuestión de suerte si te toca un problema fácil o difícil.