La universidad enseña C ++ estilo DOS, cómo lidiar con eso [cerrado]

19

Había estado programando durante muchos años, pero quería un diploma para hacerme más empleable. Después de haber pasado por la universidad una vez, no elegí una especialización completa en informática de 5 años, sino un programa de ingeniería de software más corto y más orientado a la práctica .

Esperaba que pudiera centrarse más en habilidades concretas que en teoría, pero aún tenía la idea de que a las universidades y los profesores les gusta que las cosas sean correctas, formales, académicas. Todavía es ciencia, ¿verdad? Incorrecto: me sorprendió lo descuidados que fueron muchos cursos de TI.

En un curso introductorio sobre C ++, fuimos probados en clichés como "por qué los globos son malos" y "por qué las constantes son buenas", después de escribir solo 1-2 programas. Anécdotas aleatorias sin contexto adecuado. Folletos contenidos system(pause/cls), getchy encabezados como conio.hy iodos.h. Una de las tareas era imprimir "caracteres ASCII" de 32 a 255 , con una captura de pantalla que mostrara dicha tabla impresa utilizando la página de códigos de Windows-1252, pero sin mencionar la codificación.

Pregunta : cuando una universidad / profesor parece estar usando herramientas y métodos inferiores y / o obsoletos, y el contenido que se enseña es casi incorrecto, ¿cómo lo maneja de manera constructiva y respetuosa, si es que lo hace?

Algunas respuestas señalan que debe mirar más allá de la programación, ya que es solo una herramienta para aprender sobre temas como estructuras de datos y algoritmos. Estoy de acuerdo con esta idea, pero en este caso no había realmente ningún plan detrás del estilo pobre. La mayoría de los cursos simplemente enseñarían otra "herramienta" sin mucha teoría de fondo o cualquier "panorama general". A menudo se sentía como si se hubieran reunido rápidamente solo por el hecho de ofrecer ese curso.


Me quedé con eso y finalmente me gradué. La calidad permaneció bastante baja en todo momento (con algunas grandes excepciones), y varios otros estudiantes se han quejado al respecto. Como era de esperar, he aprendido mucho más de proyectos personales y trabajos a tiempo parcial que de la escuela, sin embargo , el proceso de terminar la escuela y la etiqueta "estudiante de software" parecen misteriosamente útiles en sí mismos.

Toerndev
fuente
2
Según mi propia experiencia, aprenderá mejor, más rápido y más barato estudiando programación por su cuenta y obteniendo ayuda de los foros. No es raro que el programa universitario esté desactualizado. En Rusia, Pascal todavía se enseña en algunas universidades (aunque me gusta el idioma y no lo veo como algo completamente malo).
WKS
@WKS: Creo que Pascal es un muy buen lenguaje de enseñanza para aprender sobre principios (de programación de procedimientos) que no están desactualizados en absoluto. Los cursos universitarios no deberían perder el tiempo enseñando un lenguaje de programación en particular, sino más bien enseñando paradigmas (de procedimiento, orientados a objetos, funcionales, lógicos, etc.).
Giorgio
Sí, por supuesto, @Giorgio, el lenguaje de programación elegido como herramienta de enseñanza no importa, sin embargo, uno debe esperar que las prácticas de programación presentadas sean sólidas y actualizadas.
glampert
La mayoría de las universidades enseñan a estudiantes universitarios con el objetivo de permitirles tener éxito en la obtención de una maestría. La mayoría de los programas de maestría enseñan a estudiantes de maestría con el objetivo de permitirles tener éxito en la obtención de un doctorado. La mayoría de los programas de doctorado tienen como objetivo ayudarlo a convertirse en un investigador exitoso.
Rob P.
@glampert: La programación procesal no ha cambiado después de la introducción de Pascal. Aún mejor, Pascal fue diseñado como un lenguaje de enseñanza, por lo que no tiene muchos trucos que pueden ser útiles en la práctica, pero son una gran distracción al aprender cosas nuevas. Así que Pascal está actualizado en lo que respecta a la enseñanza de la programación imperativa. Por supuesto, uno podría querer enseñar otros paradigmas, como la lógica orientada a objetos, funcional: luego hay que buscar otros lenguajes, por ejemplo, Python, Java, Haskell, Scheme, Prolog, ...
Giorgio

