Tout d'abord, permettez-moi de donner quelques informations avant de formuler la question. J'étudie la physique et tous mes cours de programmation ont été dans des langages de programmation faciles comme MATLAB. Par simple, je veux dire que la langue fait beaucoup de réflexion pour vous ... Pour les prochaines années, je vais suivre des cours d'informatique et je pense poursuivre une carrière en programmation.
Étant donné que de nombreux cours universitaires sont en C ++, l'utilisation d'un package d'algèbre linéaire (Armadillo) avec une syntaxe similaire à MATLAB sera-t-elle considérée comme paresseuse?
Je suis en train de coder un algorithme génétique en ce moment, et bien qu'il soit allé rapidement dans MATLAB, cela prend beaucoup de temps en C ++ sans l'aide de ces packages.
Comment ça marche dans la vraie vie? Quels packages êtes-vous autorisé à utiliser?
Par exemple, je ne voudrais pas développer mes connaissances C ++ avec armadillo et ne pas avoir une connaissance approfondie d'autres packages plus largement utilisés comme "vector.h" "algorithme" "liste" etc.
la source
lazy
ensensible
dans votre titre, et la réponse est "oui" (en supposant que vous effectuez une tâche qui implique l'algèbre linéaire, bien sûr).Réponses:
Le commentaire de Richard est déjà la plupart de la réponse. Chaque fois que vous programmez autre chose qu'un exercice en classe, vous voudrez réutiliser autant de code existant que possible, avec juste quelques autres considérations à équilibrer.
Les avantages de la réutilisation du code sont:
Il y a juste quelques éléments à considérer:
Comme dit le proverbe, chez un programmeur, la paresse est une vertu.
la source
Qu'entendez-vous par «autorisé»? Je suppose que je pourrais ajouter quelque chose ici qui pourrait aider à clarifier une idée fausse de certains étudiants débutants: on vous demande d'écrire votre propre code et algorithmes, etc., etc. à l'université, parce que vous apprenez un cours et que vous voulez consolider ce vous avez appris en classe en écrivant vous-même le code. Un tel codage est une aide à votre processus d'apprentissage . Par exemple, après avoir appris une structure / un algorithme de données particulier, vous écrivez votre propre code pour voir comment cela fonctionne et approfondir votre compréhension. C'est logique.
Lorsque vous faites un projet de programmation réel, vous n'écrivez pas de code pour aider à l'apprentissage de certains concepts / connaissances; vous essayez de produire un produit d'ingénierie. L'ingénierie n'est pas vraiment une invention, mais s'appuie sur les fondations déjà posées par d'autres pour répondre à un besoin pratique particulier. Il y a un dicton selon lequel la programmation consiste à 80% à lire / réutiliser les bibliothèques / codes des autres et à 20% à écrire les vôtres. Cela peut être un peu exagéré, mais vous obtenez l'esprit.
Dans votre cas, si vous faites un projet de programmation pour un cours et qu'il vous demande explicitement de coder votre propre algorithme, vous ne voudriez pas utiliser des bibliothèques externes. Si vous faites votre propre projet d'ingénierie, utilisez autant de bibliothèques que possible avant d'essayer de créer le vôtre.
Obtenez cette distinction claire et vous comprendrez ce que vous faites.
la source