Distopía aterradora de entrevistas para programadores

Experimentos



Sonó mi teléfono.



“Hola, soy Jared.



- Hola. Lo llamo para una entrevista telefónica en la Compañía de Publicidad y Búsqueda Gigante [obviamente, esto es Google - aprox. carril].



- ¡Si! ¡Esperaba tu llamada!



- Bueno. ¿Puedes escribir un algoritmo para encontrar el K-ésimo valor más grande en un árbol binario?



Me callo. Desconecte completamente. Nunca me metí en una situación así. Un documento de Google en blanco me mira fijamente y el cursor parpadea a cámara lenta. Estoy dibujando algo como primer paso.



- ¿Puede escribir un caso de prueba para este algoritmo?



Seguro. Podría si no estuviera completamente drogado y mi ego interior no se derritiera bajo la furia ardiente de un sueño que muere ante mis ojos. ¿A esto se ha reducido todo mi arduo trabajo durante los últimos meses? Alrededor de enero de 2019, decidí que era hora de buscar un nuevo trabajo. Como si los dioses de la ingeniería de software hubieran bendecido ese mismo pensamiento, y un reclutador de Giant Search and Advertising Company se puso en contacto conmigo en LinkedIn para una entrevista telefónica. ¡Esto fue espectacular!



Esta no es la primera vez que sucede. Como un joven ingeniero brillante que acababa de graduarse de la escuela secundaria, recientemente comencé mi primer trabajo y lo estaba haciendo bastante bien. Pero luego mi mundo se puso patas arriba. Trabajé en un error particularmente desagradable e hice lo que haría cualquier ingeniero de software que se precie antes de intentar resolverlo por mi cuenta: buscarlo en Google. Tan pronto como presioné Enter con mi correspondiente consulta tonta en el cuadro de búsqueda, la pantalla se volvió negra y fui arrojado a la consola.



Hablas nuestro idioma ... ¿Quieres solucionar un problema?

1. Sí

2. No, gracias


Casi me atraganto con el café Costco tibio. Quería levantarme y gritar a mis colegas que vinieran a mirar. Pero luego, de repente, me preocupé de tener problemas técnicos, en cuyo caso me encontraría en una situación muy delicada. Temiendo que mi espíritu estuviera a punto de salir volando de mi cuerpo, presioné 1.



Se le da una matriz de números que contiene n + 1 enteros, donde cada entero está entre 1 y n (inclusive). Demuestre que se repite al menos un número. Supongamos que solo hay un duplicado. Encuéntralo.



¡Tienes 24 horas!


Tuve un infarto leve. Cuando pude revivirme con otro trago de café Costco, me di cuenta de que podía resolver el problema. Ya tenía un plan. Así que lo hice. Tan pronto como presioné el botón "Enviar", me dieron otra solución. Esto se repitió cinco veces y cada vez se hizo más difícil. Cuando publiqué la última respuesta, vi otro mensaje:



¡Felicidades! ¡Este código es muy bueno! ¿Quiere entrevistar a la empresa gigante de búsquedas y publicidad?


Eso es todo. Todo mi mundo profesional ha cambiado. Una de las organizaciones más poderosas del mundo se ha infiltrado en mi cerebro de 22 años y ha reescrito el registro. Ninguno de los objetivos profesionales anteriores importaba más. Antes de eso, felizmente ignoraba que una empresa tan importante podía contratarme. Pero es obvio que de alguna manera terminé siendo digno de atención.



La entrevista telefónica fue como una pesadilla. Me pidieron que programara el juego Life de Conway en 45 minutos. De hecho, lo hice bastante bien. Escribí todo el programa y lo probé. Al día siguiente me rechazaron. Interiormente, estaba deprimido y confundido. ¿Qué hice mal exactamente? ¿No significaron nada todas las pruebas? ¿Por qué tuve que escribir un algoritmo tan complejo en tan poco tiempo?



Después de mi primera experiencia en la resolución de problemas a este nivel, decidí que debería mejorar mis habilidades. La entrevista tuvo lugar en abril de este año. Elaboré un plan de estudios de tres meses y me puse manos a la obra. Todas las mañanas hice tres tareas prácticas antes de ir a trabajar. Por la noche, después de hacer jogging y comer algo, seguía trabajando. En tres meses, resolví 114 problemas prácticos en total. Arrays, Backtracking, Binary Search, Binary Trees, Breadth First Search, Depth First Search, Programación dinámica, Gráficos, Algoritmos codiciosos, Hashing, Listas vinculadas, Probabilidades, Clasificación, Pilas y Árboles de prefijos son algunos de los temas que estudié. ... ¿Cómo podría fallar con tal preparación?



