Un análisis rápido de las respuestas pone lo que estoy haciendo en una categoría singular, ¡bien!
… pero tu amigo me parece un hacker infernal.
A menudo he dicho que: la ingeniería es el arte de hacer trampa eficiente.
- ¿Cómo podemos encontrar el padre de un nodo en un árbol binario dado si no tiene un puntero para el padre?
- ¿Vale la pena tomarse un pequeño descanso en la carrera para prepararse bien para entrevistas para trabajos aún mejores?
- Entiendo los conceptos básicos sobre AngularJS, pero ¿qué debo hacer para mejorar ese conocimiento lo suficiente como para ser considerado en un puesto de trabajo de desarrollador de AngularJS?
- Programación de acertijos: Te dan n dados cada uno con caras numeradas del 1 al m. Lanzas los n dados y anotas la suma de los números en los n dados. Te dan un número x. Considérelo una ganancia si la suma obtenida es mayor que x. Encuentre la probabilidad de ganar dado n, m y x.
- ¿Cuáles son las ventajas de escribir código con un tiempo de ejecución mínimo?
En última instancia, el resultado final es todo lo que importa, siempre que esté por debajo de los requisitos de presupuesto y tiempo. De esta forma, los ingenieros deben ser probados exactamente de la misma manera que probamos a otros artesanos … pidiéndoles que nos muestren su trabajo. Cuando buscas un constructor para agregar una extensión a tu casa, no le preguntas sobre su ejercicio, dices “dame algunas direcciones de los lugares que has diseñado y construido” y recorres esos lugares … preguntando a sus propietarios sobre El costo de trabajo y el tiempo empleado es todo lo que necesita.
Creo que el proceso de entrevistas de Google es tan terriblemente malo para descartar a los ingenieros por simples programadores que hacer trampa en torno a ellos para comprometer la capacidad de ingeniería es una especie de evento de encogimiento de hombros en mi libro.
¿Por qué digo que su proceso de entrevista es horrible?
Bueno, pregúntele a Eric Schmidt , escribió un libro sobre cómo ha tratado de alejar el proceso de contratación de Google del método cargado de SPOF (punto único de falla) de usar individuos individuales secuencialmente para examinar a los candidatos, dijo que la contratación por comité es más eficiente ( y la evidencia muestra esto claramente) … los métodos secuenciales ignoran por completo a los candidatos que están nerviosos bajo condiciones probadas (pero aún así son grandes ingenieros), que no estudiaron exactamente lo que el ingeniero pregunta (lo cual es poco realista ya que no se puede aprender todo) y quién no responda las preguntas a la fórmula mágica de “derecho” que espera el ingeniero (esto varía de ingeniero a ingeniero y, por lo tanto, no puede probar una habilidad de ingeniería consistente para Google).
Por cierto, no es solo Google … la mayoría de las compañías de software tienen un proceso horrible de investigación de ingenieros.
Por lo tanto, la mejor pregunta para plantearse en Ingeniería es “muéstrame lo que has construido y explica cómo lo hiciste”. Cualquier otro método es un fracaso significativo en comparación.
He escrito mucho sobre este tema en los últimos años:
Cómo NO contratar ingenieros potencialmente brillantes.
Ingenieros versus programadores
No cederé … ni he visto ninguna buena respuesta a mi argumento. Solo repetiré algo de contenido aquí … pero aprender a hackear procesos es ingeniería … si el proceso de Google realmente se tratara de probar ingeniería, sería mucho más difícil hackear como lo está haciendo tu amigo.
¿Cómo puede Google fácilmente hacer que su proceso sea mucho más difícil de hackear mientras que también es mucho mejor para evaluar a los ingenieros que a los simples programadores?
Simple, enfóquese abrumadoramente en el trabajo completado para ser explicado a través de la codificación en vivo o ejercicios de recuerdo.
Cualquier ingeniero honesto (hardware / software) le dirá que ninguno de nosotros (a menos que esté trabajando en una mesa de negociación y que surjan muchos problemas de día cero en su sistema J2EE mal diseñado) funciona en un reloj, somos personas inherentemente creativas … y al igual que otras soluciones creativas (artistas, poetas, diseñadores) se combinan con su tiempo y se prueban en un reloj que arruina a muchos ingenieros realmente buenos … aunque es bueno para conseguir programadores … que Google tiene muchos … sin embargo, sus verdaderos ingenieros se trasladan rápidamente a google X u otros proyectos especiales en los que nadie registra qué tan rápido se les ocurre una solución, ya que en esos dominios todas las soluciones son novedosas.
Le aseguro que Jeff Dean no se preocupa por cuánto tiempo le está tomando descubrir un nuevo algoritmo porque su superior sabe que necesita tiempo de horneado para crear algo nuevo para los espacios problemáticos que tiene que resolver.
Lo que plantea la pregunta si Google quiere tener más personas que puedan diseñar innovaciones novedosas, como automóviles autónomos de Google o robots andantes en Boston Dynamics o globos de luz wifi en Loon o dispositivos manuales de mapeo mundial en el proyecto tango ¿por qué no contratan a todos sus ingenieros de la misma manera que contratan a esos tipos (pidiendo ver proyectos realizados , software creado … en lugar de preguntar sobre las herramientas utilizadas)?
Me gana … tal vez algún día se darán cuenta de que, como el gran problema que es y harán un cambio para tratar a todos sus ingenieros de la misma manera que tratan a Jeff Dean … Predigo que se sorprenderán de cuánta más innovación obtienen fuera de su conjunto existente de chicos … O simplemente se darán cuenta de que una gran parte de todos los programadores que han contratado no pueden manipularse con una bolsa de papel. 😉