¿Por qué las grandes empresas como Facebook, Google, etc., hacen preguntas de programación poco realistas (no relacionadas con el trabajo) en sus entrevistas de ingeniería de software?

Esto realmente se remonta muchos años a los orígenes de las entrevistas tecnológicas y habla de su evolución a lo largo de los años.

Lo que sucedió en los primeros años es que las personas se dieron cuenta de que no se podía examinar o desafiar de manera muy efectiva a un entrevistador en un período de tiempo realista (tendrían que estar realizando problemas de desarrollador en el mundo real durante un día completo o un fin de semana completo). Este problema todavía existe, por supuesto. Es demasiado pedirle a un entrevistador, y además * todavía * no daría una idea del éxito a largo plazo debido a la variabilidad en los dominios y diseños problemáticos.

La siguiente mejor opción fue averiguar qué tipo de “solucionador de problemas” iba a ser esta persona. El desarrollo de software, ya sea arquitectura, programación, ingeniería o incluso administración de programas o administración de redes, son posiciones altamente analíticas y centradas en la resolución de problemas. La mejor opción para entrevistar era ofrecer buenas preguntas para resolver problemas o escenarios que a veces pueden parecer extraños pero que mostraban el proceso de pensamiento del entrevistador. Si eran buenos para resolver problemas, en general, y podían hablar bastante acerca de la tecnología (en cualquier área relacionada con ese rol específico), entonces era una buena apuesta que encajaran bien para tener éxito en el rol. En ese caso, el resto se reduce a la personalidad, el ajuste cultural, la capacidad de liderazgo, el carisma, las habilidades de las personas, etc., que son francamente tan importantes como las habilidades tecnológicas.

El problema, en mi opinión, es que con el tiempo, a medida que estas historias penetraron en el mundo de la tecnología, se convirtió en una especie de rito de iniciación, como empresa (no individual), para ofrecer estos escenarios cada vez más ridículos y / o ridículos acertijos . Era una forma en que las compañías decían: “vengan a trabajar para nosotros, estamos entre la élite, y solo trabajamos con lo mejor de lo mejor, como lo demuestra nuestro agotador desafío mental, muy difícil, entrevistas”. que si Google y FB lo hacen y tienen tanto éxito, este debe ser el motivo).

Es una gran interpretación errónea de por qué esas empresas tienen éxito y una falacia aún más atroz en la lógica deductiva para llegar a esa conclusión … oh la ironía en eso, ¿eh? 😉

Las empresas que tienen éxito suelen tener éxito porque ofrecen un producto realmente bueno. Un producto sólido como una roca que hace un servicio muy necesario. Ni siquiera es raro que algunos de los peores (o ineficaces para ser menos groseros) programadores, arquitectos, gerentes de producto, etc. trabajen en las mejores y más grandes compañías. La razón por la que esas compañías tienen tanto éxito es porque sí, aunque tienen buenos procesos de contratación, más que nada es porque tienen un producto que ya funciona tan bien (generalmente los programadores o arquitectos originales ya han creado el marco y la compañía tiene se vuelve tan grande que ahora es prácticamente autónomo), o se necesita y se desea mucho sin una gran competencia a la vista. Incluso hay una entrevista en video con un conocido ejecutivo de ingeniería de alto nivel en Google para sus centros de datos y algoritmos que dice, (parafraseando): “Ni siquiera sé cómo funciona todo … es sorprendente que funcione * en absoluto * con qué grande y gigantesco se ha vuelto “.

¿Línea de fondo? Este estilo de entrevista surgió de un tipo de situación “yo también” que se basó en la falacia de una premisa lógica simple. La premisa es: “Si Google es tan exitoso, y tienen estas locas entrevistas de resolución de problemas, esa debe ser la razón por la que tienen éxito, y debe ser cómo * nosotros * también podemos atraer ese talento” . No, no, no.

