Editar (febrero ’15): Recientemente fui mentor de un estudiante universitario de Indonesia para obtener una pasantía en el Valle que me dio más detalles sobre los desafíos, por lo que estoy agregando consejos más largos aquí; mi respuesta original está debajo del pliegue (“====”).
Conseguir una entrevista
Currículum
Un montón de recursos sobre esto en Quora, pero algunas dificultades que veo a menudo en currículums indonesios:
- Consultoría de gestión: ¿Hay algo de malo en tener McKinsey, Bain y BCG (pasantías con los 3) en su currículum?
- ¿Cuáles son los mejores bootcamps de verano para desarrollo de iOS o prácticas?
- ¿Alguien puede proporcionar detalles de pasantías en nuevas empresas para un estudiante de ingeniería mecánica?
- ¿Qué libros debo comprar para prepararme para una entrevista de pasantía de verano en una empresa consultora?
- ¿Qué puedo hacer para ser un gran pasante?
- currículum solo debe ser una página.
- Si tiene muchos logros (la mayoría de la gente de programación competitiva ha participado en múltiples competencias), elija 3-4 de los más destacados (por ejemplo, solo a nivel regional / internacional). No tiene una lista de lavandería de> 5 competiciones.
- No es necesario poner género, fecha de nacimiento, dirección.
- La lista de actividades debe estar orientada a los resultados. Si está entrenando un campo de entrenamiento, indique cuál es el resultado, por ejemplo.
- Su lista de proyectos debe dar una idea aproximada de cuál es el desafío técnico. El lector debe ser capaz de entender sobre qué está escribiendo.
- Pon la parte impresionante de tu currículum primero. Si eres un programador competitivo exitoso, coloca los ‘Honores / Logros’ cerca de la cima. Lo mismo si ganas hackatones / tienes proyectos impresionantes.
- su currículum debe sobresalir, en 30 segundos, 2 minutos después de que un reclutador revise su currículum, debe haber algo que lo haga pensar que tiene potencial. Trabaje para tener ese factor destacado: competir en competencias de programación, hacer hackatones, hacer proyectos interesantes (tal vez de código abierto), pasante en buenas empresas en casa.
Aplicando
- Aplicar temprano. La contratación de pasantías aquí comienza y termina bastante temprano: puede comenzar en septiembre del año anterior, y para cuando sea enero, la mayoría de los lugares ya estarán completos. Si presenta la solicitud en febrero, o más tarde, será más difícil.
- Obtenga una derivación si puede; pregunte a las personas que conoce si pueden decir algo bueno por usted.
- Realiza competiciones de hackerrank: si lo haces bien, es muy probable que te llamen para una entrevista.
- La carta de presentación puede ayudar un poco, pero también puede doler mucho : si desea enviar uno, asegúrese de tener a alguien con un buen inglés para corregirlo.
- Si la empresa que está solicitando tiene desafíos de programación como http://quora.com/challenges, si le va bien en esos, su currículum tendrá más visibilidad.
Muy importante : aplicar a muchas empresas . Muchos estudiantes indonesios que conozco solo se aplican a los obvios como Facebook y Google, pero eso realmente prueba tu suerte. Hay mucha suerte en el reclutamiento de pasantías (especialmente si es el primero y si eres internacional o no eres senior). Me entrevisté con compañías de 8-ish en mi primer año, y de manera similar le aconsejé a mi aprendiz que postule a ~ 10 compañías. Es mejor tener demasiadas entrevistas que muy pocas. No se limite: su primera contratación de pasantías no es el momento de ser demasiado exigente o demasiado orgulloso.
Si eres estudiante de primer año o segundo año, hay empresas que tienen un programa de primer año / segundo año al que probablemente sea más fácil llegar. Además de mi cabeza: Facebook U, Google Engineering Practicum, Explore Microsoft Internship.
Algunas ideas de empresas (que sé que aceptan pasantes internacionales):
- Dropbox
- Quora
- Palantir
- Addepar
- Gorjeo
- Coursera
- Mozilla
- imo.im
- Cuadrado
- PocketGems
En general, es más probable que las compañías más grandes acepten pasantes internacionales, solo porque tienen más espacio para pasantes.
Entrevista
Cosas algorítmicas para saber (quizás no exhaustivas):
- complejidad de tiempo y espacio
- estructuras de datos: pila, cola, cola prioritaria, montón, matrices, lista vinculada
- árboles <- señalando esto ya que se pregunta con mucha frecuencia.
- algoritmos gráficos simples: BFS, DFS, Dijkstra
- clasificación: al menos los n ^ 2 algoritmos y combinación de clasificación
- recursividad
- conceptos básicos de programación dinámica
- la idea de hash
- búsqueda binaria
Cosas técnicas no algorítmicas para saber (también no exhaustivas):
- ¿Qué sucede cuando pones una URL en un navegador?
- Regex
- La idea de empujar / tirar
- E / S de disco: comprensión de E / S de disco: ¿cuándo debería preocuparse?
- E / S enlazado / CPU enlazado E / S enlazado / CPU enlazado
- Almacenamiento en caché: caché LRU, localidad de caché, estrategia de desalojo
- comandos básicos de UNIX
- Enhebrado: problema productor-consumidor, ¿Cómo resolver el problema del consumidor productor usando hilo?
- Bases de datos: clave primaria, índice, elaboración de esquema básico, replicación, transacción
- NoSQL
Producto
- Esté preparado para responder sobre cosas que le gustan y cosas que no le gustan sobre el producto de la compañía.
- Métrica
- Cómo elegir las métricas de UX adecuadas para su producto
- ¿Cuáles son las mejores métricas para que un gerente de producto las rastree? ¿Existen algunas buenas métricas que pueda aplicar a casi toda la administración de software?
Otras preguntas no técnicas.
- cuéntame sobre tus antecedentes y lo que te interesa.
- los proyectos en tu currículum
- ¿Por qué quieres trabajar allí?
- ¿Qué tiene de emocionante su trabajo?
- ¿Qué le preguntarías a sus ingenieros?
- ¿Qué mejorarías de su producto?
Preparación para los materiales anteriores.
- Encuentre problemas relacionados con las preguntas algorítmicas en HackerRank y resuelva algunos / muchos de ellos. Esta es la lista de verificación que le di a mi aprendiz:
La codificación en papel / pizarra / almohadilla en línea es ligeramente diferente de la codificación en el IDE: creo que es bueno acostumbrarse a no tener su compilador / intérprete confiable, y confiar únicamente en usted mismo.
Acostúmbrese también a explicar su solución en palabras concisas.
- Para las cosas que no son algo, la mayoría de las empresas tienen una barra bastante baja para el diseño de sistemas para pasantes: siempre que conozca el concepto básico, lo suficiente como para mostrar la idea / concepto cuando vea un problema, probablemente esté bien. Simplemente lea las páginas wiki para ellos y pueda responder “¿Qué es _?”
- Para el producto, es bueno poder recorrer un producto específico y poder decir por qué esta parte del producto está funcionando y por qué otra parte no funciona, y qué se puede mejorar.
- Siempre esté preparado para responder las preguntas no técnicas anteriores a las empresas que está entrevistando. Tenga respuestas enlatadas para ellos si no piensa bien en inglés. Estar emocionado, ser específico, ser conciso.
- Al explicar su currículum, es importante ser conciso y elegir los detalles que son comprensibles, pero interesantes. No divagues.
- Escuché cosas buenas sobre la entrevista de Cracking the Coding de Gayle Laakmann McDowell (libro de 2011), recójala si es posible.
Otras habilidades de entrevista
- intenta conseguir que alguien con un buen inglés y experiencia en entrevistas se burle de ti varias veces.
- errar del lado de la comunicación excesiva que de la comunicación insuficiente, explique su proceso de pensamiento antes, durante y después de implementar
- no tenga demasiada confianza: no comience la implementación antes de discutir la solución con su entrevistador, no esté seguro de que su solución sea correcta antes de verificarla.
- escriba un buen código, no un código algorítmico de calidad de competencia. Comenta bien y nombra tus variables correctamente.
- Tener largas conversaciones con otras personas en inglés: hablar con una persona extranjera durante 45 minutos puede ser abrumador / estresante.
- ten confianza y enuncia lo que estás diciendo.
Además, no lo tome como algo personal si las empresas no responden a sus currículums o si fue rechazado. Hay mucha suerte con el reclutamiento por primera vez, y a veces las empresas buscan diferentes cosas en un candidato.
¡Buena suerte!
===========================
Aplicar
No se desanime antes de intentarlo: las empresas leen currículums internacionales, incluidos aquellos sin referencias. Conseguir trabajo en SIlicon Valley no es una exageración si eres competente, donde sea que estudies. Hay una gran demanda de ingenieros de software y las empresas están dispuestas a contratar ingenieros competentes de donde sean.
Las razones por las cuales muchos estudiantes indonesios que obtienen trabajos en Silicon Valley son ex alumnos de TOKI:
- Los reclutadores pueden llegar a ellos debido a sus logros competitivos de programación
- Es posible que tengan amigos (posiblemente del círculo TOKI) que los recomienden
- Su experiencia en programación competitiva los prepara realmente bien para entrevistas a la Silicon Valley (que puede ser muy diferente de las entrevistas en empresas indonesias).
Para compensar 1):
Abra la página de empleos de las empresas (por ejemplo, http://www.quora.com/jobs, Facebook Careers | Facebook, etc.), reclutadores de correo electrónico (generalmente [correo electrónico protegido] o correos electrónicos similares), o cargue sus currículums en sus sitios web. Los reclutadores realmente leen estas cosas.
La parte difícil es cómo hacer que tu currículum se destaque, si no vienes de universidades conocidas o tienes logros conocidos (por ejemplo, en programación competitiva). Puedes hacer otras cosas: desarrollar una aplicación, unirte a un hackathon, etc.
Para compensar 2): red .
Después de obtener una entrevista, está en el mismo nivel que todos, incluidos los estudiantes de EE. UU.
Ahora, para compensar 3): prepárate .
No se sienta abrumado o intimidado: estas entrevistas realmente no son tan difíciles . Solo lleva tiempo acostumbrarse. Lea y pruebe problemas de muestra, enjuague y repita. Muy pocas compañías solicitan algoritmos complicados, y estará bien siempre que practique y comprenda sus conceptos básicos.