Hay muchos proyectos que uno puede tomar durante los descansos del semestre. La mayoría de las veces, solía escribir juegos, ya que era divertido escribirlos y probarlos. Pocos de ellos incluyeron juegos de carreras con sprites en J2ME, solucionadores de sudoku, etc. Acabo de escribir algunas cosas a las que tal vez quieras darle una oportunidad.
- Juegos: los juegos incluyen jugar con estructuras de datos complejas, principalmente árboles y algoritmos como la detección de colisiones que implica una buena cantidad de matemáticas. Intenta escribir un motor de ajedrez. ¡Es bastante desafiante!
- Software de aplicación como editores, reproductores de mp3, grabadores de sonido, aplicaciones de chat, etc. Escribir estas aplicaciones lo haría sentir cómodo con los sistemas de archivos, estructuras de datos, redes y algoritmos como reducción de ruido, filtros, etc.
- Compiladores: aunque escribir un compilador no es una tarea de cuatro semanas, se convierte en un pasatiempo a largo plazo como sucedió en mi caso. Comencé a escribir mi propio compilador para C hace un año y medio. He estado agregando más y más optimizaciones a medida que aprendo una y encuentro tiempo para agregar. Está alojado gratis en Github – Icarus. Hay buenos cursos disponibles en línea para ayudarlo a escribir uno.
- Ensambladores: similares a los anteriores, pero los ensambladores son menos complejos de escribir.
- Aplicaciones web: probablemente una de las favoritas para los estudiantes; incluye una variedad de aplicaciones: portales de estudiantes, sitios de búsqueda colectiva como Quora, sitios de alojamiento de códigos como github.
- Aplicaciones de Android / iOS: echa un vistazo a la App Store. Obtendrás miles de ideas.
- Contribuya al código abierto: es posible que desee echar un vistazo a los proyectos de código abierto que se están llevando a cabo, por ejemplo, LLVM, Ubuntu, Firefox, etc. e intente contribuir a ellos. Por ejemplo, puede agregar su propio pase de optimización al compilador LLVM (localmente) y ver los beneficios. Esto no solo lo expondrá a arquitecturas de aplicaciones del mundo real, sino que también agregará un gran valor a su currículum.
Acabo de escribir cosas que se me ocurren ahora. Agregaré a la lista mientras pienso en más. ¡Buena suerte!