Como estudiante, ¿es inteligente crear mis propias bibliotecas de programación matemática?

No es nada inusual. Donde estudio, he visto a algunas personas implementando funcionalidades básicas que se pueden encontrar en varias buenas bibliotecas.

Si es inteligente o no depende de cómo se defina la inteligencia. Necesita una buena comprensión de los algoritmos para implementarlos correctamente. Algunos algoritmos (por ejemplo, interpolación lineal) son súper simples, mientras que otros (por ejemplo, resolver ecuaciones diferenciales parciales) son mucho más difíciles.

Lo bueno de implementarlos usted mismo es que siempre sabe cómo usar su código, y si necesita algo más, puede implementarlo (sin necesidad de pasar horas buscando una biblioteca que brinde esta funcionalidad).

Lo malo es que debes implementarlo tú mismo. Lleva tiempo, que a veces se gasta mejor en otros lugares, y es propenso a errores. Además, las bibliotecas que se centran en resolver un cierto tipo de problema (por ejemplo, BLAS – Basic Linear Algebra Solver) a menudo optimizan cada línea de su código, para que funcione más rápido y / o use menos memoria. La forma más fácil de implementar cosas a menudo no es la forma más rápida de ejecutarlas.

Si no le importa el rendimiento y está feliz de invertir algo de tiempo, puede aprender mucho sobre la implementación de estos algoritmos usted mismo. Ergo, te volverás más inteligente al hacerlo. 🙂

¡Buena suerte!

Esto es bueno para aprender los algoritmos de una manera esencial. Use esta experiencia para construir una intuición de cómo funcionan varios algoritmos matemáticos en teoría y práctica, ya que esta intuición puede resultar útil en el futuro.

Sin embargo, no espere que sus propias implementaciones para algoritmos numéricos complejos sean superiores en ningún tipo de sentido de eficiencia / precisión. Afortunadamente para muchos problemas, no necesita una eficiencia ridícula, por lo que incluso sus códigos podrían resultar útiles en ciertas situaciones. Pero para los problemas desafiantes que requieren soluciones eficientes / precisas, el uso de bibliotecas por parte de profesionales es el movimiento correcto siempre que sus licencias / costos no sean un problema para usted.

Una vez que haya acumulado experiencia y encuentre su camino para algún trabajo, puede encontrar que los costos / licencias de varias bibliotecas pueden hacer que sean imposibles de usar. En este caso, es posible que deba implementar sus propios códigos para hacer las cosas en el trabajo. Esto está bien y esperamos que tu experiencia previa como estudiante te ayude a hacer esto con éxito. Simplemente no cuentes con hacer esto en tu carrera demasiado.

Si el propósito de escribir esta biblioteca es aprender , entonces la respuesta es: sí.

Pero si está pensando: puedo hacerlo mejor que otros, u otras bibliotecas son “demasiado complicadas” o “hacerlo yo mismo me ahorrará tiempo”: entonces la respuesta es: no.

Sí, puedes reinventar la rueda. Pero a menos que sea un programador extraordinario (pocas personas lo son), eso le costará mucho más tiempo de lo que espera hoy. Y su versión de esa rueda será menos capaz, menos robusta y menos probada en comparación con los productos existentes y ampliamente utilizados en el campo.

More Interesting

Cómo crear un cuestionario de matemáticas en Python

¿Necesito ser bueno en matemáticas para aprender codificación?

¿Cuál es la ecuación matemática correcta para el siguiente problema informático?

Si tengo los números n> 0, k> 0, a> 0 y el número primo x .. ¿Cuál es la forma más rápida de calcular ((n ^ k) * a) módulo x?

¿Cuál es el límite y cómo puedo probar: [math] \ lim_ {n \ rightarrow \ infty} {n ^ dn ^ c} [/ math] cuando [math] 0 \ leq c <d [/ math]?

¿Cómo se relacionan las matemáticas con la informática?

¿Cómo se puede usar la función zeta de Riemann para generar números pseudoaleatorios?

Tengo miedo a las matemáticas. Estoy programando estudiante, ¿qué puedo hacer?

Cómo escribir un programa en C para verificar si para cualquier triplete entero (x, y, z) y otro entero n, [matemática] n ^ x + n ^ y = n ^ z [/ matemática] ocurre para (a, b) siendo la entrada donde [matemáticas] a \ leq n \ leq b [/ matemáticas]

¿Por qué la mayoría de los informáticos tienen un título en matemáticas?

Para los usuarios, ¿se está volviendo Facebook más valioso, útil y digno de más tiempo invertido o menos? ¿Por qué? ¿Hay alguna evidencia de Facebook de que la Ley de Metcalfe es cierta (para n usuarios, el valor de la red aumenta en nxn)?

¿Cómo puedo calcular la varianza para el número de aciertos de caché?

Recientemente he entregado mis tableros (12) y quiero hacer una mecánica BTech. Espero 85% en tableros, pero estoy seguro de que no romperé el avance de IIT. ¿Qué debo hacer, dejar un año y tomar clases de IIT o elegir la universidad solo este año? ¿Es seguro dejar caer un año?

Cómo analizar un archivo de texto en Python y obtener la suma de los números presentes en el archivo

¿Los libros de texto de lógica formal en idiomas que no usan el alfabeto latino todavía representan proposiciones con P y no con P?