Primero, permítanme dar algunos antecedentes antes de formular la pregunta. Estudio física y todas mis clases de programación han sido en lenguajes de programación fáciles como MATLAB. Por fácil quiero decir que el lenguaje piensa mucho en ti ... Durante los próximos años, tomaré cursos de informática y estoy pensando en seguir una carrera en programación.
Teniendo en cuenta que muchos cursos universitarios están en C ++, ¿se considerará vago el uso de un paquete de álgebra lineal (Armadillo) con una sintaxis similar a MATLAB?
Estoy codificando un algoritmo genético en este momento, y aunque fue rápido en MATLAB, está tomando mucho tiempo en C ++ sin la ayuda de estos paquetes.
¿Cómo funciona en la vida real? ¿Qué paquetes puedes usar?
Por ejemplo, no me gustaría construir mi conocimiento de C ++ con armadillo y no tener un conocimiento profundo de otros paquetes más utilizados como "vector.h", "algoritmo", "lista", etc.
fuente
lazy
asensible
su título y la respuesta es "sí" (suponiendo que esté haciendo una tarea que implique álgebra lineal, por supuesto).Respuestas:
El comentario de Richard es la mayor parte de la respuesta ya. Siempre que esté programando para cualquier cosa que no sea un ejercicio de clase, querrá reutilizar la mayor cantidad de código existente posible, con solo algunas otras consideraciones para equilibrar.
Las ventajas de la reutilización de código son:
Solo hay algunas cosas a considerar:
Como dice el dicho, en un programador, la pereza es una virtud.
fuente
¿Qué quieres decir con "permitido"? Supongo que podría agregar algo aquí que podría ayudar a aclarar una idea errónea de algunos estudiantes principiantes: se le pide que escriba su propio código y algoritmos, etc., en la universidad, porque está aprendiendo un curso y desea consolidar lo que has aprendido en las clases escribiendo el código tú mismo. Tal codificación es una ayuda para su proceso de aprendizaje . Por ejemplo, después de aprender una estructura / algoritmo de datos en particular, usted escribe su propio código para ver cómo funciona y profundizar su comprensión. Esto tiene sentido.
Cuando estás haciendo un proyecto de programación de la vida real, no estás escribiendo código como ayuda para aprender algunos conceptos / conocimientos; Estás intentando producir un producto de ingeniería. La ingeniería no se trata realmente de invención, sino de construir sobre los cimientos establecidos por otros para abordar una necesidad práctica particular. Hay un dicho que dice que la programación es 80% de lectura / reutilización de las bibliotecas / códigos de otros y 20% de escritura propia. Puede ser un poco exagerado pero obtienes el espíritu.
En su caso, si está haciendo un proyecto de programación para un curso y le pide explícitamente que codifique su propio algoritmo, no querrá usar bibliotecas externas. Si está haciendo su propio proyecto de ingeniería, use tantas bibliotecas como sea posible antes de intentar crear la suya propia.
Aclare esta distinción y comprenderá lo que está haciendo.
fuente