Eso es como decir: “Si tiro una línea para pescar y no muerdo, no debe haber pescado, por lo tanto, tenemos que pescar en otro lugar para tener éxito”. La conclusión más lógica es simplemente que estabas en el lugar un poco equivocado , utilizando el cebo incorrecto o en el momento incorrecto del día. En la misma nota, es más probable que Google haya tenido éxito porque tenían una gran idea / producto diseñado por dos personas increíbles que iniciaron la compañía, y tenían [en su mayoría] requisitos estrictos de candidatos a doctorado, en lugar de porque tenían lo que se había convertido. un proceso de entrevista funky, antagónico u hostil, de burlas cerebrales. Sí, hay algunos truismos generales. Algunos cebos siempre son mejores que otros. Al igual que en promedio, si contrata prácticamente a todos los doctores, es una buena apuesta que tienen un mayor rendimiento que la población general (en promedio) y harán buenas cosas. Eso no tiene nada que ver con un concurso de burlas cerebrales de entrevistas mágicas que nos dice más sobre esas personas que juzgar a las personas que calculan a mano versus un grupo que usa una calculadora. Ya pues… :/

Definitivamente es 100% sin duda a su ventaja como gerente de contratación para ofrecer una solución de problemas decente e inteligente; pero por el amor de Dios, manténgalo civil, divertido, social y realista. Otro de los problemas con estas entrevistas más alocadas, súper intensas, totalmente poco realistas es que han creado un entorno en el que la entrevista en sí es casi hostil, aunque sea en un pequeño grado, y genera la búsqueda de personas que prosperan con este tipo de antagonista antisocial. ambiente. No está bien :/

No quieres gente así en tu equipo. Bueno, generalmente no. Claro que hay un lugar aquí y allá para que un súper genio antisocial haga su magia solo, pero son raros. Prefiero que haya personas en mi equipo que entiendan la sociabilidad, jueguen bien con los demás, sepan cómo hablar con mis clientes, los usuarios finales, que sepan resolver conflictos sin ego y no lo sepan todos los ególatras que trabajan juntos para Hacer un excelente producto o servicio. Es por eso que Google, FB, Microsoft, Netflix, Amazon, etc. tienen éxito. Tienen un gran conjunto de productos. No por alguna píldora mágica para entrevistas.

  1. Cada entrevistador tiene aproximadamente una hora antes de que llegue el siguiente. Si las personas pueden resolver problemas del mundo real en ese período de tiempo, no nos quedará ninguno para resolver.
  2. Si se interroga a un nuevo graduado sobre cómo buscar en más de 1 millón de archivos, o construir sistemas escalables para atender más de mil millones de solicitudes, ni siquiera sabrá por dónde comenzar.
  3. Si no resuelve tales problemas, ¿qué le hace pensar que puede resolver problemas del mundo real, que son mucho más difíciles? Eso es lo que pensará un entrevistador. ¿Puedes culparlos?
  4. Estas preguntas de programación “poco realistas” no son para poner a prueba tu memoria. Deben poner a prueba su pensamiento analítico. Estas compañías prefieren saltarse los buenos candidatos que contratar a los malos.
  5. Esta fue la misma forma en que esos entrevistadores también fueron contratados. Lo que significa que eso es lo que preferirían también.
  6. Los entrevistadores necesitan documentar lo que escribas. Es más fácil cuando es código. Y es fácil codificar problemas algorítmicos.

Si el entrevistador le pide que escriba un algoritmo de resolución de laberintos y no conoce ninguno, ¿qué hará?

¿Cuántos de ustedes pueden ver más allá del laberinto (suponiendo que no haya bucles) y ver un árbol? Toda la pregunta que se hace es, dados dos nodos en un árbol, ¿puedes encontrar un camino entre ellos?

Puede agregar más restricciones a la pregunta, como la ruta más corta, los bucles, etc. Pero una vez que has visto más allá del laberinto, es fácil.

Incluso si no conoce ningún algoritmo, al menos debería poder llegar a un recorrido básico del árbol, ¿verdad? ¿Pero qué hay de lo primero? ¿Cómo sabrás que es un árbol?


¿Conoces la parte divertida? ¡Piden problemas del mundo real!

Se llama la ronda de diseño.

No tendrás que codificar. Te divertirás Y evalúan principalmente su conocimiento sobre estructuras de datos y escalabilidad del sistema.

Uno de los objetivos de la mayoría de las entrevistas de empresas de tecnología es probar la capacidad general de resolución de problemas . Los problemas del mundo real tienen más probabilidades de poner a prueba el conocimiento y la experiencia de alguien. Específicamente, si un problema es demasiado similar a algo en lo que han trabajado en el pasado, se vuelve trivial, mientras que alguien que está abordando el problema por primera vez tendrá que luchar a través de los detalles.

