Nessuna strada reale verso il software
Nei tempi antichi, a Euclide venivano poste domande come la tua dal suo studente, il re Tolomeo. La sua risposta: "Non esiste una strada reale per la geometria".
Dici che il tuo supervisore riderebbe se sapesse quanto tempo impieghi a scrivere codice come uno sviluppatore professionista. Altri hanno risposto alle tue domande con un elenco di cose da imparare che vanno dal controllo del codice sorgente alla progettazione e analisi degli algoritmi.
Non raggiungono il tuo obiettivo:
"Ho bisogno di passare il tempo sulla fisica reale"
Pianista da concerto o One Man Band?
Il mondo si muove troppo velocemente perché le persone si dilettino. Se vuoi essere un pianista da concerto, non dividere il tuo tempo imparando strumenti per diventare una band unica.
Il mio concetto per il ruolo di un dottorato di ricerca in fisica su progetti di medie e grandi dimensioni è come idea leader per la definizione del sistema, esperto in teoria, esperto in materia durante la creazione di casi d'uso e utente / giudice finale per i risultati generati da artefatti software. Lavora a stretto contatto con i migliori ingegneri del software che puoi.
Come posso valutare se il mio lavoro è buono anche dal punto di vista di un programmatore?
Se vuoi impostare la barra in alto, inizia qui:
Software Architecture in Practice, Len Bass, Paul Clements, Rick Kazman
Cerca il capitolo "Comprensione degli attributi di qualità". Oltre al codice, considera usabilità, modificabilità, prestazioni, sicurezza, disponibilità, affidabilità, testabilità, capacità di manutenzione e portabilità (non è possibile trasportarlo, ma è possibile trasferire il design da una piattaforma all'altra). Tutti hanno bisogno di obiettivi misurabili specifici. Riferimenti simili includono:
http://msdn.microsoft.com/en-us/library/ee658094.aspx
http://www.sei.cmu.edu/reports/95tr021.pdf
I tuoi obiettivi contro C e C ++
Come FORTRAN, queste sono lingue dure e vecchie. Gli indicatori positivi per C / C ++ includono:
- Applicazione con hardware, sistemi integrati.
- Progetto esistente che desideri come punto di partenza.
Ci sono molte persone che fanno lo sviluppo web, la visualizzazione dei dati e i big data. Molti sono motivati a trovare o creare altre lingue. Ad esempio, il fisico Sir Tim Berners-Lee ha fatto il suo successo con l'HTML (ma è poco conosciuto per la fisica). Valuta il tuo obiettivo rispetto al tuo linguaggio di programmazione.
Prendi in considerazione l'utilizzo di Matlab
Matlab ha un'ottima base installata, è specializzata in matematica e scienze. Ha strumenti per la visualizzazione dei dati. Permette a scienziati e matematici di esprimere problemi nel dominio del problema piuttosto che nel dominio della soluzione. Matlab crea una casella degli strumenti di elaborazione parallela e dei server di calcolo distribuito.
Mi aspetto che il successo di Matlab sia dovuto all'utilizzo di team multidisciplinari con persone esperte in fisica, matematica, elettronica e strumentazione, sistemi operativi, linguaggi di programmazione, sviluppo software, test del software, architettura e design del software. L'analogia può essere un tratto, ma perché dovresti metterti da solo, a partire da un martello, uno scalpello e una raspa per creare qualcosa quando hai una stampante 3D disponibile? Come potrebbe chiedere Newton, perché non stare sulle spalle di qualcuno?