Pas de voie royale vers les logiciels
Dans l'Antiquité, Euclide a posé une question comme la vôtre à son élève le roi Ptolémée. Sa réponse: "Il n'y a pas de voie royale vers la géométrie".
Vous mentionnez que votre superviseur rirait s'il savait combien de temps vous passez à écrire du code comme un développeur professionnel. D'autres ont répondu à vos questions avec une liste de choses à apprendre allant du contrôle des sources à la conception et à l'analyse des algorithmes.
Ils sont loin de votre objectif:
"Je dois passer du temps sur la physique réelle"
Pianiste de concert ou One Man Band?
Le monde bouge trop vite pour que les gens puissent barboter. Si vous voulez être pianiste de concert, ne divisez pas votre temps à apprendre les instruments pour devenir un orchestre d'un seul homme.
Mon concept pour le rôle d'un doctorat en physique sur des projets de moyenne à grande envergure est celui de chef d'idée pour la définition de système, expert en théorie, expert en la matière lors de la création de cas d'utilisation et utilisateur final / juge pour les résultats générés par les artefacts logiciels. Travaillez en étroite collaboration avec les meilleurs ingénieurs logiciels que vous pouvez.
Comment puis-je évaluer si mon travail est également bon du point de vue d'un programmeur?
Si vous voulez placer la barre haute, commencez ici:
Architecture logicielle en pratique, Len Bass, Paul Clements, Rick Kazman
Recherchez le chapitre "Comprendre les attributs de qualité". Au-delà du code, il considère l'utilisabilité, modifiable, les performances, la sécurité, la disponibilité, la fiabilité, la testabilité, la maintenabilité et la portabilité (vous ne pouvez pas le transporter, mais pouvez-vous porter la conception d'une plate-forme à une autre). Tous ont besoin d'objectifs mesurables spécifiques. Des références similaires incluent:
http://msdn.microsoft.com/en-us/library/ee658094.aspx
http://www.sei.cmu.edu/reports/95tr021.pdf
Vos objectifs par rapport à C et C ++
Comme FORTRAN, ce sont des langues dures et anciennes. Les indicateurs positifs pour C / C ++ comprennent:
- Application avec matériel, systèmes embarqués.
- Projet existant que vous souhaitez comme points de départ.
Il y a beaucoup de gens qui font du développement web, de la visualisation de données et du big data. Beaucoup sont motivés pour trouver ou créer d'autres langues. Par exemple, le physicien Sir Tim Berners-Lee a fait son succès avec HTML (mais est peu connu pour la physique). Évaluez votre objectif par rapport à votre langage de programmation.
Envisagez d'utiliser Matlab
Matlab a une grande base installée, est spécialisée pour les mathématiques et les sciences. Il dispose d'outils pour la visualisation des données. Il permet aux scientifiques et aux mathématiciens d'exprimer des problèmes dans le domaine du problème plutôt que dans le domaine de la solution. Matlab fabrique des produits Parallel Computing Toolbox et Distributed Computing Server.
Je m'attends à ce que le succès de Matlab soit dû à l'utilisation d'équipes multidisciplinaires avec des experts en physique, mathématiques, électronique et instrumentation, systèmes d'exploitation, langages de programmation, développement de logiciels, tests de logiciels, architecture et conception de logiciels. L'analogie peut être un peu exagérée, mais pourquoi vous mettriez-vous seul là-bas, à commencer par un marteau, un ciseau et une râpe pour faire quelque chose quand vous avez une imprimante 3D disponible? Comme Newton pourrait le demander, pourquoi ne pas vous tenir sur les épaules de quelqu'un?