Esto depende de lo que estés solicitando. ¿Es una pasantía? ¿Con el Practicum de ingeniería para una pasantía fresca, sofisticada o SWE para jóvenes y adultos mayores? ¿Vas a tiempo completo?
De cualquier manera, Google buscará el mismo conocimiento, pero solo en diferentes niveles de dominio, y contrariamente a la creencia popular, nada de eso se trata de “codificación”. Quiero decir, obviamente, esperarán que puedas escribir algunos bucles for, pero si no tienes toda la API de Javas memorizada, estás bien. De hecho, toda la codificación de mi entrevista se realizó en un extraño lenguaje Java-Python-Psuedocode que inventé principalmente en el acto.
En Google no te van a contratar si no eres más que un mono código. Esa podría ser su posición en algún momento, pero se espera que todos los ingenieros de Google sean desarrolladores de software. El papel de un SWE no es solo codificar. En mi mente, descompongo el software de escritura en distintas etapas.
- Cómo conseguir un trabajo como desarrollador de Python
- ¿Hay algún futuro para CS?
- ¿Puede un graduado en ciencias de la computación e ingeniería informática caer en un solo trabajo?
- ¿Debería un estudiante de CS de segundo año explorar Tecnologías e idiomas o desarrollar experiencia en alguna área?
- Cómo planificar eficazmente (año tras año) para un gran futuro como estudiante de ingeniería informática
- Identificar y comprender un problema u objetivo.
- Encuentre una o varias soluciones para el problema.
- Considere las opciones entre sus soluciones y decida una.
- Implemente la solución, incluidas pruebas exhaustivas para la solución.
- Obtenga mi solución revisada
- Enviar el código
Las únicas etapas que requieren escribir el código son 4 y 5 (a veces, la revisión conduce a ediciones). A veces omitirá pasos y, a veces, los pasos son mucho más rápidos de lo habitual, pero esta es la idea general.
Las partes más difíciles son 1, 2 y 3 y eso es a lo que Google prestará atención. Estas partes requieren inteligencia, conocimiento del diseño de software, arquitectura del sistema, estructuras de datos, algoritmos y, a veces, algo de creatividad. Hará mucha investigación porque los sistemas con los que trabajará serán enormes y cambiarán constantemente.
Un título universitario cubrirá la mayoría de estas cosas. También necesitará algunas habilidades blandas con respecto a la comunicación para que pueda compartir sus soluciones en correos electrónicos y documentos de diseño. En ese sentido, su código debe ser legible y comprensible. Sin embargo, estas partes se pueden enseñar fácilmente.
Para habilidades específicas, querrá desarrollar todas estas habilidades enfatizando la resolución de problemas, estructuras de datos y algoritmos. ¿Cuánto deberías haber dominado estos temas? Depende de en qué etapa estés. Google no esperará que un estudiante universitario de primer año pueda explicar las complejidades de los algoritmos aleatorios o cómo entrenar algoritmos de aprendizaje automático, pero ese estudiante de primer año sabe mejor cómo funciona la búsqueda binaria. Y si tienes 20 años de experiencia, esperarán mucho de ti.
Ahora, ¿cómo demuestras que tienes estas habilidades? Un título o grado en una clase ayuda, pero principalmente es en una entrevista. Son una hora de duración y no son efectivas (una diatriba para otro momento), pero es lo mejor que tenemos en este momento. Para ayudar a entender esta parte crucial, le aconsejo que lea la entrevista de Cracking the Coding de Gayle Laakmann McDowell, una ex-googler.