Si. En la práctica, puede construir una gran cantidad de software sin ninguno de los dos, pero comprender algo de la teoría sobre las estructuras de datos y los algoritmos puede ayudarlo a comprender por qué dos partes diferentes de código que hacen esencialmente lo mismo pueden funcionar de manera muy diferente en los mismos datos de entrada. No necesita memorizar cientos de algoritmos, pero conocer los nombres y las características de unos pocos lo ayudará a comunicarse con otras personas que comparten ese conocimiento; la misma razón por la que es una buena idea leer un poco sobre los patrones de diseño.
Escucho que mucha gente pregunta: “¿Por qué debería estudiar varios algoritmos de clasificación cuando puedo llamar a la función de clasificación en la biblioteca / simplemente usar la mejor?” Una razón es que no hay una mejor. A menudo, la función de clasificación proporcionada por una biblioteca utilizará QuickSort, que es bastante buena, pero terrible en una lista ya ordenada. A veces, un algoritmo es excelente en grandes conjuntos de datos, pero terrible en los pequeños o viceversa. Muy a menudo, uno es más rápido pero usa mucha más memoria que otro, por lo que cuál debe elegir depende de lo que esté ejecutando.
Definitivamente, lea un libro sobre estructuras de datos y algoritmos, es una inversión de tiempo que vale la pena. El punto principal no es memorizar un montón de algoritmos famosos, sino comprender sus diferentes características de rendimiento y las razones detrás de ellos, y aplicar esa comprensión al escribir código.
- ¿Qué son las estructuras de datos y los algoritmos en Java?
- ¿Es posible crear dos manos robóticas independientes?
- ¿Existe un libro o sitio web que describa los problemas y luego le solicite la estructura de datos / algoritmos más apropiados necesarios para resolver el problema?
- ¿Qué hago después cuando logré un programa de aprendizaje automático (supervisado) con un 97% de precisión y buen ajuste?
- ¿Cómo se puede usar un algoritmo genético para clasificar las soluciones candidatas?
El hecho de que realmente necesite cálculo depende mucho de lo que esté haciendo, pero no llegará lejos en aprendizaje automático, compresión o criptografía antes de comenzar a necesitarlo (y álgebra lineal) y necesitará si su código trata con física (ya sea real o simulada).
Cuando necesita una herramienta como esta, no sabe que la necesita si no la tiene (en el sentido de entenderla, al menos vagamente). Simplemente te encuentras frente a un problema realmente difícil sobre el que ni siquiera puedes razonar de manera efectiva, y es difícil saber qué escribir en Google cuando eso sucede. En ese punto, sus opciones son descubrir qué parte de la teoría se está perdiendo y aprenderla, o terminar reinventando la rueda (¡y buena suerte reinventando el cálculo!). Estamos vivos durante un tiempo limitado, y cuanto antes aprendas algo, mayor será la proporción de tu vida que no tendrás que vivir sin saberlo knowing