Respuestas:

34

Las matemáticas y la programación son cosas totalmente diferentes. La matemática es ciencia, la programación es técnica. En el mundo académico, la programación es algo que debes saber para poder lidiar con las cosas reales, la que realmente es interesante y importa: los algoritmos.

¿A quién le importa si el compilador es antiguo y usas systemllamadas? ¿A quién le importa si tienes Linux y no Windows? Bueno, los profesores no, eso es seguro. Y no deberían, de verdad. No esperes convertirte en un programador profesional de cursos en la institución académica. Para eso no vas allí.

Es cierto que el compilador que espera que uses es antiguo, y la suposición sobre el sistema operativo es anacrónica y problemática. Puedes subirlo, y tal vez sea tratado. Pero no porque el curso sea incompatible con la industria, sino porque causa una dificultad inmediata a los estudiantes. Ve a buscar ese viejo compilador ahora y tenlo funcionando en tu MacBook ...

En general, los estudios académicos no deberían desperdiciarse en el aprendizaje de C ++ y Android, debería aprender las cosas reales de informática allí. No tendrás otra oportunidad para eso. ¿Androide? Descargue Eclipse con el ADT y comience a trabajar en él en casa, como yo. No necesito escuela para eso.

Creo que no está bien esperar el desarrollo técnico de las universidades. Especialmente no las universidades de investigación. Se puede decir que un lugar que solo ofrece solteros debería estar más orientado a la industria, pero las universidades de investigación quieren investigadores. Los profesores buscan posibles estudiantes de posgrado y candidatos a doctorado, no excelentes programadores. Así que creo que debe establecer su nivel de expectativas en consecuencia.

littleadv
fuente
3
Tengo un problema con su respuesta: "En general, los estudios académicos no deberían desperdiciarse en aprender C ++ y Android, debería estar aprendiendo todo lo relacionado con la informática". - Sin conocer al menos los conceptos básicos de un lenguaje de programación, las cosas de CS no tienen sentido, y es demasiado fácil de aplicar de la manera incorrecta.
Izkata
44
@Martin e izkata: programar en DOS en C ++ usando el compilador del siglo anterior no significa que no conozcas la programación. Simplemente significa que está utilizando herramientas obsoletas, pero si necesita implementar árboles RB, ¿a quién le importa? Está desactualizado para la industria, pero los programas se ejecutan y hacen lo que se supone que deben hacer, eso es lo suficientemente bueno.
littleadv 03 de
3
@littleadv: el OP escribió "eso parece antiguo según lo que he leído". lo que me sugiere que tuvo que buscar en otro lugar que los folletos relevantes para descubrir que esto es obsoleto y no portátil. Claro, muchos, si no todos los compiladores tienen bibliotecas adicionales no estándar, pero si te enseñan a aquellos sin que te digan que no son estándar, creo que eso es malo, y eso cuenta tanto para cosas nuevas como viejas, e incluso para C ++ 11 cosas ya que por el momento C ++ 03 es el estándar más reciente ampliamente compatible.
Steve314
3
@littleadv - Bueno, tal vez tendremos que aceptar estar en desacuerdo entonces. Aunque hubiera pensado que un informático necesita ser un pedante sobre los detalles, y los pocos segundos que toma señalar que algo no es estándar son consistentes con eso y de ninguna manera son una gran dificultad. ¿Cómo te sentirías si un profesor de CS usara sus propias anotaciones ad-hoc mezcladas con las matemáticas y no lo señalara? Después de todo, es otro aspecto del mismo problema: si otros científicos informáticos pueden entenderlo. El código lo leen tanto las personas como los compiladores.
Steve314
44
@littleadv - Nunca dije que el OP le dijera a conio.h es estándar - Sugerí que tal vez no le hayan dicho que no era estándar, e incluso entonces dijo "Si dejan en claro cuáles son los trucos no portátiles, eso es probablemente OKAY.". La forma en que me enseñaron incluso la ciencia básica es que usas términos estándar, o si debes usar términos no estándar, defines lo que significan. En las lecciones de ciencias de mi escuela, incluso usar centímetros era contrario a las reglas: no son unidades SI. Para mí, el uso de bibliotecas no estándar no parece ser diferente. El significado del código en informática no debe ser ambiguo.
Steve314
19

