¿Un programador autodidacta necesita aprender materias como algoritmos y cálculo? ¿Por qué?

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.

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

Depende de lo que quieras hacer. Es posible que un programador autodidacta que quiera escribir aplicaciones móviles no necesite saber cálculo, pero un programador autodidacta que necesite escribir código para operar un acelerador de partículas podría beneficiarse de comprender las ecuaciones que rigen el sistema cuyas variables está modificando.

Es más seguro conocer Cálculo (o al menos revisar el plan de estudios para que no se resista a la vista de las integrales de superficie / integrales de contorno, como era yo). Es más impresionante y es como tener una herramienta analítica que llevas a tu alcance. Conocer el cálculo le permite al programador comprender los procesos descritos por las ecuaciones (que a menudo se expresan como tasas / área).

Como alguien que ha estudiado sistemas de control, sistemas electrónicos / integrados y procesamiento de señales digitales (aunque no es un desarrollador profesional), el cálculo es el * primer paso y el más fácil * en los sistemas de ingeniería para comportarse de manera controlada (ya sea software o hardware ) Es prácticamente un requisito previo para leer literatura de ingeniería en las disciplinas antes mencionadas.

Creo que todo el conocimiento es útil, y cuanto más sepa, más inesperadamente se abrirán las puertas para usted .

Por supuesto, si usted es autodidacta sobre el desarrollo de software, ¿por qué no hacer lo mismo con el cálculo y el álgebra lineal? ¡Aprende algunos cálculos para un gran bien!

Si está buscando ingresar a la ciencia de datos o la IA, definitivamente diría que debería obtener álgebra lineal en su haber, y el cálculo también sería útil.

¿Cuánto cálculo debes saber? Personalmente, creo que es importante tener una comprensión firme de los conceptos . Lo mismo para los algoritmos. Como mínimo, debe tener esto en su estante: El arte de la programación de computadoras – Wikipedia.

Recientemente, escribí un algoritmo de multilateración para el trabajo. No hubiera sido posible para mí hacerlo sin no solo conocer y tener un conocimiento completo del cálculo, sino también métodos numéricos. Le recomiendo que conozca los métodos numéricos.

Puede ser un poco ” peligroso ” para mí decirte esto, pero podrías considerar, si tienes el tiempo y los recursos, simplemente ” abandonar la escuela ” y aprender algunos cálculos, algoritmos, todo, en tu propio Piensa en hacer física para videojuegos. ¿No le gustaría poder hacerlo desde cero, a pesar de que hay toneladas de “motores de física” para hacerlo por usted? ¿Cuánto le ayudaría su comprensión de esos motores al conocer el cálculo, los vectores y similares?

Simplemente hazlo.

Debe saber algo sobre algoritmos estándar y poder analizar su complejidad, por ejemplo, al proponer un algoritmo de clasificación, ¿cómo aumenta el tiempo a medida que aumenta el número de elementos?

El cálculo, como la mayoría de las matemáticas, es probablemente irrelevante a menos que, tal vez, cuando esté escribiendo juegos o trabajando en algunas áreas de finanzas, simulación o modelado.

Sin embargo, todo conocimiento es útil pero nunca se sabe cuándo será necesario.

Cálculo no. (Casi lo reprobé en la universidad, y al día siguiente lo olvidé casi por completo).

Algoritmos Un algoritmo es un proceso o conjunto de reglas a seguir en las operaciones de resolución de problemas. Dado que eso es básicamente lo que es la programación, resolver problemas, por supuesto que sí.

Pero … no tenemos un pequeño libro de algoritmos que todos aprendemos, escribimos soluciones a problemas, y esos son algoritmos. No aprende algoritmos particulares, aprende que los algoritmos son procesos o conjuntos de reglas a seguir en las operaciones de resolución de problemas. Y eso es. En cuanto al resto de “los algoritmos”, los desarrollas, ese es tu trabajo como programador.

Parafraseando a Robert Heinlein: “Los programadores que no conocen el cálculo son simplemente grandes simios que pueden atarse los zapatos …” ¿Realmente tienes que preguntarte por qué necesitas aprender sobre algoritmos? ¿O sobre estructuras de datos? ¿O por qué aprende cómo los programadores anteriores resolvieron problemas comunes en el software? Porque de eso se trata realmente la informática.

Depende de lo que estés programando.

Probablemente no necesite ningún cálculo en general para la programación (por supuesto, hay excepciones). Sin embargo, cuando aprendí sobre estructuras de datos y algoritmos, adquirí conocimientos cruciales. Probablemente nunca implementaría un algoritmo de clasificación, sin embargo, conocer las diferentes formas de ordenar una estructura de datos puede aplicarse en otros lugares. Quiero decir que las técnicas utilizadas para diseñar algoritmos son el conocimiento real, no los algoritmos en sí mismos.
Además, el cálculo lo expone a algunas formas interesantes de abordar y resolver un problema.

Solo mis 2 centavos