¿Qué hace que un programa informático sea sólido?

  1. Una sólida base matemática . ¿Por qué funcionan los algoritmos? ¿Por qué es ese algoritmo mejor que este? ¿Cómo puedes pensar en máquinas concurrentes?
  2. Un amplio alcance de la enseñanza . En lugar de simplemente aprender semántica, o simplemente aprender compiladores, estará en la intersección de ambos y aprenderá cómo construir un compilador completo y correcto.
  3. Una mirada profunda a las cosas . En lugar de decir “la interconexión es un método para cortar el procesador en varias etapas para que funcione más rápido”, verá la implementación de un procesador interconectado, por qué funciona, etc.
  4. Un firme control de la realidad . En lugar de enseñar tonterías abstractas, te enseñan herramientas que realmente resuelven problemas reales . Extraen detalles tediosos de implementación, claro; así que en lugar de mirar todas las instrucciones x86 que esencialmente hacen lo mismo solo en un orden arbitrario, verá un procesador MIPS que es igual de poderoso. En lugar de tener líneas de caché de 64 palabras, le mostrarán líneas de caché de 2 palabras. Pero no abstraerán las propiedades conceptuales clave, por lo que no le mostrarán líneas de caché de 1 palabra, lo que ocultaría los problemas que ocurren cuando se realizan dos accesos a la memoria simultáneamente, ambos a la misma línea de caché, pero aún así a diferentes porciones de la caché línea.
  5. Velocidad . Al mismo tiempo que un programa débil le enseñará cómo hacer algunos programas simples en Java, un programa fuerte le enseñará cómo construir un compilador no optimizador para un pequeño dialecto C en Java. La razón por la que estos programas pueden ir tan rápido es porque tienen una base matemática sólida y se ven profundos.

Todo esto significa que los requisitos son mucho más altos. Necesita trabajar más, debe pensar más y debe mostrar más iniciativa. Pero al final del día, puede recurrir a sus amigos de los programas débiles y preguntar

“Hermano,

¿siquiera levantas ?

Un programa sólido es más que una lista completa de temas; incluye facultad de calidad y oportunidades para la investigación, y una comunidad intelectual fuerte que acoge e involucra a nuevos miembros.

mantén la calma y continúa, encuentra la forma que funcione mejor para ti, ¡solo hazlo!