La informática es para programar lo que la física es para la carpintería.

Si quieres convertirte en carpintero, estudiar física no lo hará posible. Le enseñará muchas cosas interesantes, que podría aplicar a su trabajo, pero no le enseñará cómo ser un buen carpintero. Para eso, tendrás que aprender el oficio de la carpintería.

Del mismo modo, si quieres convertirte en un buen programador, tendrás que aprender el oficio de la programación . Desafortunadamente, no hay ninguna institución que emita ningún tipo de certificación. Básicamente, esto es algo que tendrá que hacer por su cuenta, con lo que sea que ayude a las personas que pueda encontrar. Para ti esto significa repetición y reflexión. Escriba mucho código y luego vuelva a mirarlo. También tome tiempo para leer el código de otras personas. Considere participar en proyectos de código abierto.

A las universidades no les importa mucho la programación y menos aún los detalles que cambiarán en los próximos años. Lo que ves en tu escuela es que han elegido un entorno de programación (uno malo, pero eso no es tan importante) y ahora te lo muestran, para que tengan un marco de referencia en el que puedan enseñarte varias técnicas de programación. Se puede argumentar que el marco de referencia es deficiente y que incluso el idioma es una elección extraña. Desde su perspectiva, probablemente no importe, porque se elige de manera bastante arbitraria.

back2dos
fuente
2
¿Qué tal la física es para la ingeniería? Los programadores deben comprender los principios de CS para aplicarlos al diseñar programas de la manera en que un ingeniero necesita comprender la física para diseñar edificios, aviones y procesos químicos.
Jay Elston el
3
@JayElston: la física es para la ingeniería, lo que la informática es para la ingeniería de software, que comprende análisis, diseño, planificación, implementación, control de calidad, etc. mientras que la ingeniería comienza a descubrir qué es lo que realmente quieres hacer.
back2dos
Todavía me gusta una de las citas de mis profesores "La ingeniería es el arte de aplicar la ciencia para resolver problemas".
Chris O
1
@ Chris: Quizás, entonces, la ciencia es el arte de crear nuevos problemas.
JasonTrue
@JasonTrue: Bueno, uno podría argumentar que la ciencia es el arte de crear mejores problemas;)
back2dos
9

No hay nada de malo en aprender 'estilo DOS'. Estoy seguro de que muchos de los veteranos aquí comenzaron en DOS, o incluso con sistemas operativos anteriores, escribiendo programas basados ​​en líneas, y se han ajustado muy bien. El mundo de la computación cambia tan rápido que no me obsesionaría con detalles como qué biblioteca se utilizó para qué.

En realidad, sospecho que la razón por la que tenemos un mundo lleno de programadores que pueden decirte qué es la inyección de dependencia , pero luchan por responder a FizzBuzz , es porque muchos programadores no pasan mucho tiempo en ese nivel básico.

Parece que esta es una introducción a la programación, por lo tanto, no se preocupe. Aprende los conceptos básicos y lo harás bien. Si estás interesado en otras plataformas, expórtalas tú mismo. Eso es lo mejor de la programación.

Gran maestro B
fuente
5

¿Cómo puedes lidiar con eso? Descargue libros electrónicos de programación o videos en streaming, pruebe los ejemplos usted mismo. No dependas de tus profesores. La programación es altamente aprendida por su cuenta.