No es que piense que probar el conocimiento o valorar la experiencia son cosas malas. Pero desea tener un conjunto consistente de cosas en las que está probando a alguien para cada pregunta. Para cada problema del mundo real, a veces estarás probando conocimiento y a veces resolviendo problemas. Eso es inconsistente.

Además, es muy poco probable que el conocimiento de este problema en particular sea ​​algo que le interese en una contratación. Desea a alguien que tenga conocimiento sobre clases de problemas y soluciones. Por ejemplo, estructuras de datos, algoritmos, estrategias de escala, tecnologías de bases de datos, etc.

En mi experiencia, un buen problema es lo suficientemente teórico como para que sea poco probable que el candidato lo haya resuelto o algo así antes, pero al extraer de una caja de herramientas de diferentes técnicas de resolución de problemas (conocimiento, experiencia), puede reducir el problema a un conjunto de problemas familiares

Soy desarrollador y diseñador de software durante 16 años. Trabajó en corporaciones, pequeñas empresas, startups y como consultor de software. También tener una empresa que contrata desarrolladores de software. Puedo responder esta pregunta

Escribiré por qué algunas compañías hacen preguntas poco realistas, por qué es una tontería y por qué no es un problema.

Cuando estudiaba quería ser pasante en Microsoft en los Estados Unidos. Después de 5 horas de viaje a la entrevista, me alegré porque estaba a punto de conocer a mi héroe de desarrollo en estos días. Estaba sosteniendo la entrevista.

Hasta este momento, estaba activo en grupos de desarrollo universitario que alojaban muchos de ellos. También sirvió a mucha gente aprendiendo programación en grupos de desarrollo en línea. Así que tenía algunos conocimientos básicos de desarrollo.

La entrevista comenzó. Fue muy rapido. Tenía 10 preguntas, una por una, sobre otros idiomas de los que se trataba la entrevista, sobre un dilema muy nerd del que solo tal vez 10 personas pensaron que tenían respuesta. La entrevista terminó como en 15 minutos. No hablar. Solo disparando con preguntas. La entrevista terminó y fui a viajar 5 horas de regreso a casa.

Mi mundo simplemente se derrumbó. Me quedé impactado. Me sentí avergonzado de no saber las respuestas. Seguramente tenía que conocerlos. Estaba decepcionado de mí mismo y sentía que era realmente estúpido imaginar que una compañía así tomara a un idiota como yo como interno.

Pero era una cara de la moneda.

Una cosa fue que sentí que a mi gurú simplemente no le importaba y sentía que solo estaba presumiendo y también lo poco que sé. No sentía que mi gurú estuviera interesado de ninguna manera en mi humilde persona. Como si yo no fuera nadie. No es como si estuviera esperando algo especial. Cualquier cosa que la gente haga normalmente para hacer una conexión amable. Infierno. Oraciones como “tengo algunas preguntas para ti” lo harían mucho mejor.

Así fue. Supongo que no necesito escribir, no obtuve la pasantía. Finalmente resultó ser excelente para mí porque encontré un mejor trabajo. Y guru? Bueno … el gurú estaba fuera de mi lista.

Quizás no lo sé todo. Además, tal vez no puedo pensar con claridad mientras estoy en estrés. Pero tampoco me gustaría trabajar en una empresa como esta. En una compañía donde mi guru es un imbécil. Donde las personas son tratadas como basura. Donde la motivación para aprender no es valiosa.

Por supuesto, Microsoft es una gran empresa. Todos los que trabajan allí son un gran desarrollador, más tarde me enteré y estoy seguro de que es cierto. Pero una persona representa una empresa, incluso si el juicio no es justo para todos. Las emociones no son racionales.

De vez en cuando leo algunas preguntas difíciles de desarrollo. Los entrevistadores sin fondo de desarrollo también encuentran preguntas difíciles y evalúan a los desarrolladores como si tuvieran que trabajar todos los días para encontrar nuevas soluciones al problema de Trolley. Pero no es necesario. Dev no se trata de resolver complicados acertijos nerdish o trabajar con mucho estrés.

