¿Cómo hace Google para que los doctores recién contratados en informática se pongan al día con la codificación?

Soy un doctorado quien trabaja en Google Me sorprende ver respuestas aquí sobre doctorados que no son buenos para codificar, pero tal vez tuve una experiencia diferente a la típica en mi propia educación. Hice un doctorado en Ciencias de la Computación, e involucró un montón de código … Quiero decir, escribiríamos un compilador para la clase de compiladores, escribiríamos un mini-SO para la clase de SO, implementaríamos nuestras propias redes neuronales y programas de juegos para la clase de IA, etc., etc. y para mi disertación escribí una gran cantidad de código. Además, no me gusta especialmente la codificación, pero es necesario implementar mis ideas de investigación, así que lo hago y creo que lo hago bien.

A veces tengo la sensación en Google de que la “codificación” es lo más valorado en la cultura, y me desconcierta ya que creo que las ideas, la arquitectura general del sistema, etc., son más importantes. Hay una verdadera obsesión por los pequeños detalles de la sintaxis macro de C ++ y cómo reescribir el código para que sea 1 línea más corta usando algunos trucos elegantes. Prefiero ver el panorama general … y sospecho que a las personas obsesionadas con el código les falta el bosque por los árboles.

Tal vez hay muchos doctores que son malos para codificar, aunque afortunadamente no los he visto yo mismo. Cuando entrevisto, veo muchos estudiantes de BS y maestría que no entienden las estructuras básicas de datos de árbol, la recursividad, la programación dinámica, la complejidad del tiempo, etc. los estudiantes que conozco pueden manejar estas cosas básicas, al menos.

En realidad, es decepcionante para mí ser un Ph.D. en Google, en cierto modo, ya que siento un poco de prejuicio o resentimiento o algo de mi no doctorado. colegas Hay un extraño anti-doctorado. sesgo en algunas partes de Google debido a esta idea de que los doctores no pueden codificar, y creo que es algo triste.

Sin embargo, volviendo a la pregunta: a los nuevos ingenieros de software se les asigna un mentor en general, pero no es para enseñarles a codificar. La gente ya debería entender esto, y aprenderán más a través de revisiones de código, chateando con colegas, etc. A veces hago un poco de programación en pareja con personas de mi equipo o pasantes que estoy ayudando, pero no es tan común.

Definitivamente hay demasiados estudiantes de doctorado de CS que no pueden programar. Puedo decir que tanto por trabajar durante 10 años en el mundo académico como por ser mentor de pasantes de doctorado durante mi tiempo en Microsoft Research.

Con programación, no me refiero a desarrollar un algoritmo gráfico o de clasificación, sino a diseñar sistemas de software.

Si bien incluso Google puede (accidentalmente o, en algunos casos, intencionalmente) contratar personas sin habilidades de ingeniería de software, por ejemplo, porque tienen algunas otras grandes habilidades, por ejemplo, en el aprendizaje automático, le recomiendo a su carrera que no apueste por esto. Incluso si es contratado, puede ser infeliz en su trabajo, tarde o temprano. Un estudiante de CS que invierta un par de años en obtener un doctorado, también debería poder invertir el tiempo para aprender ingeniería de software, tanto para tomar las clases correctas como para buscar pasantías que brinden información práctica.

No confíes en tu asesor en este caso. Algunos profesores son excelentes programadores, otros no (que es una de las razones por las que tuvieron que convertirse en profesor). Incluso si el tema de doctorado es altamente teórico, casi siempre existe la oportunidad de construir un sistema experimental en torno a su trabajo, que realiza los pequeños pasos adicionales para un sistema de software real (por ejemplo, una buena interfaz de usuario o similar). Eso debe hacerse incluso si no se solicita explícitamente.

CS es ante todo una disciplina de ingeniería, y solo secundariamente científica.

No, no y no, en su mayor parte.

Algunos doctorados CS pueden codificar; otros no pueden. Los que pueden son una mejor opción para Google. Si eres un gran teórico que no puede codificar, puedes postularte a Google de todos modos, pero Google no solo te elegirá para un trabajo de programación pensando que probablemente puedas aprender algún día. En general, Google construye cosas, por lo que quieren empleados que también puedan hacerlo.

Y algunos Googlers sí programan pares, aunque la mayoría no.

Un nuevo doctorado será contratado como SWE solo si muestra una competencia básica en la codificación, lo mismo que alguien que fue contratado como BS recién graduado. Hay recursos disponibles en Google que pueden ayudarlo a aprender sus sistemas, mejorar sus habilidades e incluso aprender un nuevo idioma. Pero, por lo que vi, no había un programa establecido para ayudar a nadie a aprender a codificar, doctorar o no.

Si no se está desempeñando en el nivel esperado, obtendrá malas críticas y eventualmente buscará otro trabajo. Tienes que estar motivado para mejorar tus propias habilidades. Si tienes un buen gerente, él puede darte algunos consejos sobre cómo mejorar, pero lo más probable es que te diga lo que necesitas para mejorar. Si tiene un buen administrador (algo raro en Google), puede asignarle a una persona de mayor jerarquía para que le oriente sobre cómo producir un mejor código, pero no sobre cómo codificar.

