Depende del nivel de abstracción con el que trabaje (entre ingenieros) o de si es una persona técnica o no técnica.
- Aquellos que trabajan en el lado del software podrían pensar que la ejecución de instrucciones en el procesador ocurre secuencialmente, una tras otra. No conocen los canales de instrucciones, la ejecución fuera de orden y otros detalles micro-arquitectónicos debido a que el proceso de ejecución es realmente muy complicado. Lo mismo ocurre con el funcionamiento de las GPU: son bestias.
- La gente piensa que escribir un simple compilador o un intérprete es un trabajo difícil. Pero no lo es. Simplemente tome “Estructura e interpretación de programas de computadora” y diríjase al Capítulo 4. Es fácil. Pero escribir un compilador de calidad de producción optimizador es difícil.
- Se trata de la pila de redes y el hardware: la mayoría de los programadores de aplicaciones piensan que la información se envía en paquetes. ¡Sí! Pero todo se reduce a señales eléctricas / ópticas que se transmiten a través de cables / aire. La cuestión es que los bits recibidos pueden ser erróneos y, a veces, los paquetes recibidos están fuera de servicio. Pero el programador de aplicaciones no puede / no debe ver todo esto.
- Se trata de almacenamiento: la mayoría de los usuarios piensan que su disco duro dura para siempre. Piense en un gran centro de datos con mucho almacenamiento, ya sea SSD, HDD, discos magnéticos y cintas, etc. ¿Crees que los datos permanecen allí para siempre? Piensa otra vez. Los discos fallan y es común. De miedo. ¿Eh ?. ¿Qué hay de tus datos? No te preocupes ¡No lo perderás!
- Los conceptos básicos de un sistema operativo son bastante fáciles de entender. Pero la implementación es extremadamente complicada.
- Los conceptos de los sistemas de gestión de bases de datos son simples de entender. Al igual que los sistemas operativos, su implementación es complicada: ¡piense en diseñar un plan de consultas y organizar el almacenamiento para que pueda recuperarse del disco lo más rápido posible!
- La gente piensa que la programación es simple y es igual a la sintaxis de aprendizaje y algunos conceptos básicos de un lenguaje de programación moderno y actual. Ahora piense en ello: aprender ABCD, memorizar un libro de gramática y un diccionario de algún idioma no lo convierte en un buen poeta / poetisa o novelista.