Kein Königsweg zur Software
In der Antike wurde Euklid von seinem Schüler, König Ptolemaios, eine Frage wie Ihre gestellt. Seine Antwort: "Es gibt keinen Königsweg zur Geometrie."
Sie erwähnen, dass Ihr Vorgesetzter lachen würde, wenn er wüsste, wie viel Zeit Sie damit verbringen, Code wie einen professionellen Entwickler zu schreiben. Andere beantworteten Ihre Fragen mit einer Liste von Lerninhalten, die von der Quellcodeverwaltung bis zum Entwurf und zur Analyse von Algorithmen reichen.
Sie verfehlen Ihr Ziel:
"Ich muss Zeit für die Physik aufwenden"
Konzertpianist oder One Man Band?
Die Welt bewegt sich zu schnell, als dass sich Menschen damit beschäftigen könnten. Wenn Sie Konzertpianist werden möchten, teilen Sie Ihre Zeit nicht mit dem Erlernen von Instrumenten, um eine Ein-Mann-Band zu werden.
Mein Konzept für die Rolle eines Doktors in Physik bei mittleren bis großen Projekten ist, als Ideenführer für die Systemdefinition, theoretischer Experte, Fachexperte bei der Erstellung von Anwendungsfällen und Endbenutzer / Beurteiler für die durch Software-Artefakte erzeugten Ergebnisse zu fungieren. Arbeiten Sie eng mit den besten Software-Ingenieuren zusammen, die Sie können.
Wie bewerte ich, ob meine Arbeit auch aus Sicht eines Programmierers gut ist?
Wenn Sie die Messlatte hoch legen möchten, beginnen Sie hier:
Software-Architektur in der Praxis, Len Bass, Paul Clements, Rick Kazman
Suchen Sie nach dem Kapitel "Qualitätsmerkmale verstehen". Über den Code hinaus werden Benutzerfreundlichkeit, Änderbarkeit, Leistung, Sicherheit, Verfügbarkeit, Zuverlässigkeit, Testbarkeit, Wartbarkeit und Portabilität berücksichtigt (nicht Sie können es mit sich führen, aber Sie können das Design von einer Plattform auf eine andere portieren). Alle brauchen spezifische messbare Ziele. Ähnliche Referenzen beinhalten:
http://msdn.microsoft.com/en-us/library/ee658094.aspx
http://www.sei.cmu.edu/reports/95tr021.pdf
Deine Ziele gegen C und C ++
Dies sind wie bei FORTRAN harte und alte Sprachen. Positive Indikatoren für C / C ++ sind:
- Anwendung mit Hardware, eingebetteten Systemen.
- Bestehendes Projekt möchten Sie als Ausgangspunkt.
Es gibt viele Leute, die Webentwicklung, Datenvisualisierung und Big Data betreiben. Viele sind motiviert, andere Sprachen zu finden oder zu machen. Zum Beispiel machte der Physiker Sir Tim Berners-Lee seinen Erfolg mit HTML (aber für Physik ist wenig bekannt). Bewerten Sie Ihr Ziel im Vergleich zu Ihrer Programmiersprache.
Erwägen Sie die Verwendung von Matlab
Matlab hat eine großartige installierte Basis und ist auf Mathematik und Naturwissenschaften spezialisiert. Es verfügt über Tools zur Datenvisualisierung. Es ermöglicht Wissenschaftlern und Mathematikern, Probleme eher in der Problemdomäne als in der Lösungsdomäne auszudrücken. Matlab stellt eine Parallel Computing Toolbox und Distributed Computing Server-Produkte her.
Ich gehe davon aus, dass der Erfolg von Matlab darauf zurückzuführen ist, dass multidisziplinäre Teams mit Experten aus den Bereichen Physik, Mathematik, Elektronik und Instrumentierung, Betriebssysteme, Programmiersprachen, Softwareentwicklung, Softwaretests, Softwarearchitektur und -design zusammenarbeiten. Die Analogie mag eine Strecke sein, aber warum würden Sie sich allein da draußen aufhalten und mit Hammer, Meißel und Raspel anfangen, um etwas zu machen, wenn Sie einen 3D-Drucker zur Verfügung haben? Wie Newton fragen könnte, warum nicht auf den Schultern von jemandem stehen?