Como estudiante de CS, ¿qué me estoy perdiendo si no tomo un curso sobre SO y compiladores?

El curso de compiladores es muy relevante para la IA, en particular en la parte simbólica de la IA. Un compilador está realizando principalmente un procesamiento simbólico (la optimización del compilador es AI simbólica).

Los cursos del sistema operativo son muy relevantes para la inteligencia artificial no simbólica, por ejemplo, porque las implementaciones de big data (por ejemplo, MapReduce) requieren una buena comprensión de los sistemas operativos.

Entonces, en su lugar, seguiría a los dos. Necesitas ambos.

(Por cierto, tengo un doctorado en IA y siempre intenté seguir tanto el SO como las tecnologías de compilación)

Tenga en cuenta que la inteligencia artificial es un término ambiguo (cuyo significado cambió con el tiempo). Para algunas personas, es lo mismo que el aprendizaje automático. Creo (como J.Pitrat, vea su blog) que tiene un significado mucho más amplio (incluso AGI). Y para la IA en su sentido más amplio, es relevante una buena cultura en informática y programación (incluido el sistema operativo y las técnicas de compilación).

Depende de si su enfoque es la informática o la ingeniería informática en su conjunto.
Como informático, no te perderás tanto. Su enfoque principal sería matemática y algoritmos.

Pero si realmente desea crear aplicaciones y escalarlas, creo que tanto los compiladores como los sistemas operativos son importantes. Debe poder elegir el idioma adecuado para su aplicación e identificar los cuellos de botella mientras se escala; para esto necesita compiladores y sistemas operativos (si no está avanzado, debería terminar con lo básico). Los sistemas distribuidos, los clústeres y la virtualización son temas candentes en la industria, y necesitará conocer los conceptos básicos del sistema operativo para lidiar con ellos.

Entonces, si buscas ser un ingeniero completo, sí , necesitas los cursos, si quieres ser un científico de la computación, no es realmente tan importante (aunque aún te sugiero que tomes al menos un curso de SO ).

curso de compilación: si alguna vez trabaja en una implementación de lenguaje, puede terminar con uno de los lenguajes de scripting más populares, donde sus desarrolladores nunca tomaron tal curso. No hablamos de javascript o lua, sino de todos los demás.
Cometen todos los errores del libro, y el lenguaje suele ser 10 veces más lento que un lenguaje implementado correctamente. Por ejemplo, de un tipo que tomó ese curso y luego continuó y escribió el dialecto del esquema número 1000 en un día.
¿Cómo se llama a una función, cómo se diseña una convención de llamada, una pila, variables léxicas, variables globales, un protocolo de objeto, un protocolo de metaobjeto, …
Si tomaste tal curso, lo más probable es que no caigas en las trampas en las que cayeron la mayoría de los demás, y tienes una idea del rendimiento.

os-course: aprenderá sobre procesos, planificadores, señales, subprocesos, desde el POV de bajo nivel, que puede enseñarle algunas cosas sobre memoria, cachés, concurrencia y señales. Estas son cosas que no podrá aprender por su cuenta.

Casi todo mi último año fue OS, intérpretes, compiladores y material en tiempo real … por supuesto, todo lo que digo es anecdótico, pero estoy bastante seguro de que fue la decisión más inteligente que tomé.

En particular, comprender el sistema operativo en el nivel de implementación ayudó mucho en la primera parte de mi carrera.