¿Debo trabajar en compiladores, sistemas distribuidos o aprendizaje de refuerzo e IA?

Aunque el campo del desarrollo de software profesional necesita desesperadamente mejores idiomas:

  • Se necesita una gran cantidad de conocimiento de asuntos arcanos como la teoría de tipos y la teoría de autómatas para mejorar materialmente el estado del arte en el diseño del lenguaje y muy pocas personas tienen este conocimiento y experiencia.
  • El diseño del lenguaje y el desarrollo del compilador requieren muy pocas personas en toda la industria.
  • De hecho, demasiadas personas (no calificadas) han estado inventando idiomas sueltos sobre una población indiscriminada de desarrolladores de software.

Por otro lado, los sistemas distribuidos son bastante difíciles y no son un campo maduro. Eso significa que todavía hay mucho por explorar y aprender y mucho progreso por hacer, y se necesita mucha gente para avanzar en este campo.

Del mismo modo (probablemente más) para ML / AI / “big data”.

Por lo tanto, le recomiendo que elija entre los dos últimos campos sobre los que pregunta.

Hay una demanda limitada de escritores de compiladores en comparación con los otros. El Aprendizaje automático está de moda en este momento (un poco diferente a la IA, lo cual es cálido, creo) Siempre habrá demanda de personas de sistemas distribuidos, porque no estamos fabricando menos computadoras más grandes.