Rechazado por Microsoft.
Nunca he verbalizado esto de ninguna manera por Internet, pero siento que es una respuesta bastante adecuada dadas las otras respuestas que he visto. ¡Disculpas, será una lectura bastante larga, no demasiado interesante y un poco de desahogo mezclado!
Antecedentes rápidos: estaba en mi tercer año de mi licenciatura integrada + maestría en Ingeniería Aeronáutica. También estuve en mi año de intercambio en NUS (Singapur). Había tomado un par de módulos de programación y estructuras de datos / algos en NUS, y tenía unos 7 años de experiencia en programación (principalmente desarrollo web).
Mientras estaba en Singapur, solicité una pasantía de verano de 3 meses en la oficina de Microsoft en Londres, y pasé por una pantalla de teléfono y una entrevista por Skype. Estaban felices de llevarme a la etapa final en la oficina de Londres, mi primera experiencia en una entrevista de codificación / algoritmos. En total, se entrevistó a 6 personas y se ofrecieron 3 puestos.
La etapa final de la entrevista consistió en 3–4 entrevistas técnicas de 30 minutos. Nos dijeron que la cuarta entrevista se llevaría a cabo SOLO si nuestra solicitud estaba sentada en la cerca, como decisión final.
Las dos primeras entrevistas podrían haber ido mejor. Fui probado en algunas estructuras de datos que aún tenía que cubrir en mis módulos. Todavía logré responder las preguntas pero con un poco de dificultad.
Poner en cola la tercera entrevista. El tipo que me estaba entrevistando ahora era piloto (de aquí en adelante se refirió al Pilot Coder), y todo su frente fue muy condescendiente y condescendiente (múltiples comentarios sobre mi corbata y si fue mi primer palo o no, pero no fue así, pero gracias de todos modos, supongo). Parecía tener derecho inmerecido debido a su camino similar (aeronáutico -> CS), constantemente cuestionándome sobre problemas aeronáuticos en lugar de CS. Creo que puedo ser la única persona que se haya entrevistado para un trabajo de ingeniería de software en Microsoft y que me pregunten sobre los polares de arrastre y elevación.
De todos modos, aparte de eso: me hicieron una pregunta de programación / algoritmos extremadamente simple, pero me pidieron que la implementara y la codificara en el idioma de mi elección en la pizarra. Ahora, acababa de comenzar a usar Java en NUS por primera vez, no confiaba en ello. Lo mencioné en cualquier idioma de elección y elegí JavaScript. Soy desarrollador web y tengo años de experiencia en el idioma. Lo sabía por dentro y por fuera. Lamentablemente, Pilot Coder nunca había visto este misterioso lenguaje y creía que le estaba pasando el pelo por el código. ¿Qué? ¿Su variable ‘my_string’ no se ha escrito estáticamente? ¿Qué es esta hechicería? ¡Necesitas configurar su tipo! La entrevista no fue bien. Independientemente del hecho de que las respuestas a todo eran sencillas. No creo que este tipo haya usado un lenguaje escrito dinámicamente (desafortunadamente para mí).
Entonces fue el momento de la decisión: aceptar / rechazar / entrevistar.
Me dieron una cuarta entrevista, lo que significa que se debió al desempeño de esta.
Este chico estaba ansioso por conocerme, y toda la entrevista se basó en mi conocimiento de JavaScript (de aquí en adelante referido a JS Guy). Estaba claro que Pilot Coder había extendido su incredulidad en mi capacidad de programación. ¿Yo? Estaba extasiado: no solo tenía más de 7 años de experiencia en el lenguaje, sino que acababa de terminar un módulo en NUS donde había trabajado con compiladores de JavaScript, aprendí sobre programación funcional y uso de funciones como una máscara para OOP. No había mucho que no pudiera responder, pensé.
Entonces, JS Guy saca su ** macbook ** y escribe un bucle for muy simple y me pregunta qué tiene de malo. Lo miro y estoy claramente confundido: no tenía nada de malo. Código a continuación:
for (var i = 0; i // ..
}
Entonces, después de un poco de tiempo, dijo: ¿seguramente no puede ser eficiente? Instantáneamente respondí lo que quería aquí. `data.length` debería haberse calculado antes del ciclo. Lo sabía, era una respuesta simple, pero no una respuesta a la pregunta original “ ¿qué tiene de malo el bucle? ”. Un poco molesto, decido ir un poco más allá y decir que realmente habría ido para la implementación del bucle while, señalando que es una mejor evaluación comparativa. Parecía contento con eso y estuvo de acuerdo. Algo en la línea de:
var dL = data.length;
mientras que (dL–) {
// …
}
Luego me pidieron que creara varias construcciones de OOP a partir de funciones y aunque ahora no puedo recordar los detalles lo suficientemente bien, mi código estaba ** en punto **. Él era feliz. Luego me hizo otras preguntas, todo salió bien, incluso le enseñé un método que no conocía para la manipulación de Array. Respondí todo de manera correcta y eficiente.
Luego me volvieron a llamar, esperé 15 minutos y me dijeron que estaba completamente 50/50 y que no me darían una oferta. No me dijeron lo que necesitaba mejorar, y bueno, la entrevista no podría haber sido mucho mejor en mi opinión. Pero tomé el rechazo con calma; Fue mi primera entrevista CS para una empresa tan grande como Microsoft y solo después de tomar 1.5 mods CS de un grado aeroespacial.
De todos modos, fue un final agridulce. Me sentí bien porque logré llegar tan lejos e impresionar a algunos de los entrevistadores con mi pensamiento lógico, pero un poco infeliz al final no recibí la oferta. Pero me dijeron que volviera a presentar una solicitud en el próximo ciclo y me acelerarían hasta la etapa final de la entrevista debido a mi 50/50-ness.
Avance rápido al siguiente ciclo: envío mi solicitud haciendo referencia a lo anterior. Lamentablemente, ella está de baja por maternidad y por lo tanto envía mi solicitud a otro miembro de Recursos Humanos. Le informo de las circunstancias y ella dice que entiende y que me gustaría llamarme para hablar sobre las cosas. Ella me pregunta cuándo estaría buscando comenzar la pasantía y qué había hecho desde la entrevista anterior, solo recursos humanos marcando las casillas que pensé. En ese tiempo participé en una competencia de robótica de IA y gané el primer lugar en NUS, completé un módulo doble avanzado en DS / A, completé un proyecto de investigación que requería el desarrollo de software de Android y lancé una modificación web utilizada por más de 500,000 personas. Fin de la llamada telefónica. Haga cola 2 semanas después y recibo un mensaje de la misma persona de Recursos Humanos: “Lo sentimos, no creemos que sus habilidades técnicas sean suficientes para el papel en este momento” (o alguna permutación). Gobsmacked – y no ha aplicado desde entonces. Mi solicitud en la ronda anterior fue lo suficientemente buena como para llegar no solo a la entrevista técnica de Skype, sino también a las rondas finales. Y me dijeron que sería rápido. Entonces, de repente, RR.HH me dijo que mi conocimiento técnico simplemente no era suficiente, ¡seguro que llegó a un punto crítico!
Fin del juego: desde entonces nunca me he molestado en aplicar a Microsoft, y no tengo intención de hacerlo si así es como van a jugar este juego.