Hay tantos temas de que poder platicar! La verdad es triste, preocupa y hasta molesta la situación en México. Pero bueno ese no es el tema principal de este post.
Debido a que una gran cantidad de conocidos y desconocidos me han preguntado acerca de las entrevistas en USA decidí hacer este post. De entrada, las entrevistas en México y US son bastante diferentes, aunque depende bastante de la empresa la mayoría sigue un patrón similar.
Numero 1...
Back to the basics!! Tienen que recordar todo acerca de teoría de computación. Sobre todo el análisis de algoritmos (complejidad), aquí se conoce como "Big O".
Esperen preguntas como, cual es el tiempo de ejecución de determinado algoritmo? sobre todo se basan en los de ordenamiento Quick, Merge, etc. (El "bubble" ni lo mencionen)
Numero 2...
Seguimos con lo básico. Estructura de datos, colas, pilas, lista ligadas, arrays y hashmaps. Tendrán que aprender en que situación funciona mejor cada uno de estos, dependiendo si el tiempo de respuesta y/o la memoria importan. Por ejemplo la busqueda en listas ligadas y arrays son similares, pero la inserción y borrado son mas difíciles en los arrays.
Numero 3...
Bits, pareciera que no, pero todo lo referente al manejo de bits. Si!! Esos operadores "&" "|" "<<" que manipulan los bits. Sobre todo para preguntas que implican operaciones matemáticas o encontrar ciertos tipos de números. Por ejemplo, el mas común, como saber si un numero es potencia de dos? 'numero' & 'numero' resuelve el problema.
Numero 4...
Codificación y solución de algoritmos. Dependiendo del rol para el que apliquen la complejidad de estos variara. Esperen preguntas como, escribe un algoritmo que regrese TRUE si la primera cadena esta contenida en la segunda, obviamente simulan que no tienes ninguna de las librerías predefinidas en tu lenguaje favorito.
Este tipo de preguntas son, para evaluar tu nivel de abstracción, habilidad para resolver problemas, creatividad, etc. Y sobre todo ver que tan bien/mal codificas, si te fijas en los casos en que tu código pueda fallar.
Numero 5...
Si en tu CV dices que sabes Java, C++, SQL y cientos de lenguajes + miles de frameworks, prepárate para ser cuestionado ampliamente sobre cualquiera de ellos. Aquí te recomendaría que seas honesto y pusieras los que realmente dominas, antes de que llegues a la entrevista y empieces a no contestar o de plano decir cosas sin sentido. Un ejemplo claro son los sistemas operativos, poner que has trabajado en Linux (aunque solo lo hayas visto de lejos), y que te pregunten ciertos comandos básicos y no sepas responder. De otra forma, te recomiendo que repases un poco acerca de todo lo que dices conocer.
Numero 6...
El ingles!! Es muy diferente tener a la persona de frente en un cuarto sin ruido que por teléfono. Ademas considera que en este mundo del software hay una gran variedad de acentos como el hindú y chino, de verdad que si no dominas bien el idioma te costara mas que hu..o poder pasar si quiera del primer filtro, que suelen ser los pre-screen (llamadas telefónicas de los reclutadores y/o de personal buscando ciertos conocimientos de tu perfil).
Las entrevistas en general duran al rededor de 45-60 minutos. Lo mas importante, recuerden que el tipo que esta del otro lado del teléfono esta igual de nervioso que ustedes y que no es un tipo que todo lo sabe, seguramente por ahí tu conoces dos o tres trucos que el en su vida profesional a aplicado.
Esta es una muy buena liga para lidiar con eso de los algoritmos. Entren resolviendo algunos, el tiempo promedio en responder (encontrar el algoritmo/codificarlo) puede ser de 15 minutos, tal vez un poco mas pero recuerden que solo tienen 60 en total.
http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=alg_index
Este libro es como la biblia para los que andan buscando chamba por aquí. En el encontraran descritos mas ampliamente los puntos que mencione arriba.
Programming Interviews Exposed; Secrets to landing your next job by
John Monagan and Noah Suojanen.
Cualquier duda... pues me dicen! Pero antes de preguntar den una 'gugleada' créanme que es mas satisfactorio (interesante y aprenderán mas) encontrar la respuesta por su cuenta.
Saludos,
El Buho
2 comentarios:
Hola Buho
De acuerdo con todos tus puntos y agregaria que en mi caso fueron 5 entrevistas seguidas de 50 minutos cada una, en una sala con un pizarron y un plumon para resolver los algoritmos que te piden. Osea, no es solo echar choro.
Saludos.
En eso tienes razón, las entrevistas presenciales suelen ser muy fuertes técnicamente.
Tal vez la gran diferencia, en México nunca te ponen a codificar, es mas bien choro =)
Por cierto, leí tu blog! Muy bueno!
Publicar un comentario