Todos somos diferentes, por lo que es difícil limitar los cursos que son “más difíciles”. Desafortunadamente, los profesores también pueden variar y afectar la dificultad de un curso. (Algunos cursos que fueron notablemente simples usando el libro de texto se volvieron notablemente desafiantes porque el maestro pasó todo el curso en desacuerdo con el libro y enfocándose en sus pensamientos).
Todos tienen una interpretación diferente de la dificultad. Algunas personas están más interesadas en el desarrollo front-end. En general, encontrarán que las clases de bajo nivel son menos atractivas. Por otro lado, algunas personas están más interesadas en el desarrollo de backend. Generalmente encuentran que las clases de alto nivel y las abstracciones son poco atractivas. Algunas personas tienen algo para las GUI, algunas para los sistemas operativos, algunas para los compiladores y otras para la teoría.
Muchas personas encuentran difícil cualquier clase donde aprenden un lenguaje ensamblador. Todo lo que puedo hacer es responder por mí. Me he dirigido a tres de las clases que ha enumerado en la descripción.
Sistemas operativos–> Increíblemente interesante y notablemente desafiante. Fui bendecido con un notable profesor que conocía el tema como su nombre. Definitivamente era una de mis clases favoritas, pero, como puedes imaginar, era de muy bajo nivel. Tuvimos algunos proyectos paralelos creando módulos de kernel de Linux. El proyecto más difícil fue construir un mapeador de memoria virtual. Mi compañero era un genio. Los dos estábamos perplejos por varias partes. Todavía estoy estudiando (como estudiante de segundo año), pero ella se graduó y logró varias rondas de entrevistas en Google.
- ¿Cuáles son algunas de las universidades que ofrecen la mejor estructura de cursos para una especialización en sociología de pregrado?
- ¿Qué clases debo tomar en UC Berkeley para prepararme para la investigación del aprendizaje automático?
- ¿Cuál es la diferencia entre Harvard Stat 110 (Probabilidad) y MIT 6.041 (Análisis de sistemas probabilísticos y probabilidad aplicada)?
- ¿Cuál es el mejor curso para hacer en finanzas (excepto CFA) si soy un contador público y no quiero un curso de tiempo completo (también estoy finalizando el CS)?
- ¿Por qué las personas que han aprobado su examen final de CA y son miembros del ICAI son considerados graduados?
Construcción del compilador–> El tema fue muy interesante, y la clase no fue demasiado difícil. Era el mismo profesor que los sistemas operativos. Sin embargo, cuando implementamos nuestros compiladores, el analizador de sintaxis con descenso recursivo fue un desafío. El analizador de sintaxis de nuestro lenguaje simplista se extendió a más de 500 líneas con llamadas recursivas. Un error al verificar el siguiente token o consumirlo arrojaría todo el programa. Me decepcionó cuando mi programa descubrió que cada programa es sintácticamente incorrecto. Después de identificar varios errores que consumían mucho tiempo, decidí que lo mejor era rehacer esta parte. ¡Finalmente funcionó!
Estructuras de datos y algoritmos–> Esta clase en su conjunto no es increíblemente difícil. El profesor fue muy bueno y muy servicial. Hay algoritmos que harán clic con usted y algoritmos que le tomarán un tiempo comprender. No espere que todo se implemente perfectamente cuando compila por primera vez.
Cada uno fue difícil de diferentes maneras. Si bien fue muy gratificante (y definitivamente lo disfruto), tendría que decir que los sistemas operativos fueron los más difíciles para mí.