Fracasos



Una entrevista con Giant Search and Advertising Company terminó en llamas. No pude resolver el problema. Pero ese fue solo el comienzo de la locura. Al principio, me acerqué de manera muy estratégica a qué empresas contactar. Necesitaba no sólo un trabajo "bueno", sino "correcto".



La siguiente fue una empresa de vehículos autónomos. Recibí una respuesta casi inmediatamente después de enviar la solicitud y configurar un editor de código. El entrevistador, molesto y con un acento muy fuerte, me pidió que codificara un algoritmo de filtrado de imágenes muy complejo. Yo lo escribi. "¡Se ve muy bien!" - él dijo. Al día siguiente recibí una carta de rechazo formulada.



Luego hubo una empresa de investigación que pidió una tarea de tres frases. Hice lo mejor que pude y escribí un sistema de procesamiento de imágenes multiproceso muy complejo. Recibí un cortés "No" del reclutador y, cuando me pidieron que explicara, me dijeron que mi implementación era "demasiado ineficaz".



Después de eso, hubo una empresa de procesamiento de pagos. Tuve una excelente conversación telefónica con la reclutadora y ella admiró lo bien que mi currículum se correspondía con la descripción del trabajo. Al día siguiente recibí un correo electrónico de ella que no podían encontrar un trabajo para mi conjunto de habilidades.



Otro ejemplo fue con la empresa Giant Social Media Platform: “¡Jared! ¡Gracias por tu aplicación! ¡Creemos que serás perfecto para trabajar en nuestra empresa! ¡He enviado su solicitud directamente al gerente de contratación de su oficina regional! " Ocho minutos después, recibí una carta de rechazo estereotipada que decía que mis habilidades no eran adecuadas para el puesto.



Innumerables reclutadores externos se han puesto en contacto conmigo. Todas las conversaciones terminaron en nada. Quizás la que más me gustó fue una empresa de procesamiento de sonido. La reclutadora se puso en contacto conmigo y me dijo que después de revisar mi currículum, el equipo está muy emocionado y ansioso por hablar conmigo, por lo que se pondrá en contacto con el gerente de recursos humanos. Pasó una semana, le pregunté cómo estaba. El reclutador dijo que se comunicó con el gerente de recursos humanos, y él no cree que mis habilidades sean las adecuadas para el trabajo. Lo acepté ... sin embargo, como prueba envié mi currículum a otro trabajo, y otro reclutador me contactó de inmediato. Me sorprendió que llamaran de inmediato. Debo admitir que esta vez no lo hice bien. Al día siguiente, recibí una negativa formulada por correo.



Finalmente, llegué a la etapa de entrevistas en la oficina de Giant Social Media Company. Respondí una serie de preguntas de codificación con varias personas en cuatro entrevistas diferentes, todas de manera correcta y satisfactoria. En el camino, me hicieron una serie de preguntas confusas y difíciles como "Cuéntenos sobre ese momento en que ...". Fue refrescante ya que por primera vez mientras buscaba un trabajo me preguntaron sobre mi experiencia y conocimientos como ingeniero en general. A esto siguió una entrevista final sobre el diseño del sistema. El entrevistador rápidamente me dio un pequeño sistema para desarrollar. Comencé a hablar sobre mi decisión y, en el camino, me hicieron preguntas. Finalmente, llegamos al punto en el que dijo: "Bueno, digamos que tenemos una arquitectura de microservicio ... ¿puedes diseñarla ...?" Inmediatamente dijeque no tengo experiencia con microservicios. Me miró interrogante y preguntó: "¿Sin experiencia?" Confirmé. He tratado de articular claramente mi conjunto de habilidades y experiencia en las áreas de desarrollo móvil, integrado y de PC. Se quedó callado como un hombre que comprende que se ha equivocado. ¡Excelente! Pasé cuatro meses preparándome para esta entrevista, pasé casi todo mi tiempo no laboral preparándome, resolviendo problemas prácticos y ensayando cómo presentar mi experiencia en habilidades de comunicación, y él no se molestó en pasar 10 minutos leyendo mi currículum.Pasé cuatro meses preparándome para esta entrevista, pasé casi todo mi tiempo no laboral preparándome, resolviendo problemas prácticos y ensayando cómo presentar mi experiencia en habilidades de comunicación, y él no se molestó en pasar 10 minutos leyendo mi currículum.Pasé cuatro meses preparándome para esta entrevista, pasé casi todo mi tiempo no laboral preparándome, resolviendo problemas prácticos y ensayando cómo presentar mi experiencia en habilidades de comunicación, y él no se molestó en pasar 10 minutos leyendo mi currículum.





