¿Es correcto mi nuevo estado de ánimo? Ingresé a la programación desde un punto de vista de programación algorítmica y, como tal, tengo una inclinación a querer saber cómo funcionan las cosas debajo. Pero ahora, después de un tiempo en el mundo de los desarrolladores, finalmente tengo que darme cuenta de que se trata menos de eso. ¿Lo que usted dice?

No diría que se trata menos de eso. Aprender cómo funcionan las cosas debajo tiene enormes ventajas. Esto incluye cosas como la optimización de la memoria, una mejor codificación, conocer la tecnología adecuada para usar y muchas más. Sin embargo, para ser más productivo, descubrirá que el compilador o el intérprete pueden ocuparse de todos estos conceptos mencionados anteriormente. Pero no todos. Por lo tanto, un programador que pueda desarrollar aplicaciones de budiness y que se preocupe menos y las estructuras de datos y algoritmos podría ser muy productivo que usted. Pero esto no siempre es correcto.

Hay momentos y escenarios en los que esos conocimientos son muy importantes y te harán destacar e incluso hacerte sentir orgulloso. Un programador de juegos verá más ventajas en el aprendizaje de estructuras de datos y algoritmos, un programador de hardware sabe lo importante que es ese conocimiento, también un hacker de kernel y muchos más.

Todo depende del dominio en el que desee residir. Si va a desarrollar aplicaciones de negocios toda su vida, entonces realmente no necesita mucho de ese conocimiento. Pero si vas a profundizar, como escribir controladores, programar un arduino, piratear el kernel, entonces ese conocimiento no tiene precio …

Elige tu destino.

Se trata de la reutilización del código. Si hay una implementación de un algoritmo o estructura de datos disponible en una biblioteca madura, a menudo le corresponde usarla. La alternativa es gastar innecesariamente tiempo escribiendo código, aumentando tanto la probabilidad de errores como la carga de mantenimiento para usted y los demás.

Ahora, a veces no hay una buena solución disponible. Tal vez las bibliotecas relevantes tienen licencias desfavorables, o están repletas de un montón de cosas innecesarias, o no son realmente aplicables a su situación, o lo que sea, y en tales casos, querrá escribir el código usted mismo. A veces hay una biblioteca de otro modo disponible, pero tiene un error, un error que usted, con su experiencia, puede identificar y corregir (al menos en el caso del software de código abierto).

Tener una base sólida en algoritmos, y una inclinación a hacer preguntas y excavar debajo de la superficie, le dará una idea mucho mejor de cómo escribir código bien estructurado y cuándo y dónde usar la reutilización (o reparación) del código de otras personas. .

Siempre hay un equilibrio entre el tiempo del desarrollador y el tiempo de la máquina. El tiempo de la máquina es barato, es decir, ejecutar una máquina durante 1 hora cuesta menos que pagarle una hora adicional para optimizar aún más el código, por lo que a veces optimizar demasiado no es una opción comercial sensata.

Encontrar este equilibrio es muy importante: recuerde lo que dice Knuth sobre la optimización prematura (“¡Es la raíz de todo mal!”) Y no intente escribir código súper optimizado de inmediato. Comienza con una solución “suficientemente buena” probada en un pequeño conjunto de datos, luego evalúa si es realmente lo suficientemente rápido para tu conjunto de datos completo y razona en consecuencia. Si es así, simplemente sigue adelante.