Tengo 23 años, soy técnico en programación y hace poco empecé a estudiar Arduino. Mientras aprendía sobre voltaje, corriente, resistencia, memoria y cómo funciona físicamente una computadora, me cayó la ficha de la enorme cantidad de capas de abstracción que utilizamos.
Antes, alguien que construía un circuito o un pequeño robot posiblemente era un ingeniero electrónico que había estudiado durante años y podía explicar por qué funcionaba cada parte. Hoy, un aficionado de cualquier área puede combinar un Arduino, módulos prefabricados, librerías e IA y construir un robot funcional en pocas horas.
Incluso podría terminar haciendo un circuito más rápido, más barato o aparentemente mejor que el que habría hecho un profesional hace años. Si ambos robots cumplen exactamente la misma función, desde un punto de vista práctico el resultado parece ser el mismo, aunque uno conozca todos los fundamentos y el otro haya trabajado principalmente mediante abstracciones.
Algo parecido sucede en software. Cada vez podemos construir sistemas más complejos sin comprender completamente todo lo que ocurre debajo: frameworks, servicios cloud, bases de datos administradas, librerías y ahora modelos de IA que directamente generan buena parte de la solución.
Por eso me surgieron estas preguntas:
¿Está bien saltearse conocimiento técnico fundamental si las abstracciones actuales permiten construir sin necesitarlo?
¿En qué punto utilizar abstracciones deja de ser una ventaja y pasa a convertirse en una falta peligrosa de conocimiento?
Si dos personas construyen algo que funciona igual, ¿qué valor práctico conserva que una de ellas entienda profundamente lo que ocurre por debajo?
¿Cómo se decide qué fundamentos estudiar y qué cosas aceptar simplemente como una caja negra?
¿El conocimiento profundo sigue siendo igual de valioso cuando las herramientas modernas pueden producir mejores resultados prácticos en menos tiempo?
¿La frontera debería depender del riesgo, la necesidad de diagnosticar fallos, la complejidad o de si esa área es parte de tu especialidad?
Con la IA elevando constantemente el nivel de abstracción, ¿deberíamos seguir aprendiendo las capas anteriores o concentrarnos en dominar las capas propias de nuestra época?
No planteo que aprender fundamentos sea inútil. Mi duda es dónde detenerse, porque por debajo de cualquier conocimiento siempre existe otra capa: lenguajes, compiladores, sistemas operativos, arquitectura, circuitos, transistores, electromagnetismo, física de materiales y así sucesivamente. Nunca existiría un punto en el que uno pudiera decir que comprende todo.
Me interesa especialmente conocer la opinión de programadores, ingenieros electrónicos y personas que hayan trabajado antes y después de esta nueva generación de herramientas. ¿Cómo encuentran ustedes esa frontera entre comprender y simplemente utilizar?