¿Cuáles son los beneficios de aprender informática teórica?

En sí misma, la informática teórica es inútil para cualquier cosa, excepto el papel de un informático teórico. Aún así, hay un beneficio en aprender el tema, pero no por las razones obvias.

La razón para aprenderlo es que TCS le informará sobre los límites de lo que cualquier computadora, no solo las computadoras contemporáneas, puede hacer. Por ejemplo, hay argumentos TCS muy fuertes contra P = NP y una IA fuerte.

La informática teórica también demuestra por qué no debemos temer que los robots vengan a robar * TODOS * nuestros trabajos, solo los aburridos y repetitivos. En el nivel práctico, TCS le informa cuándo evitar una recurrencia infinita en el pizarrón, es decir, una persecución salvaje por la pureza matemática sobre los detalles de implementación, que a menudo triunfan sobre la teoría en la vida real.

Un teórico puro dirá que un árbol de m-way es transversable en el tiempo O (log n), aunque esto simplemente no es cierto para nada más que los árboles B, con la razón encontrada en la forma de buscar la rama correcta. En su forma más básica, TCS le brinda una comprensión sólida de lo que es computable, además de la máxima eficiencia para cualquier solución.

Sin una comprensión de TCS, muchas personas pensarán que probar P = NP acelera todos los algoritmos, cuando no lo hace … Solo acelera los algoritmos NP-completos, los que requieren la verificación de la solución en tiempo P, en lugar de un solución para todos los casos posibles.

Dicho todo esto, TCS tiene definiciones radicalmente diferentes de cosas como algoritmos, particularmente cuando se compara con CS “aplicado”. Ver:

  • Algoritmos: ¿Debe un algoritmo completarse en una cantidad finita de tiempo y recursos para ser considerado un algoritmo en lugar de un proceso?
  • Si la definición de “algoritmo” se ha expandido en los últimos años para permitir cálculos infinitos, ¿cuál es ahora el término correcto para lo que solía llamarse algoritmos (tiempo y recursos finitos)?

Personalmente, aprendería más sobre algoritmos en clases teóricas de informática. Estas clases generalmente tienen conceptos y problemas desafiantes y mejoran su capacidad de pensamiento (al menos eso es lo que pienso). Como la gente ha mencionado, también le brindan buenas habilidades sobre cuándo uno debería dejar de buscar un buen algoritmo con reducciones de completitud NP y el problema de detención.

La informática teórica tiene una gran ventaja para el programador práctico de producción:

Conocer los límites de la teoría te impide intentar hacer lo imposible o intentar reinventar la rueda.

La teoría de la informática es necesaria para una comprensión profunda de los algoritmos, y eso a su vez ayuda con la programación. Sin embargo, las ganancias directas con respecto a mejorar la habilidad de programación no son demasiado altas, y los casos en que la teoría de la complejidad computacional ayuda con una tarea de programación.

Lea más beneficios de informática aquí: beneficios de aprendizaje de informática