Google tiene una guía muy completa para tener una base solida en Computer Science, ya que considera que es la base para ser un exitoso ingeniero de software. Google divide las recomendaciones en conocimientos académicos y no académicos..
En el primer grupo, la compañía recomienda aprender a programar en C++, Java o Python (al menos uno de ellos) y en otro lenguaje como Java Script, CSS, HTML, Ruby, PHP, C, Perl, Lisp o Scheme. Además, sugiere que aprendas a probar y testear tus códigos, desarrolles tu pensamiento lógico y matemático, entiendas a la perfección el funcionamiento de algoritmos, estructuras de datos y sistemas operativos y aprendas sobre inteligencia artificial, criptografía y computación paralela. Para cada uno de estas disciplinas, puedes consultar aquí los cursos online que Google recomienda, impartidos por MIT, Udacity o Coursera. La mayoría gratis pero, eso sí, en inglés.
En el frente de conocimientos no académicos, Google recomienda trabajar en proyectos fuera de la universidad (construir un robot, tu propia página web, tu propio servidor…) y con otros programadores; practicar tus conocimientos de algoritmos y de programación a través de competiciones; enseñar a otros estudiantes con menos experiencia para afianzar tus propias habilidades; y adquirir experiencia como becario/intern de ingeniería de software.
Esta guía esta enfocada para estudiantes universitarios pero también sirve para cualquier persona que quiera adquirir conocimientos por su cuenta y a su propio ritmo.