LEMUEL ADANE
fuente
1
La programación es como tocar el piano. Necesita un maestro que le enseñe cómo hacer las cosas y mucha práctica para hacerlo bien. Creo que hay muy pocos pianistas autodidactas de fama mundial.
77
Qué analogía más extraña, ciertamente hay muchos programadores de autodidactas altamente calificados.
ocodo
@Slomojo True, y he conocido a algunos de ellos. Son una raza extraña, excelente en lo que saben. Lo difícil radica en la amplitud de los problemas que encuentran. Ocasionalmente, un problema tiene un camino mucho más corto hacia la solución cuando conoces algún rincón de la informática y, sin embargo, esas personas talentosas tienden a seguir martillando las únicas formas que conocen, que finalmente parece fuerza bruta. Un ejemplo, un DFA resolvió un problema que era "difícil de resolver" para un autodidacta en dos días, con pruebas (¡en TCL / TK para arrancar!). Dos semanas después, todavía no lo entendían, con una explicación.
Edwin Buck
4

Bueno, muchas universidades tienen profesores de programación de mala calidad. Fui a una de las mejores escuelas de posgrado de mi país y aprendí a hacer sentadillas en programación. Supongo que la mayoría de las unidades son así porque los programadores realmente buenos optan por trabajos mejor remunerados (no docentes). Debería tomar un pequeño proyecto e intentar codificarlo usted mismo. Puede obtener consejos de muchos foros como este. Esa podría ser una mejor manera de aprender a largo plazo.

Jan S
fuente
Un buen consejo, por supuesto, estoy totalmente de acuerdo. Es solo el diploma ... :)
Toerndev
@gaidal: ¡Sí! eso es lo que obtuve de la escuela de posgrado - el nombre de la marca: P (aunque esperaba mucho más cuando me uní)
Jan S
2
La universidad no se trata de aprender a programar, sino de aprender los conceptos de lenguajes de programación y, más en general, de informática. Cuando tuve que hacer mi proyecto de sistemas operativos en la universidad, me dijeron: va a estar en C, el libro está en la biblioteca, ve a buscar el libro y aprende. La programación es práctica y no es tarea de la universidad enseñarte eso.
Giorgio el
1
Sobre trabajos mejor remunerados, eso es cierto. Un amigo mío que enseña en la universidad una vez se quejó: "Les enseñamos a programar y luego ganan más de lo que ganamos, ¡debería ser al revés!"
Giorgio
3

Creo que la Universidad debería enseñar conceptos abstractos de lenguajes de programación, algoritmos, etc. y no debería ser el lugar donde aprendes programación: la programación es una actividad muy práctica y solo puedes aprenderla haciendo.

Durante mi estudio aprendí los conceptos básicos de programación en Pascal, luego tuve un proyecto en C (tuvimos que aprender el lenguaje por nosotros mismos) y luego tuve un curso sobre conceptos de lenguaje de programación (procedimental, orientado a objetos, funcional, lógica) . Era folklore que en MSDOS tienes conio.h o punteros lejanos, que no tienes en un sistema UNIX. Esto era lo que los alumnos discutíamos sobre una cerveza, no era algo que se discutiera durante las clases porque no era tan importante. La enseñanza universitaria se centra en el conocimiento abstracto y general y evita entrar en detalles: los ejemplos y detalles se presentan solo para ilustrar las cosas generales.

El ejemplo que dio sobre ASCII versus Unicode y la biblioteca MSDOS conio.h significa que cada entorno de programación tiene su forma particular de hacer y organizar cosas. Si programa en C ++ en Visual Studio, tendrá que usar otras bibliotecas, algunas de las cuales no se encuentran, por ejemplo, en Linux. Entonces, si el curso fuera en Windows 7 / Visual Studio, algunas personas podrían quejarse de que sería mejor hacerlo en Linux / GCC. Pero, en mi opinión, este no es el punto.

Por lo tanto, creo que debes tratar de no distraerte con los detalles y concentrarte en los conceptos generales que cubre el curso. Por ejemplo, que en la mayoría de los lenguajes de programación necesitará alguna biblioteca para implementar la E / S de la consola y que, dado un entorno de programación, tendrá que resolver su problema con las herramientas que tiene a mano. Tal vez esto le parezca bastante obvio y tenga la impresión de que realmente no está aprendiendo algo porque ya tiene algún conocimiento previo (esto puede suceder), pero no tuve la impresión de que está asistiendo a un mal curso.