La prueba de esfuerzo durante la entrevista es la mejor. El entrevistador prueba si un candidato maneja un alto nivel de estrés para verificar si estará bien. ¿Qué nos dice esto sobre la empresa? …

El desarrollo de software consiste en encontrar soluciones a problemas del mundo real. Hay suficiente de esto para inventar otros nuevos.

Para resumirlo…

Muchas preguntas de la entrevista son simplemente una forma nerd de mostrar, otras son para ver cómo reaccionas ante el estrés y rara vez son para evaluar el conocimiento.

En mi opinión, los dos primeros tipos de preguntas son estúpidos. La entrevista es estresante. Las preguntas nerd solo se suman. Si un entrevistador agrega estrés es una pena. Él está muy desconectado. No sabe cómo es ser entrevistado.

La forma en que se lleva a cabo la entrevista dice mucho sobre una empresa. Si una empresa se preocupa por las personas, cómo terminará la persona y quién se convertirá después de años de trabajar allí.

Entonces sí. Algunas preguntas de la entrevista son muy tontas y muy malas. Malo para la reputación de la empresa y para la autovaloración del entrevistado. Pero no es gran cosa (un poco).

Hay muchas empresas con gran cultura. Donde la cooperación, el trabajo en equipo, el equilibrio y el conocimiento son importantes. Donde las personas son importantes. Donde la gente no está agotada. Y trabajar allí puede ser mucho mejor que en otros.

¡Vota y sigue si la cultura de la empresa es importante para ti!

La diferencia entre una empresa Top Tech que define experiencias de vanguardia a escala masiva y la más alta calidad de servicio, y una media es que la empresa superior selecciona y prepara a las personas que son solucionadores de problemas e innovadores . Por lo tanto, el proceso de la entrevista está diseñado para buscar capacidades genéricas de resolución de problemas y diseño, en lugar de solo “en qué idiomas has trabajado” o preguntas de tipo “explica tu proyecto actual”. La mayoría de los desarrolladores pueden explicar muy bien su propia área de proyecto después de trabajar en ella durante unos años. Es como la memoria muscular. Pero dado un nuevo problema que abordar, muy pocos tienen el conocimiento básico básico de CS y la experiencia real para obtener formas eficientes de enmarcar, conceptualizar y resolver el problema en trozos. Por lo tanto, si tiene más de 10 años de experiencia y dudas que la compañía lo rechazó injustamente, simplemente regrese a la mesa de dibujo y trabaje para reinventarse. Nada es imposible.

Detengamos esta locura: las únicas personas que se quejan de la dificultad de las preguntas de las entrevistas en las empresas de tecnología son los usuarios de Quora, posiblemente los que todavía tienen que pasar esas entrevistas.

La verdadera pregunta es: ¿por qué las personas que no conocen la informática esperan estar calificadas para trabajar como ingenieros de software para grandes empresas tecnológicas?

  1. Las preguntas relacionadas con el trabajo son difíciles de dar a los graduados universitarios.
  2. Las preguntas relacionadas con el trabajo evalúan el conocimiento, no la aptitud.
  3. Lo que haces en términos de trabajo, en cualquier buena compañía, cambia cada año o dos de manera fundamental de todos modos, entonces, ¿qué diablos realmente califica como universalmente relacionado con el trabajo?
  4. Tenemos pizarra y discusiones verbales de experiencias pasadas de todos modos.
  5. Dar problemas que realmente están en el contexto de una base de código multimillonaria en el mundo real es casi imposible en un plazo razonable.

A menudo son el verdadero problema de alguien, pero se reducen a un formulario que puede pedir y obtener en 40 minutos.

Se piensa mucho en el diseño de esos problemas, y tienen aproximadamente la misma dificultad que algunos de los algoritmos que tenemos que inventar para pequeños problemas de trabajo.

Los grandes problemas son imposibles de preguntar en una entrevista; los más grandes son demasiado grandes para una tesis doctoral.

