En mi opinión tres palabras; Abstracción, complejidad y alcance.
Déjame elaborar.
Abstracción: gran parte de los conceptos en programación son completamente abstractos sin equivalente del mundo real, sin pequeñas metáforas o símiles útiles para ayudar a la comprensión. Ningún objeto físico para estudiar y captar. Recuerde que el software es una abstracción: le permite controlar los electrones que fluyen alrededor de los transistores a velocidades absurdas.
Complejidad: el software es complicado, esto está relacionado con la abstracción, porque cuanto más alto es el nivel, más complejidad agregas. Puedes hacer lo mismo de múltiples maneras, pero el arte es saber cuándo usar cuál. Ha habido intentos de estandarizar la codificación, pero en realidad no hay dos programadores que escriban el código de la misma manera. Ah, y siempre puedes ir más profundo (nivel inferior) pero, una vez más, necesitas saber cuándo es adecuado hacerlo. Hay tantos conceptos que necesitas saber, comprender y recordar. Luego tiene sintaxis, diferencias de plataforma, habilidades de IDE, habilidades de matemáticas, habilidades de lógica, habilidades de resolución de problemas, depuración, optimización, bibliotecas para aprender, accesos directos, binarios (hexadecimal, octal), etc., etc.
- ¿Es bueno aprender a hackear?
- ¿Cómo les gusta aprender a los desarrolladores?
- ¿Cuál es la forma más rápida de aprender una canción de guitarra?
- Cómo aprender WordPress desde cero.
- ¿Es posible transformar tu carrera en unos pocos meses aprendiendo a codificar?
Alcance: los programadores pueden codificar todo, desde relojes inteligentes hasta automóviles, computadoras, teléfonos, televisores, PLCs, satélites, electrónicos, tabletas, páginas web, aplicaciones web, API, DLL, decodificadores, IoT (frigoríficos, tostadores, fitbits, televisores, controles de calefacción, vehículos, aire acondicionado, cualquier cosa que pueda controlar de forma remota a través de Internet), bases de datos, big data, análisis, IA, heurísticas, cohetes, marcapasos, robótica, juegos, investigación científica, modelado, hardware, empresas, compiladores, enlazadores, Las lenguas mismas y mucho, mucho, mucho más.
¿Como puedes ver? Es por eso que nos especializamos (a pesar de que Robert Heinlein ha recibido “la especialidad es para los insectos”) y los programadores con un amplio conjunto de habilidades son personas muy buscadas y muy bien pagadas.