Giorgio
fuente
Gracias, recordaré que no crees que sea suficiente para decir que es un mal curso. En una nota al margen, no quise decir que debería estar en Linux, solo que él podría hacer un esfuerzo para informar a los estudiantes sobre las diferencias y que hay un estándar.
Toerndev el
Estoy de acuerdo con usted en que sería una buena idea informar sobre otros sistemas. Eso también depende de la experiencia del profesor: pueden sentirse incómodos al hablar sobre un entorno con el que no están familiarizados. Por ejemplo, estoy en casa con Windows y Linux, pero evitaría MacOS porque, aunque sea un sistema operativo muy bueno, nunca lo he usado. Tal vez podría intentar preguntar si pueden ofrecer una breve comparación entre diferentes entornos de C ++: solo algunos ejemplos para tener una idea de lo que puede ser diferente y lo que sigue siendo el mismo. Por ejemplo, puedes jugar con sizeof en MSDOS y Linux.
Giorgio el
2

Las universidades están dando las bases. Una vez que es fuerte, puedes construir rascacielos encima de él. Aprendí BASIC, C y C ++ durante mis días de universidad. Más tarde, cuando proyecté en Visual C ++, creí que era un mundo completamente diferente. Más tarde me di cuenta de la diferencia entre Framework e Idiomas.

Elija una universidad adecuada donde brinden el desarrollo enfocado de su campo de computación deseado. Lo que puede ayudarte más adelante en tu carrera.

sarat
fuente
2

¡Las copias impresas llenas system("");son realmente muy buenas! Me sorprende que la gente no sepa nada sobre estas funciones hoy en día.

system("pause"), y te deshaces de todas las trampas de las funciones getX. system("cls"), y acabas de guardar una página de código. system("mkdir foo")y acaba de guardar 2 páginas de asignaciones de búfer, divisiones de ruta, _makepath_ss, límites de 256 rutas, toneladas de salidas de error, etc.

Además, el código es tan simple que un mono lo entenderá.

 if(!system("mkdir foo"))
     //booo and exit`

La escuela de perversiones polimórficas es lo que debería estar prohibido por ley.

PD: Además, con el debido respeto, me cuesta mucho aceptar que a las personas se les enseñe C ++ con excepciones y todo virtual como algo BUENO, porque tiene más trampas y minas terrestres de lo que puedes imaginar, e incluso Bjarne Stroustrup evangeliza excepciones como algo súper fácil y seguro, mientras que en realidad son una mina nuclear.

Ver análisis sobre Misra-C ++ y JSF-C ++. Y http://blogs.msdn.com/b/oldnewthing/archive/2005/01/14/352949.aspx . Soy demasiado vago para encontrar todos los artículos restantes hoy.

Dicho todo esto, soy desarrollador de c ++ y disfruto de muchas funciones y del lenguaje en general.

Descifrador
fuente
1
No estoy seguro que estaría de acuerdo que el fomento de forma implícita a los desarrolladores sin experiencia para saltar directamente al sistema sin ninguna idea real de las trampas es una buena idea ...
deworde
@deworde: Es lo mismo que escribes en una consola, no creo que puedas hacer que las cosas sean menos propensas a errores y seguras.
Codificador
Sí, pero cuando lo escribe en una consola, sabe (por ejemplo) dónde se encuentra, con quién se está ejecutando, con qué tipo de máquina se está ejecutando y, lo más importante, POR QUÉ LO ESTÁ HACIENDO. El programa no necesariamente tiene conocimiento de ninguna de estas cosas, y alguien que ejecute el ejecutable no sabrá que tiene que verificarlo antes de ejecutarlo.
deworde
@deworde: No exactamente, el comando EraseFile aún heredará los permisos del proceso, por lo que es igualmente fácil equivocarse con cualquiera de los comandos.
Codificador
1

Mi sugerencia puede sonar por ahí, pero escúchame ... Cambiar de especialidad.

