¿Cuán relevantes son los fundamentos de CS (compiladores, análisis de algoritmos, estructuras de datos, etc.) en el desarrollo web profesional?

Creo que Zach Holman tiene una perspectiva interesante sobre el tema de la teoría clásica de CS en la programación profesional diaria.

En mi experiencia, creo que la teoría clásica de CS es una pequeña parte de lo que hace la mayoría de los desarrolladores de aplicaciones (lo que comúnmente llamamos programadores, codificadores o ingenieros, personas que crean aplicaciones de software, como http://quora.com) vs aplicaciones del sistema, como sistemas operativos o Git).

Parte de la programación es la idea de encapsulación o abstracción. Una vez que alguien resuelve un problema fundamental de CS complejo a través de un algoritmo, creamos rápidamente una abstracción para eso y lo construimos en un lenguaje o marco o paquete para que nadie más necesite resolverlo nuevamente.

Si constantemente implementa algoritmos conocidos para el desarrollo web, probablemente lo esté haciendo mal, básicamente está reinventando la rueda.

Creo que conocer los algoritmos y la teoría es útil, pero en la programación diaria, se trata principalmente de implementar la lógica, las características y las reglas de negocios. ¿Duele saberlo? Absolutamente no. ¿Es necesario conocer la teoría CS clásica para el desarrollo web? Absolutamente no. Creo que DHH hace un gran trabajo al articular esto en su discurso principal “Writing Software”.

Sin los fundamentos, eventualmente se quedará atascado en un nivel superficial razonable de desempeño profesional.

Al trabajar con pares que obtuvieron grados de CS y a medida que las tecnologías evolucionan, enfrentará una curva más pronunciada para mantenerse al día. Esto se debe a que las bases impregnan todas las áreas del conocimiento de CS, por eso son las bases.

Si bien estos fundamentos no parecen tan relevantes como desearía que fueran para un trabajo en desarrollo web, pero confía en mí, son muy esenciales. Creo que el propósito de cursos como el análisis de algoritmos, estructuras de datos, matemática discreta no es ayudarlo directamente en el desarrollo web sino desarrollar sus habilidades de pensamiento. Estos cursos te obligan a pensar de una manera particular que luego te ayudaría en el desarrollo web. Después de todo, incluso en el desarrollo web, debe utilizar estructuras de datos, bases de datos y escribir algoritmos.