Creo que esto se debe principalmente a la escala. Google obtiene millones de entrevistas de CV, decenas de miles y contrata a cientos. Necesita algún proceso que funcione y le brinde personas de calidad aceptable a esta escala. Es difícil contratar personas en función de la experiencia, porque la experiencia varía mucho y se puede falsificar fácilmente. Al mismo tiempo, puede haber alguna correlación entre ser bueno en la resolución de problemas y ser un buen trabajador cuando es contratado. Otro aspecto positivo (no para usted) en este tipo de entrevista es que la barra de contratación se puede ajustar fácilmente. Simplemente dé un problema más complejo en menos tiempo y lo aumentará, digamos, del 2% al 1%.

Aún así, si no te gustan esas entrevistas, ¿por qué trabajar allí? Por ejemplo, soy ingeniero compilador en una pequeña empresa y lo disfruto mucho 🙂

Las empresas piden a los candidatos que resuelvan problemas mucho más simples de lo que pueden enfrentar en el trabajo diario porque los espacios para entrevistas de trabajo son de 30 a 60 minutos, no semanas, meses o años.

Hacemos esas preguntas de programación porque descubrimos que filtran de manera eficiente a las personas que probablemente no tengan un buen desempeño cuando son contratadas.

En más de 20 años, nunca me ha sorprendido gratamente un ingeniero contratado a pesar de los problemas para resolver los problemas de codificación de la pizarra.

No son poco realistas, solo prueban la capacidad de resolución de problemas en lugar de solo programar. La programación es esencialmente la resolución de problemas a nivel técnico, y a menudo necesita descubrir cómo abordar un problema que nunca antes ha encontrado, especialmente si está creando algo nuevo. Estas empresas también prueban las habilidades prácticas de programación relacionadas con el trabajo con preguntas de entrevistas de programación, pero también tienden a centrarse en la resolución de problemas en lugar de solo en detalles técnicos porque a menudo eso es más importante.

Bueno, las preguntas tienden a no estar directamente relacionadas con el trabajo porque la mayoría de las preguntas relacionadas con el trabajo tomarían mucho tiempo para realmente hacer, recibir una respuesta y evaluar. Entonces, las preguntas que son algo así como algunas preguntas simplificadas relacionadas con el trabajo se recopilan y utilizan.

La alternativa realmente es que vengas a trabajar para una empresa durante unas semanas, tal vez 3 meses, mientras reflexionan sobre tus resultados de trabajo y habilidades de diseño y deciden si deberían contratarte o no.

Personalmente, preferiría responder las preguntas de la entrevista.

Hay pocas razones

  1. Google puede preguntar lo que quieran por los candidatos
  2. Los puestos están demasiado concurridos, lo usan para filtrar personas
  3. La mayoría del proceso de contratación en ingeniería de software no es justo
  4. Trabajar en Google no es como trabajar en una compañía normal que hace un trabajo ordinario

Porque saben que la programación puede aprender fácilmente pero la actitud no. Lo llevas innato. Verifican su enfoque porque eso es lo que están buscando.

More Interesting

¿Cuántos detalles sobre los proyectos de mi empresa actual puedo incluir en mi currículum?

¿Es justo que el gerente de contratación le diga al candidato desarrollador de software de nivel básico que desarrolle un proyecto de software (no prueba de codificación) para ser contratado?

¿Cómo es ser ingeniero de software en Pakistán?

¿En qué empresa de tecnología se prueba realmente a un ingeniero de software para ir más allá de su zona de confort / o es el más desafiado, Google o Facebook?

¿Cómo comenzó la programación de computadoras?

Cómo encontrar una oportunidad de formación como ingeniero de software, preferiblemente en Europa

¿Amazon es una empresa de tecnología de segundo nivel?

¿Qué tipos de problemas enfrentan las pequeñas empresas de software, excepto las limitaciones presupuestarias desde el punto de vista de la ingeniería de software?

¿Existe algún software que pueda hacer que una computadora estalle en llamas?

¿Por qué la gente a menudo cambia de compañía en el sector de TI?

¿Qué puedo hacer como ingeniero de software sobre mi trabajo?

¿Cómo es posible que los bootcamps de codificación conviertan a sus estudiantes en ingenieros de software al final de las 12 semanas?

¿Qué porcentaje de ingenieros de software no tienen un título en informática?

¿Debo elegir Sir MVIT, BMSIT, BIT o SIT (Tumkur) para la ingeniería de telecomunicaciones?

¿Cuáles son los ejemplos estándar de la vida real de conceptos orientados a objetos?