En mi experiencia en la academia, la especialización en informática fue una mirada de muy bajo nivel a lo que hace que las computadoras funcionen. Comenzó con un manual básico en C ++ para asegurarse de saber qué era un programa, y ​​los conceptos básicos de la memoria y la computación detrás del programa, y ​​luego aprendió conceptos de ensamblaje, sistema operativo, ingeniería eléctrica, diseño digital, etc. este grado y busque trabajo con NVidia o AMD, o Lockheed; en algún lugar donde están haciendo nuevo hardware, que necesita a alguien que pueda entender ese hardware en un nivel lo suficientemente bajo como para escribir los controladores y el software de control.

Parece que lo que quieres es un curso de estudio que, en mi universidad, se llamaba Gestión de sistemas de información. Ese es el curso que seguí; enseñó programación en Java, VB.NET, C # y algunos PHP y otros scripts web en el camino. También requería cálculo (pero no en el mismo grado que CS), contabilidad, finanzas, estadísticas, comunicación empresarial, OO A&D, diseño de bases de datos y análisis de sistemas. Obtuve un BBA en lugar de un BS, y tenía las herramientas básicas para comenzar a trabajar como desarrollador de software web o Windows.

Lo que la especialización en "Ciencias de la Computación" te prepara para hacer depende en gran medida de la universidad que lo ofrezca. Parece que está en un camino temprano para obtener una visión muy anacrónica y de bajo nivel de las computadoras que no suena como lo que busca después de su educación. Le insto a que mire a su alrededor en la universidad y encuentre un curso de estudio que se centre más en el tipo de trabajo informático que querrá realizar después de la escuela.

