¿La mayoría de los cursos requeridos en un programa universitario de ciencias de la computación son inútiles para la aplicabilidad de trabajo de programador del mundo real?

Sí, en su mayoría lo son.

Al igual que el cálculo de la escuela secundaria es inútil para la mayoría de los trabajos de nivel inicial que requieren un diploma de escuela secundaria. Y al igual que la escuela secundaria, el inglés es inútil para escribir solicitudes de pasantías. Y como memorizar las capitales de los EE. UU. En la escuela primaria es inútil para la mayoría de las tareas cotidianas.

Pero las razones para tomar los cursos requeridos en un plan de estudios de pregrado son las mismas para aprender toda esa información “inútil” en la escuela primaria: es para enseñarle cómo aprender y prepararlo para habilidades más avanzadas en esas áreas.

A menos que hayas codificado mucho fuera de clase (e incluso entonces), es probable que aterrices en tu primer trabajo sintiendo que no tienes idea de lo que está sucediendo. “¿Qué diablos?” dirá: “¿No se suponía que mi educación me enseñaría todo esto que se espera que sepa?” Pero un solo plan de estudios de CS nunca podría cubrir la amplia gama de habilidades y conocimientos que se requieren incluso para su primer trabajo de nivel de entrada. Los cursos que toma están destinados a desarrollar sus habilidades hasta un punto en el que esté listo para aprender más una vez que comience ese trabajo. Además, hay tantas subdisciplinas y áreas diferentes en ciencias de la computación que si una universidad requiriera que las estudiaras todas, estarías en la escuela durante 10 años.

Otra razón por la que estos cursos son obligatorios es para dar a los estudiantes una amplia gama de conocimientos, de modo que estén expuestos a muchas áreas diferentes en ciencias de la computación y puedan decidir en qué quieren especializarse. Como estudiante universitario, tuve que tomar un curso de arquitectura de computadoras para ganar mi CS menor. Odiaba cada segundo de esa clase. (¿Eso no te recuerda al alumno de cuarto grado que odiaba memorizar las capitales estatales?) Pero ese curso me dio una muy buena comprensión de cómo funcionan las computadoras, y sus proyectos desafiantes me ayudaron a madurar como informático. No me enamoré del diseño del procesador, pero no puedo llamarme un verdadero científico informático si no sé cómo funcionan las canalizaciones y el almacenamiento en caché. Puedo mirar hacia atrás en lo que aprendí y ver esa clase como un valioso trampolín en mi educación en informática, a pesar de que no trabajaré en arquitectura de computadoras para mi primer trabajo.

En primer lugar, nunca obtendrá un trabajo si no sabe cómo codificar, y para eso son sus clases de programación introductoria. Luego, necesita saber cómo diseñar y construir sistemas más complejos, cómo probarlos y cómo trabajar en grupos: esto es lo que le enseñarán sus clases de segundo y tercer año. Además, necesitará un poco de delicadeza matemática y comprensión de la teoría de CS para saber por qué las computadoras funcionan de la manera en que lo hacen, y cómo los genios antes que nosotros las construimos. Solo después de haber tomado todos estos cursos tiene las habilidades y el conocimiento para captar temas más específicos en CS, y luego está más encaminado para seguir un campo específico en la industria.

Entonces, sí, todas esas clases de preparación son “inútiles” en el sentido de que no te prepararán completamente para tu primer trabajo. Para ser bueno en su trabajo, solo tiene que aprender a medida que avanza y adaptarse a los nuevos desafíos en el camino. ¿Esperas ser el mejor en algo cuando comienzas por primera vez? Por supuesto que no, es probable que incluso si ingresó a la universidad por ser un estudiante de secundaria de clase A, todavía tenga algunas malas notas aquí y allá al principio. Pero eventualmente, aprendiste a estudiar y administrar tu tiempo, y te convertiste en un mejor estudiante. Entrar al mundo laboral no es diferente.

Aprenda todo lo que pueda en sus cursos de pregrado. Realmente estudia mucho en tus clases introductorias, te hará más fuerte para temas más avanzados. Disfruta de tantas áreas como puedas y más una vez que hayas encontrado un área de CS que realmente te guste.

Mientras escribo esto en mi último día de clases, envidio a aquellos como usted que todavía tienen tantas opciones de lo que puede obtener de la universidad y tantas cosas interesantes que aprender. ¡Buena suerte en tus clases!

También lo pensé después de graduarme, pero hay muchos temas en informática con los que nunca trabajas directamente, sin embargo, tener ese conocimiento te da una ventaja.

Enseñarle a alguien programación y algoritmos requiere poco tiempo, pero enseñarle sobre compiladores, errores de compilación, sistemas operativos, problemas de sincronización, condiciones de carrera, etc., hace que el conocimiento de esa persona sea completo.

Si todo lo que sabes es programación, entonces todo lo que sabes es escribir código. Diseñando código, haciéndolo eficiente, descomponiéndolo, aprovechando otros lenguajes, todas estas cosas generalmente no se te enseñan directamente, pero con un conocimiento básico de CS que puedes aprender. Sin él, tendrás problemas porque entonces tendrás que aprenderlo de todos modos.

Si se encuentra con sus amigos que son ingenieros mecánicos que están aprendiendo programación, etc., vea cuánto tiempo lleva aprender la programación y, además, vea qué tan bien programan.

Los cursos de teoría son generalmente buenos porque no cambian rápidamente como cambian muchos de los marcos. Una buena comprensión de las matemáticas discretas y un curso de lógica de filosofía ayudarán. Pero la mayoría de los cursos de 101-400 son esencialmente prácticas para ayudarlo a familiarizarse con las herramientas que tiene la intención de utilizar. En todo caso, use los cursos para familiarizarse con la depuración del código escrito en cualquier idioma. Es un gran lugar para aprender a depurar. Depurar depurar depurar. Por lo general, no ofrecen un curso sobre depuración, ya que es similar a hablar mientras se camina.

La mayor parte de la otra basura son solo competencias generales para hacerte sentir realizado. Lo olvidará en unos meses a menos que lo use regularmente. Incluso la buena basura que olvidarás si no la usas regularmente. Los programas informáticos pueden ser basura si solo está buscando escribir código por dinero en efectivo. Sumérgete en algo divertido como el aprendizaje automático o la programación de la vida artificial si vas a gastar mucho dinero por un título. Use Treehouse si solo quiere ganar dinero.

Obtuve mi título hace mucho tiempo, así que solo puedo hablar por mí y luego. Los únicos cursos que encontré útiles después de la universidad fueron estructuras de datos y autómatas finitos. Sin embargo, las estructuras de datos podrían haberse realizado en un mes y no necesitaron un semestre completo. De hecho, me pagaron por calificar la tarea de mis compañeros y no tuve que hacerlo yo mismo. Los autómatas finitos eran principalmente intelectualmente interesantes, pero comprender las máquinas de estado a menudo es útil.

El resto fue totalmente inútil.