tl;dr: NO. CS no es la carrera de ingeniería «fácil» de ninguna manera.
Voy a refutar partes de la actual respuesta principal, pero principalmente sólo los puntos de la descripción de la pregunta. Porque una de mis principales preocupaciones sobre las suposiciones que se hacen sobre las ciencias de la computación y los grados de ciencias de la computación es que es la ingeniería «fácil» o «EE diluida». Mi experiencia es que soy un estudiante de cuarto año de CS en un programa integrado de 5 años (por lo tanto, estudiante de último año / primer año de posgrado), así que creo que estoy bastante equipado para decir si este viaje ha sido fácil o difícil. Aquí hay una pista: fue definitivamente difícil y sigue siendo difícil.
Déjame tomar tus puntos uno a la vez:
- «La programación a nivel universitario es fácil»: Esto es fácilmente refutable. Si crees que la programación a nivel universitario es fácil, aquí está el documento «Paxos Made Simple», la versión más fácil de entender del documento original del protocolo Paxos. [1] Tómalo, léelo, elige el lenguaje de tu elección, e implementa el protocolo. En 2 semanas, mientras tomas otras clases y tienes otras actividades. No es imposible, pero por favor, compláceme diciéndome que es fácil. En una nota menos amarga, seguro que tu clase media de estructuras de datos y algoritmos puede ser bastante sencilla, quizá las matemáticas discretas te resulten fáciles, pero créeme: cuando llegas a cursos de nivel superior con material que nunca has visto antes, entonces no es fácil. Claro, tal vez el lenguaje de programación no es más difícil que el que usabas en la escuela secundaria o antes de la escuela secundaria, pero la forma en que debes utilizarlo y averiguar cómo implementar diferentes soluciones con restricciones y etc. hace que la programación a nivel universitario sea mucho más difícil. Realmente no sé cómo expresar esto… pero si necesitas más pruebas de que es una carrera difícil, estaré encantado de darte mis deberes.
- «Otras carreras de ingeniería programan como parte de sus títulos»: Esto es cierto. Otras carreras, no sólo las ingenierías, programan como parte de sus grados. La diferencia no es la amplitud, es la profundidad. Mientras programan, por lo que sé, no se les exige que conozcan la teoría de por qué funciona algo, sólo que funcione. Tampoco programan siempre en los mismos lenguajes: mis amigos ingenieros me pedían ayuda para programar en C o, a veces, en MatLab, mientras que en mis clases yo utilizaba cualquier cosa, desde C/C++ hasta Java, pasando por Python o Prolog. Los estudiantes de CS no son «mejores» que los de otras ingenierías debido a esta última afirmación: simplemente utilizamos el código y la programación de una manera diferente a la de ellos. Aun así, la carrera de ciencias de la computación es algo más que codificación. Incluso mirando el programa de cursos para el próximo semestre, hay clases como Inteligencia Artificial, Aprendizaje Automático, Procesamiento del Lenguaje Natural, etc. Si bien es cierto que tienes que programar en esos cursos, también hay conceptos y teorías que también tienes que entender.
- «Otras carreras de ingeniería’ la teoría parece más dura, y utilizan mucho más»: Esto es una opinión. No sé nada sobre la teoría en EE o Ingeniería Aeroespacial, pero la teoría en CS puede ser igual de difícil. Así que no creo que haya una respuesta objetiva a esto, aparte de que todas las carreras tienen teorías que son específicas de sus campos y, por lo tanto, es probable que sean más difíciles para los que no tienen experiencia. Y, lo sepas o no, en realidad usas teorías y conceptos en CS cuando estás programando (especialmente si estás tomando una clase como Sistemas Distribuidos o IA o PNL).
- «Muchos programadores pueden ser productivos usando prácticamente ninguna teoría en el día a día»: Aquí es donde me molesta: dices programadores, pero estás hablando de toda la carrera de informática. La informática no es sólo programación; sinceramente, cualquiera puede ser programador porque se puede enseñar a programar. Si quieres obtener un título en CS, te comprometes a aprender la teoría de por qué las cosas funcionan, así como conceptos de alto nivel como los sistemas distribuidos que quizás como ingeniero en [inserte una empresa de gran nombre o una start-up] nunca tocarás. Así que, si piensas que todo lo que la carrera de CS te enseña es cómo programar, entonces seguro que puedes creer esta afirmación, pero yo te digo que aprenderás mucho más con un título de CS que sólo «cómo programar». Tal vez algunos de los estudiantes más jóvenes no piensen lo mismo ahora, pero como estudiante de último año/primer año de posgrado, definitivamente hay conceptos y campos de investigación a los que estuve expuesto como estudiante de CS que no creo que hubiera encontrado por mi cuenta. Por supuesto, puede que no utilice mis (escasos) conocimientos sobre sistemas distribuidos durante unas prácticas, pero los conceptos me fascinan y, como aprendí el verano pasado, realmente entran en juego en el gran esquema de las cosas.
Abordando algo más que has mencionado sobre que los departamentos de teoría no son fuertes – creo que es un error común para la gente que es nueva en la carrera. Cuando tomé mi primer curso de matemáticas discretas en el departamento de CS, salí pensando «¿En serio? ¿Esto es en lo que piensan los teóricos de la informática todo el día?»… cuando en realidad sólo había rascado la superficie. Me aterra hacer cursos de teoría porque son muy difíciles. Te darás cuenta de que algunos departamentos de ciencias de la computación (en EE.UU.) nacieron de la ingeniería y quizá se centran en la practicidad, pero hay un buen número (¿tal vez un 50-50?) que nacieron de departamentos de matemáticas o teoría (como UTCS, mi departamento de origen) y tienen un fuerte énfasis en la teoría. Por lo tanto, una combinación de qué departamento creció el departamento de CS en cuestión Y el hecho de que como estudiante entrante realmente no tienes ni idea de lo que es la teoría de CS puede llevarte a pensar que la teoría de CS es fácil o que un departamento tiene un departamento de teoría débil.
Seguro, yo’probablemente soy parcial porque los últimos 3 (casi 3,5) años de mi vida los he pasado en esta especialidad. No he probado otras carreras, pero por lo que he visto, no creo que CS sea una carrera fácil ni mucho menos. Tal vez no soy un gran estudiante y, por lo tanto, mi opinión está sesgada. Pero, en realidad, estos cursos son difíciles, CS es una carrera dura, otras carreras de ingeniería también son difíciles y rigurosas.
Espero que esto se haya entendido bien, pero mi intención es decir que CS no es fácil y está a la par con otras carreras de ingeniería, NO decir que CS es más difícil que otras carreras de ingeniería. Sólo aclaro eso.
[1] La dificultad en este proyecto no sólo estaba en los detalles de implementación, sino también sólo en la comprensión del papel. Uf. Omg. Paxos.