Pase lo que pase, su curso de estudio comenzará en una escritura de programa muy básica, "a nivel de consola". El idioma no importa; lo que te enseñan es programación básica de procedimientos; cómo pensar en pasos lo suficientemente pequeños como para que la computadora pueda seguirte paso a paso (porque la computadora no da nada por sentado y no puede seguir la mayoría de los saltos humanos en la lógica). A partir de ahí, avanzará a la programación orientada a objetos (en lugar de tener una función larga que haga todo, es mucho más fácil mantener varios "objetos" de código más pequeños, que representan el estado y la lógica de los objetos del mundo real), luego programación basada en eventos ("No nos llame, lo llamaremos"; su programa básicamente se inicia, le dice al sistema operativo que configure su IU gráfica inicial,

KeithS
fuente
Gracias, sí, lo consideraré. Si siento que va en la dirección incorrecta, puedo cambiar más tarde, los cursos básicos deberían ser compatibles entre universos.
Toerndev
Cuidado con esa suposición; Cambié las especialidades de CS a MIS, y ninguna de las matemáticas que ya había tomado se transfirió porque la escuela de negocios tenía una pista de matemáticas completamente separada. Inglés, ciencias, humanidades, sí, eso se transfirió.
KeithS
1

Los cursos de informática no te enseñarán programación. Este es un paseo por el parque en comparación con parte de la programación que hice en mi curso de CS.

El problema fundamental con esto, en mi experiencia, es que no hay prácticamente ningún lugar que te enseñe a programar en un nivel equivalente, por lo que no tienes elección en absoluto.

DeadMG
fuente
0

Creo que puede haber cierta confusión sobre qué y por qué estás estudiando.

Parece que estás estudiando un programa introductorio de ciencias de la computación. Esto está dirigido a personas con experiencia mínima que están aprendiendo los conceptos básicos sobre cómo funcionan las computadoras en un nivel bajo.

También parece que eres un programador semi serio o profesional. Has estado programando durante 10 años y te sientes cómodo en 3 idiomas. Parece que sabes lo que estás haciendo al menos lo suficiente para trabajar como parte de un equipo. ¿Te sientes fuera de lugar en este curso? ¿Los otros estudiantes tienen un nivel de experiencia o habilidad similar al tuyo?

¿Qué pretendes sacar de este curso?

¿Estás justo después de ese 'pedazo de papel'? Si este es el caso, entonces no dejes de intentar conseguir un trabajo mientras estudias. Solicite trabajos, dígales que es un programador competente y que está estudiando porque necesita el papel para conseguir un trabajo. Si lo contratan, considere abandonar: una vez que tenga un trabajo profesional, ya no necesitará ese pedazo de papel. Acepte un salario más bajo de lo normal, porque es mejor que le paguen por aprender (en el trabajo) que pagar por aprender en la escuela, y también aprenderá más rápido. Después de un año o dos, estarás mayormente al día, y luego puedes solicitar un aumento salarial decente o puedes buscar otro trabajo porque tendrás experiencia.

¿O estás tratando de aprender algo? Entonces deja de juzgar a tu profesor. Como un maestro de secundaria memorable solía decir 'SENTATE, Y CÁLLATE'. Está casi garantizado que el profesor tiene una experiencia y un conocimiento inmensamente mayores que usted y que podría aprender muchísimo de él. Si va demasiado lento para usted, intente obtener crédito para estos cursos introductorios en función de su aprendizaje y experiencia previos.

¿Pero estás en el camino correcto? También podría aprender mucho del profesor de literatura o de un profesor de historia ... no particularmente relevante. Tal vez no desee "ciencias de la computación", sino habilidades más prácticas y del "mundo real". Prueba la "ingeniería de software". Mira otras instituciones para un curso más centrado.

Al igual que cuando comienza un nuevo trabajo, una clase o curso de estudio puede ser muy difícil de revisar desde el exterior. Parece que estás en un curso que no te está dando lo que esperas. Reconsidera tus opciones.

Kirk Broadhurst
fuente
Gracias, he pensado en esto y creo que tienes mucha razón sobre estas dos opciones. Lo primero es más cierto para mí, y buscaré trabajo mientras espero para ver si los cursos se vuelven más interesantes. En realidad, es una educación en ingeniería de software, que elegí sobre la informática ya que quiero ponerme al día antes y aprender trabajando. Quizás eso explica por qué esperaba un poco más de "habilidades del mundo real". :)
Toerndev
Solo unas pocas observaciones de mi pasado universitario: estudié un curso en el que teníamos la "programación 101" en el calendario, esa parte fue molestamente aburrida para mí. Pero otros cursos fueron interesantes (física, mecánica, ...), por lo que incluso si una conferencia es aburrida, es posible que no se aplique a todo el programa y que para las otras partes valga la pena pasar por el dolor. Pero me salí. Mientras tanto, aprendí que a veces ese papel habría sido beneficioso, aunque el papel no significa que estaría mejor en mi trabajo (tengo un buen trabajo, buen salario, ... así que no está mal ;-))
johannes
0

Pensé que muchas de las respuestas a esta pregunta fueron decepcionantes. Volvieron a la vieja y cansada discusión sobre CS vs Programación, etc. Puede que sea así, pero me parece que el curso en el que se encuentra el OP tampoco está enseñando.

Estaba en la situación de haber trabajado ya como programador y haber estudiado bastante solo, antes de estudiar CS a tiempo parcial en la universidad. Busqué cuidadosamente, pero en general encontré que el plan de estudios era una pérdida de tiempo. Además, no me dejaron saltear cursos a pesar de tener experiencia profesional en el área.

En mi experiencia, una proporción significativa de profesores son bastante vagos y utilizan un plan de estudios obsoleto. Sinceramente, parece que estás perdiendo el tiempo. Incluso me pregunto si completar el diploma te ayudará a encontrar un trabajo.

Dudo que pueda hacer mucho para cambiar las cosas sobre su curso. Puede complementarlo con el estudio por su cuenta. O simplemente olvídate de todo, estudia CS independientemente y haz algunas certificaciones de la industria también.

Debo agregar que no tengo idea sobre el valor del diploma en el mercado laboral de su país. Si el diploma en sí mismo es valioso a pesar del contenido, entonces es posible que solo tenga que soportar un plan de estudios que de alguna manera carece.

