La universidad a la que quiero asistir tiene un lugar donde C ++ solo puede ser tomado por las carreras de ingeniería y no por las carreras de CS. ¿Por qué hacen eso?

No cambies de carrera solo por un lenguaje de programación.

Los programas de ciencias de la computación están diseñados para enseñarle algoritmos, patrones de diseño, etc. Debido a esto, algunas universidades usan un lenguaje de nivel superior como python para enseñar a los estudiantes, para que puedan enfocarse más en la solución de problemas y el desarrollo de soluciones en lugar de tener que luchar inicialmente. Con la sintaxis de un lenguaje. Más adelante, puede tener la opción de tomar un curso donde aprenderá otros lenguajes y paradigmas de programación y aprenderá cómo aprender un idioma.

Ahora, es posible que desee cambiar de especialidades dependiendo de lo que planea hacer con C ++ y las principales de EE tienden a usarlo porque está cerca de C, que a su vez está “más cerca del metal” para los sistemas integrados y demás. Realmente no permitiría que un idioma elija su especialidad a menos que tenga un objetivo muy preciso en mente que solo se puede lograr mejor con C ++.

No cambiaría de major solo por eso.

Los ingenieros deben aprender algún lenguaje de programación. El departamento de ingeniería de tu universidad ha optado por C ++ y es una buena opción. El departamento de CS probablemente le enseñará al menos dos idiomas, uno de los cuales probablemente será uno de procedimientos / OO (como Java).

El primer idioma que aprendí en realidad fue ML, que es funcional y bastante legible. Si, tal vez, el departamento de CS de tu universidad le enseña a Haskell, confía en mí, ¡querrás tener la mano para ese curso!

Lo bueno de C ++ es que puede tratarlo como si fuera C (de hecho, eso es exactamente lo que hace Arduino) y luego aprender características adicionales, como la POO, incluso la herencia múltiple (ya sea una característica o un defecto, lo haré). diferir hasta más tarde).

Dicho todo esto, si se especializa como ingeniero, entonces, como usted dice, podrá ser menor en CS, y no hay tanto CS que necesite. Por ejemplo, los sistemas operativos y gráficos de computadora son temas importantes de CS, pero no tan fundamentales como dicen los algoritmos o bases de datos.

No todos los ingenieros (como en los estudiantes con esa especialidad) aprenden a programar bien, pero aquellos que toman los conceptos de ingeniería clásica y los aplican en el lugar de trabajo pueden convertirse en excelentes desarrolladores (o ingenieros en el sentido que se aplica al desarrollo de software).

Tendrás que averiguarlo por tu cuenta preguntando a la universidad. Como no identificas la universidad, todo lo que cualquiera puede hacer aquí es especular.

Que me alegro de hacer.

Pienso que es porque se espera que los estudiantes de Ciencias de la Computación se gradúen con un conocimiento más profundo de la Ciencia de la Computación que los Ingenieros de Computación. Se espera que sean MUY ágiles en soluciones, lo que significará que pasarán más tiempo en diferentes idiomas, diseño de compiladores, etc. Se espera que los ingenieros informáticos se gradúen con una comprensión más amplia de todo el sistema informático: hardware y software, por lo que no se espera que sea tan ágil o que pase tanto tiempo en diferentes idiomas.

Es una cuestión de pedagogía. Enseñar a los estudiantes de ciencias informáticas C ++ los distraería de las ciencias informáticas.

Sólo siéntate en esa clase. Si alguien pregunta solo di que estás auditando.

Pero si quieres hacerlo de la manera correcta, obtén el permiso del profesor de la clase.

Es como un conocimiento fundamental. Después de administrar c ++, aprender otros idiomas o paradigmas es como un pequeño pedazo de pastel.