Es de la misma manera que cualquier nuevo empleado se pone al día. Primero, hay numerosos codelabs, esencialmente ejercicios que lo familiarizan con la ruta principal del código sobre cómo usar una biblioteca o servicio dado. En segundo lugar, hay numerosas clases impartidas por Googlers sobre los distintos idiomas utilizados en Google y cómo utilizar herramientas comunes. En tercer lugar, hay numerosos Googlers dispuestos a ayudar o servir como mentores pares. Por último, hay mucha buena documentación disponible.

Un doctorado inteligente recién contratado debería poder acelerar la codificación con algo de esfuerzo.

He estado muy involucrado en el reclutamiento de doctorado en mis 8 años en Google. Incluso cuando contratamos doctorados como científicos de investigación por su capacidad de investigación específica, requerimos suficiente diseño de software y habilidades de codificación para que el nuevo empleado tenga éxito en poner en práctica sus ideas. Los investigadores científicos trabajan codo a codo con los ingenieros de software en una base de código compartido que admite la experimentación y la producción de investigación. Es la única forma en que podemos aportar los últimos avances en aprendizaje automático y comprensión del idioma para mejorar constantemente las experiencias cotidianas de los usuarios de Google.

Si tiene una sólida educación en CS, se espera que sepa cómo codificar, independientemente de si tiene un doctorado. o no. Para alguien con una buena comprensión de los fundamentos de CS, un Ph.D. El programa solo ayuda a fortalecer esa comprensión y, eventualmente, a pesar de que no hayan codificado durante 5 o 6 años, emergen como un mejor programador de lo que solían ser como solteros recién graduados.

Una respuesta más general a su pregunta que no se limita a Google es que si no puede codificar, nadie puede ponerlo al día. Tendría que pasar por un entrenamiento serio usted mismo minuciosamente para convertirse en un buen programador.

Los doctores recién contratados en Google ya saben cómo codificar, porque lo demostraron durante la entrevista. Google recibe toneladas de aplicaciones de doctores que pasaron cinco años estudiando miopemente algunos detalles sin escribir ningún código. Luchan con los problemas de codificación más simples y terminan siendo enviados a casa con un cortés agradecimiento. Google contrata a personas que realmente pueden hacer una mierda. No te van a contratar si todo lo que hiciste fue memorizar un montón de cosas académicas.

En mi experiencia personal, los solicitantes de doctorado tienden a clasificarse en dos categorías: el primer grupo, alrededor del 25%, son personas que aman la tecnología, juegan con ella todo el tiempo y escriben mucho código. Por casualidad obtuvieron un doctorado en el camino. Los contratan. El otro 75% son las personas cuyo objetivo era obtener el doctorado en sí. De vez en cuando pasan por el proceso de la entrevista. Esa es solo mi experiencia personal después de haber realizado entrevistas en Google en los últimos cuatro años.

Entonces, si estás en un programa de doctorado y tu sueño es trabajar en Google, pasa un tiempo revisando uno de esos libros de preparación de entrevistas y trabajando en los problemas allí. Me gusta el libro de Gayle Laakmann. Eso te hará saber si estás listo.

More Interesting

¿Se podrían tomar decisiones de vacantes de empleo sobre el comportamiento de una persona en LinkedIn y / o Facebook como referencias?

¿Cómo prueba una startup la calidad de los nuevos programadores durante el proceso de contratación?

¿Un MBA de segundo nivel como D'Amore McKim de Northeastern te ayuda a ser contratado por un Fortune 500?

¿Cuáles son las ideas principales y los aspectos más destacados de "The Rare Find" de George Anders?

¿Qué preguntas debo (el entrevistado) hacerle al entrevistador durante una entrevista telefónica o en persona para la banca de inversión?

¿Puede un empleador predecir el desempeño laboral basado en un perfil de Facebook?

¿Por qué las empresas aún contratan gerentes de productos, DevOps, TPM, atención al cliente y UX que ni siquiera pueden hacer una codificación básica (como secuencias de comandos, HTML, etc.)?

¿Qué son los servicios de evaluación previa al empleo?

¿Los empleadores evitan contratar personas que cuestionan la autoridad?

¿Cuáles son algunas buenas aplicaciones de una sola página que puedo desarrollar usando Swift para mostrar la contratación de administradores de iOS?

¿Cuál es la mejor manera de contratar desarrolladores de iPhone en India?

¿Es apropiado que una compañía de verificación de antecedentes solicite una prueba de empleo al solicitante de empleo?

¿Cuánto cuesta contratar a un contador para cuentas personales y cómo funciona?

¿Qué consejos le darías a un nuevo gerente de contratación para entrevistar a su primer empleado?

¿Hay algún sitio web que contrate directamente en el área del Golfo?