Antonio2011a
fuente
No vi esto antes. ¡Me alegra ver a alguien decir exactamente lo que estaba sintiendo acerca de algunas respuestas (su primer párrafo)! Sí, la enseñanza es bastante inútil, ya no asisto a las clases, pero solo entrego los programas que necesito escribir. Lo hago a mi manera (que generalmente es bastante malo, de CL a C ++), encuentro muchas cosas que no están en el plan de estudios y pido consejos a los amigos programadores en lugar de al profesor. De esta manera es realmente divertido. Sin embargo, espero poder encontrar un trabajo antes de graduarme.
Toerndev
0

Tienen que atender a los estudiantes. La mayoría de los estudiantes no pueden programar. Así que no están obligados a ir allí técnicos.

También tienen sus propias áreas especializadas de investigación, pero no están enseñando eso. Y de todos modos, muchos investigadores no son buenos maestros, ¡así que podrías considerarte afortunado si están enseñando cosas que ya sabes!

De todos modos, no parece saber qué es la informática. No se trata de lo que es práctico para la industria.

barlop
fuente
-6

Le pediría (y luego insistiría) que devuelva sus tareas en c ++ estándar. Esto es completamente razonable ya que no puede completar las tareas de otra manera.

En cuanto al mal estilo; inevitablemente habrá algo de esto para empezar. Aprender a usar la biblioteca io estándar correctamente requiere bastantes funciones avanzadas de c ++, en particular plantillas e iteradores. Puedo ver por qué un profesor te haría usar funciones io muy simples para empezar. Sin embargo, no tendría miedo de preguntar sobre esto, muestra entusiasmo y un poco de luz en tus ojos. Su profesor debería poder tejer su pregunta en una conferencia futura en la que (con suerte) corrija sus primeros ejercicios.

Aunque lo dejaría así. Aunque c ++ puede ser un lenguaje independiente de la plataforma, con frecuencia no lo es. Aprender algunas funciones del sistema de Windows no es algo malo, especialmente si luego te entrenas para hacerlo según el estándar. En algún momento te encontrarás conio.hal mirar el código de otras personas, y es bueno saber lo que hace.

Tom
fuente
10
no, se te dan herramientas para hacer el trabajo, y es tu trabajo usar esas herramientas. Si tiene un trabajo donde todo lo que tiene es un XT de 15 años que ejecuta CP / M, exigiendo que acepten su código de Windows 7 de 64 bits tampoco funcionará, mejor acostúmbrese a eso lo antes posible.
Jwenting 03 de
2
@Ramhound Una universidad debería permitir completar el curso sin tener que comprar equipos costosos (como el sistema operativo Windows). Es perjudicial.
Tom
3
@ Tom, si estuviera enseñando Photoshop, esperaría que compraras Photoshop (que es muy costoso) y esperaría que compres libros de texto que son caros, no veo dónde es diferente. Y apuesto a que hay muchas computadoras en el campus que podría usar para la tarea sin comprar Windows (que, francamente, cualquiera que estudie CS probablemente debería tener ambas cosas, nunca se sabe dónde terminarán, las personas que programan en la pila de Microsoft de productos no tienden a usar Linux.)
HLGEM
3
@Ramhound Incluso si el profesor no ha dicho explícitamente por qué está usando rutinas simplificadas de E / S basadas en dos, probablemente podamos hacer una suposición correcta. Como Tom mencionó, las rutinas io de C ++ son relativamente complejas, por lo que ocultar detalles no es irrazonable en un curso de nivel de introducción. La decisión de utilizar una biblioteca específica de plataforma basada en Windows en lugar de una basada en * nix casi seguramente se reduce a las suposiciones de que la mayoría de los estudiantes usan ventanas no * nix, y que a más usuarios de Windows les costará comenzar con * nix que viceversa.
Dan Neely
55
@gaidal: las reglas están ahí por una razón. Si comienza a trabajar en algún lugar y decide que, en lugar de una biblioteca patentada, utilizará el estándar porque "los estándares están ahí por una razón": se encontrará rápidamente desempleado. Tome este curso como un ejercicio de cumplimiento de estándares de codificación. No siempre te van a gustar.
littleadv el