¿En qué debe centrarse un estudiante de ingeniería informática, proyectos o estructuras de datos y algoritmos?

¡Esa es una buena pregunta!

Como estudiante en mi último año, definitivamente puedo ver el atractivo de saber en qué áreas enfocarme al completar un título en ciencias de la computación (ingeniería).

En cuanto a su pregunta, no creo que centrarse en ‘proyectos’ y ‘estructuras de datos y algoritmos’ tengan que ser tareas mutuamente excluyentes. La belleza de CS está en el hecho de que cada tema que aprende está entrelazado y puede aprovecharse en casi cualquier tarea / proyecto que intente.

Yo diría que, antes de graduarse o considerarse un experto en CS, hay algunos temas que debe conocer al menos con los que uno debería estar familiarizado. La mayoría de las universidades hoy en día comienzan con cursos de programación introductorios en un lenguaje (solía ser Java, muchas universidades se han mudado a Python y Javascript en los últimos años).

Una vez que el estudiante comprende los lenguajes de programación y las complejidades de la sintaxis, puede pasar a tareas más complicadas dentro de los mismos / diferentes idiomas (como C, C ++) exponiéndolo a una variedad de idiomas y dando la oportunidad para aprender a navegar su comprensión de los lenguajes de programación.

Luego vienen los cursos básicos clásicos, inconfundiblemente irremplazables:

  • Estructuras de datos y algoritmos
  • Análisis de algoritmos
  • Arquitectura de la computadora (dado que estás en ingeniería informática, esto probablemente se ampliará en múltiples cursos)
  • Programacion de Sistemas

Estos cursos son obligatorios. Los siguientes temas son muy recomendables y podrían considerarse básicos para muchos puestos para los que puede postularse. Esta lista definitivamente no es exhaustiva.

Un estudiante debe tener al menos uno o todos los siguientes en su haber:

  • Compiladores
  • Sistemas operativos
  • Red de computadoras

Agregar una capa de seguridad nunca está de más;

  • La seguridad informática
  • Criptografía

Debe elegir el resto de sus cursos en torno a estos. Si desea especializarse en ML, o en cualquier otro campo, trate de no sacrificar tomar estas clases centrales de CS mientras persigue sus intereses. ¡Espero que esto ayude!

Para ser un programador de computadoras versátil y versátil, debe conocer los siguientes temas: estructuras de datos, diseño de algoritmos informáticos, optimización, matemáticas discretas, análisis numérico, teoría de grafos, probabilidad, simulación de Monte Carlo, filtrado de Kalman, filtrado digital, rápido -Fourier Transforms, sistemas operativos (multitarea), comunicaciones de datos, redes, gráficos por computadora, bases de datos y lenguaje informático, incluido el mecanismo de objetos que crea objetos con la palabra clave: clase o estructura.

Si desea ser un programador de sistemas en lugar de un programador de aplicaciones, entonces los temas que debe conocer deben modificarse, eliminando varios de los temas anteriores y agregando varios otros temas, como el diseño del compilador y la arquitectura de la computadora.

Creo que, como estudiante de ciencias de la computación, debes enfocarte en las estructuras de datos y los algoritmos porque son componentes básicos de casi todos los proyectos.

Sin un buen control sobre las estructuras de datos y el algoritmo, es difícil completar proyectos.