Soy un desarrollador experimentado sin un día de educación formal en CS y postularme a Google. Tengo dos semanas para estudiar. ¿Cuáles son las historias morales de la CS?

Voy a responder una pregunta ligeramente diferente, aunque creo que es relevante. Como alguien que puede (o no) haber aplicado alguna vez en la gran G y que puede (o no) todavía estar bajo NDA sobre el proceso de hace 10 malditos años, ejem …

Las cosas importantes en las entrevistas parecen ser los temas básicos en un plan de estudios de CS:

  • Estructuras de datos y algoritmos básicos. ¿Entiendes árboles, listas enlazadas, órdenes rápidas, búsqueda binaria, etc.?
  • Paradigmas básicos de la programación. ¿Entiende conceptos de paradigmas no imperativos como mapas, recursión de la cola, etc.?
  • Realmente pensando fuera de casos de borde en máquinas de estado. ¿Podrías escribir una expresión regular o una máquina de estados que se ocupe completamente de analizar algo? ¿Qué pasa si la corriente está corrompida? ¿Qué pasa si las líneas son REALMENTE largas (o algún otro caso extraño)?
  • Finalmente, ¿REALMENTE sabes muy bien un idioma? En general, no se trata de saber cómo arreglárselas en un idioma, se trata de conocer las peculiaridades del ecosistema y la solución de problemas. Es probable que te molesten en el idioma que sea más fuerte.

¡Buena suerte! Asegúrese de que puede hablar de manera inteligente sobre los proyectos en su currículum (¿por qué hizo X y por qué fue bueno?).