Primero, pregúntate en qué eres bueno y qué disfrutas. ¿Preferirías trabajar en ensamblador, C, Python, o alguna tecnología aún más nueva? Al final, incluso de un proyecto de 1 año, probablemente te resentirás de tu proyecto-tema, pero puedes minimizarlo si eliges algo que realmente encuentres interesante.
Algunos proyectos de bajo nivel incluyen:
- Construir tu propio compilador (mucha teoría, y mucho espacio para escalar).
- Crear un servidor DNS personalizado (como PiHole).
- Investigar los problemas de seguridad a nivel de firmware (por ejemplo, el cambio de bits inducido térmicamente).
¿No te gusta el código de bajo nivel? Considere algo que tenga implicaciones en el mundo real:
- Construya un simulador de enfermedades. Puede empezar de forma sencilla y añadir complejidad o complejidad según sea necesario. Y puedes comparar tus resultados con enfermedades del mundo real y/u otros modelos.
- A ver si puedes construir un bot que detecte bots. Tal vez detectar cuentas secuestradas a través de largos períodos de inactividad seguidos de una oleada repentina, o mensajes similares repetidos a través de múltiples cuentas.
- Hay un montón de proyectos que hacen uso del aprendizaje profundo, y los resultados suelen ser medibles. Algunos temas posibles incluyen la creación de una RNN que elimine el ruido de fondo (como Krisp), la predicción de divisas (podrías conectar tu NN a Zorro), o un generador de mundos de juegos/espíritus/lores.
Tienes que encontrar un equilibrio entre:
- Usar/aprender una tecnología que quede bien en tu CV.
- Elegir un tema que a ti (y a tus compañeros de equipo/supervisores) les resulte interesante y valioso.
Hablando como alguien que hizo su tesis de maestría en educación de CS, una palabra de advertencia: evita los temas que requieran pruebas humanas o donde los resultados sean subjetivos. Por ejemplo, por muy útil que sea la creación de un programa de estudios de CS de aprendizaje a distancia, te será difícil demostrar la validez/viabilidad de tu proyecto.