Depende mucho de cuáles sean sus aspiraciones después de la EM. Pero creo que probablemente sea mejor enfocarse en cosas que son fundamentales para CS y que no se recogen fácilmente fuera de un entorno universitario formal, ya sea para la investigación o la industria. yo sugiero
- Concurreny: multinúcleo es solo el comienzo, los grandes sistemas distribuidos se están volviendo comunes.
- Algoritmos y estructuras de datos: este es realmente el pan de cada día. Las bases de datos también viven en esta categoría en cierta medida.
- Paradigmas de lenguaje de programación: procesal, funcional, declarativo, … el diseño del compilador también se incluye en esta categoría. La clave aquí es comprender por qué los idiomas se crean con ciertas características (mecanografía, alcance, convenciones de llamadas, …)
- Métodos formales: lenguajes de especificación formales, sistemas de prueba automatizados, cierta teoría de la complejidad.
Llegué a hacer un doctorado en CS, y la mayoría de las personas con las que he hablado habrían preferido haber hecho más teoría antes. Pero también creo que para entrar en la industria, es indispensable tener una sólida comprensión de cómo funcionan realmente las computadoras y los sistemas.