La programación es topología.
Un programador traduce sus soluciones a los problemas desde su representación dentro de sus cabezas a un lenguaje de computadora que luego puede representarse dentro de la cabeza de una computadora.
Si lo hacen correctamente, el programa de computadora funciona.
- ¿Cuáles son los algoritmos de detección de spam social de última generación?
- ¿Por qué procesar una matriz ordenada es más rápido que una matriz sin clasificar?
- ¿Cómo funciona un algoritmo de bogosort cuántico?
- ¿Qué algoritmo es bueno para fusionar notificaciones similares en los servicios sociales?
- ¿Qué es una explicación intuitiva de bosques aleatorios?
Si lo hacen principalmente correctamente, el programa de computadora tiene errores.
Si no lo hacen del todo correctamente, el compilador critica su código.
Por lo tanto, afirmaría que, para ser un buen programador, es más importante comprender los algoritmos y las estructuras de datos que comprender un lenguaje de programación dado.
Un lenguaje de programación es simplemente una herramienta.
Sí, es muy importante comprender los peligros y las limitaciones de sus herramientas, si quiere ser muy bueno en algo. Pero es más importante entender lo que está construyendo con la herramienta.
Para usar una analogía de la carpintería: si está construyendo una mesa, es más importante comprender primero los aspectos fundamentales de la “tabla”: un cierto número mínimo de patas, una superficie plana y nivelada, estructuras de soporte internas para evitar que se colapse, resistencia a la tracción de la madera, resistencia al corte, sujetadores que puede y no puede usar con éxito entre los componentes, dónde colocarlos, etc.
Sus herramientas disponibles van a limitar un poco sus opciones.
Pero igualmente …
Si no puede usar sus herramientas correctamente, su mesa se derrumbará bajo su propio peso. O la primera ardilla que aparezca hará que se derrumbe. O cualquier cosa que le pongas se deslizará al suelo y se romperá. Etc ..
Por lo tanto, es importante ser bueno en el uso de sus herramientas, también, es solo que, en el límite, una sierra es una sierra, y si tiene una mesa con tres patas, y son de diferentes longitudes …
Realmente no va a importar que los corte a la longitud incorrecta usando una sierra de mesa frente a una sierra de cinta frente a una sierra de mano frente a una sierra de calar frente a una sierra de calar, ¿verdad?
Porque en el límite, si no has entendido la “tabla”, o no has logrado dominar tus herramientas, incluso si entiendes la “tabla”: lo que has creado no es una tabla, ¿verdad?
Tu elección de herramientas solo se vuelve importante cuando te mueves del reino de “algún idiota con un hacha de mano” al reino de “artesano”.
Por lo tanto, trataría de no obsesionarme con “el mejor evasador de sierra de cinta” (Java?) Y preocuparme más por poder construir lo que quieres construir.