Nenhum caminho real para o software
Antigamente, Euclides fazia perguntas como a de seu aluno, rei Ptolomeu. Sua resposta: "Não há caminho real para a geometria".
Você menciona que seu supervisor ria se soubesse quanto tempo você gasta tentando escrever código como um desenvolvedor profissional. Outros responderam suas perguntas com uma lista de coisas a serem aprendidas, desde o controle da fonte até o Design e a Análise de Algoritmos.
Eles ficam aquém do seu objetivo:
"Eu preciso gastar tempo com física real"
Pianista de concertos ou One Man Band?
O mundo se move rápido demais para as pessoas se interessarem. Se você quer ser pianista de concertos, não divida seu tempo aprendendo instrumentos para se tornar uma banda de um homem.
Meu conceito para o doutorado em física em projetos de médio e grande porte é como líder de ideias para definição de sistemas, especialista em teoria, especialista no assunto durante a criação de casos de uso e usuário / juiz final pelos resultados gerados por artefatos de software. Trabalhe em estreita colaboração com os melhores engenheiros de software que você puder.
Como faço para avaliar se meu trabalho também é bom da perspectiva de um programador?
Se você deseja definir um nível alto, comece aqui:
Arquitetura de software na prática, Len Bass, Paul Clements, Rick Kazman
Procure o capítulo "Noções básicas sobre atributos de qualidade". Além do código, ele considera usabilidade, modificável, desempenho, segurança, disponibilidade, confiabilidade, testabilidade, capacidade de manutenção e portabilidade (não é possível carregá-lo, mas você pode portar o design de uma plataforma para outra). Todos precisam de metas mensuráveis específicas. Referências semelhantes incluem:
http://msdn.microsoft.com/en-us/library/ee658094.aspx
http://www.sei.cmu.edu/reports/95tr021.pdf
Seus objetivos vs. C e C ++
Como o FORTRAN, esses são idiomas antigos e difíceis. Os indicadores positivos para C / C ++ incluem:
- Aplicação com hardware, sistemas embarcados.
- Projeto existente que você deseja como ponto de partida.
Muitas pessoas desenvolvem web, visualização de dados e big data. Muitos são motivados a encontrar ou criar outros idiomas. Por exemplo, o físico Sir Tim Berners-Lee fez seu sucesso com HTML (mas é pouco conhecido pela física). Avalie seu objetivo x sua linguagem de programação.
Considere usar o Matlab
O Matlab possui uma excelente base instalada, é especializado em matemática e ciências. Possui ferramentas para visualização de dados. Ele permite que cientistas e matemáticos expressem problemas no domínio do problema, e não no domínio da solução. A Matlab fabrica os produtos Parallel Computing Toolbox e Distributed Computing Server.
Espero que o sucesso do Matlab se deva ao uso de equipes multidisciplinares com especialistas em física, matemática, eletrônica e instrumentação, sistemas operacionais, linguagens de programação, desenvolvimento de software, testes de software, arquitetura e design de software. A analogia pode ser um pouco exagerada, mas por que você se colocaria sozinho, começando com um martelo, um cinzel e uma lima para criar algo quando você tem uma impressora 3D disponível? Como Newton pode perguntar, por que não ficar nos ombros de alguém?