Podría seguir lamentando las muchas decepciones que experimenté en esta difícil búsqueda de trabajo. Habia mucho. Siempre me he esforzado por ser completamente honesto conmigo mismo y con los demás acerca de mis habilidades. No estaba solicitando un trabajo que requiriera años de experiencia que no tenía, o me faltaban habilidades. Por supuesto, quería volver a la web desde la programación integrada, pero tenía dos años de experiencia como ingeniero web además de mi otra experiencia como desarrollador de aplicaciones móviles e investigador de algoritmos de aprendizaje automático. Reconozco plenamente que tengo innumerables oportunidades de crecimiento y superación personal. Pero, por otro lado, estoy bastante seguro de que tengo las habilidades que me permitirán comenzar un nuevo trabajo muy rápidamente. En mi opinión,La programación es una forma de arte destilada definida por el aprendizaje y las nuevas experiencias. Ningún ingeniero de software dejará de desarrollar durante el resto de su carrera. Al menos espero que no: los que lo hagan pronto se quedarán en el camino. Entonces, ¿qué está pasando realmente aquí? Después de pasar por este proceso sombrío durante tanto tiempo, decidí descomponer y analizar mis observaciones y luego reflexionar sobre ellas para obtener una imagen más clara.Decidí descomponer y analizar mis observaciones y luego ponderarlas para obtener una imagen más clara.Decidí descomponer y analizar mis observaciones y luego ponderarlas para obtener una imagen más clara.



  1. . , , -, . - — , . , , -. , , . , . .  — .



    • :

    • — , .

    • — , .

    • — . , : , .

    • — , . , . . . . - , -, .


    , , - . , , - .
  2. , — , , .



    • ? . , , , , . , . , ? . , .

    • ? , , . , . « ». . , , .  — , , . , , , , , . , , ?

    • . , . , . LinkedIn . , . , . , , , , «» .

    • , . . , . , . . .  — () , . . : « . ? : «, ». « ? ?» : « . ». . ,  — ?

    • , . , . , . , A. . ! ! . , . . ! ! - , , . : , , A : , - .

    • . 45 . . , . «», 50 , , . , 15 , . . , , . . 45 ?

    • . , Google. , . : « » « ». . , . , , , . , , « , , ». , , , . , «» , , , «» . , . - , . , . , . , , , , . ! ?
  3. , ? , . , , « ». ?! , ? , , . ? , ? . , , . , . , , , , . , .


Estoy bastante seguro de que podría haber continuado con el mismo espíritu. Tengo unos ocho puntos más en mis notas. Pero por ahora, el artículo parece más una diatriba que una publicación de blog. Espero haber podido compartir algunas de las dificultades por las que pasé en los últimos siete meses. Al final, tengo sentimientos ambivalentes. Mi empleador actual acaba de despedir a toda mi oficina, dejándome desempleado y solo para escribir sobre cómo odio todo esto. No estoy seguro si quiero volver a pasar por este proceso. Pensé mucho en mi experiencia y llegué a algunas conclusiones simples:



  • , — 85 000 Java- , , . Python, . embedded C C++ , . Flutter . Clojure, . C#. , -. .

  • No entiendo por qué no se me permite escribir software : existe una incoherencia fundamental entre las afirmaciones públicas de que las empresas están buscando desesperadamente ingenieros de software y la brutal realidad de seleccionar candidatos. Estos desafíos de codificación bajo una intensa presión de vida o muerte parecen ser más un mecanismo de novatadas que una valiosa herramienta de evaluación. Usarlos es como disparar a los candidatos a la policía antes de preguntarles qué saben sobre la ley.

  • No sé cómo se ve desde el otro lado  ; el hecho es que el proceso criticado puede ser la única forma en que las empresas pueden clasificar a los buenos y malos candidatos. Nunca he estado en un equipo de contratación y estoy seguro de que no sé mucho.


En conclusión, tengo algunos pensamientos:



  •  — , . , , . . , , ( ) , . , . , . , . , . , , , — , .

  •  — -. , : -. , . , . ? , ? , ? . , . , Agile. , . , . Java Python, Python, ? , , , . , - , .

  • — . , . . , -, . , , , :



    .



    . :






All Articles