No, puedes ver esto muy duramente cuando entrenas programadores en programación funcional (FP).
En FP, un programa se entiende como una estructura algebraica y allí veo que muchos programadores experimentados se pierden.
Incluso en el nivel inferior, he visto construcciones lógicas horribles que demuestran claramente que el programador no tiene una comprensión sólida de la lógica básica *. En un sistema bastante grande tenemos un predicado “Tautología” (que es el cero aditivo en el cálculo lógico): aproximadamente el 80% de todos los programadores asignados al proyecto no lo obtuvieron.
- ¿Cuál es el significado de la teoría de la complejidad del caso promedio?
- ¿Qué es una función de punto fijo y cuándo son útiles?
- ¿Podrán las computadoras multiplicarse 99,999,999,999 veces 999,999,999,999?
- ¿Qué son los códigos ponderados y no ponderados?
- Binario (sistema de números): ¿Qué sucede si un byte tiene 16 bits en lugar de 8?
* En uno de mis primeros trabajos me dieron una cláusula if que no funcionó como se esperaba y tenía 80 (!) Líneas de largo. Para empeorar las cosas, era nuevo en el proyecto, así que hice todo lo posible para comprenderlo, desglosando la estructura lógica y logré simplificarlo a 4 líneas. Todavía no tenía sentido para mí, pero otro programador pudo detectar la falla en la lógica de inmediato. Pude rastrear el error en el control de versiones hasta un cambio hace 3 años donde un programador olvidó algunos paréntesis …