No Royal Road to Software
En la antigüedad, su estudiante, el rey Ptolomeo, hizo preguntas a Euclides como la suya. Su respuesta: "No hay un camino real hacia la geometría".
Mencionas que tu supervisor se reiría si supiera cuánto tiempo pasas tratando de escribir código como un desarrollador profesional. Otros respondieron sus preguntas con una larga lista de cosas para aprender que van desde el control de origen hasta el Diseño y Análisis de Algoritmos.
No alcanzan su objetivo:
"Necesito pasar tiempo en física real"
¿Pianista de concierto o One Man Band?
El mundo se mueve demasiado rápido para que la gente pueda incursionar. Si quieres ser un pianista de concierto, no dividas tu tiempo aprendiendo instrumentos para convertirte en una banda de un solo hombre.
Mi concepto para el papel de un doctorado en física en proyectos medianos a grandes es como líder de ideas para la definición de sistemas, experto en teoría, experto en la materia durante la creación de casos de uso y usuario / juez final para los resultados generados por artefactos de software. Trabaje en estrecha colaboración con los mejores ingenieros de software que pueda.
¿Cómo evalúo si mi trabajo también es bueno desde la perspectiva de un programador?
Si desea establecer el listón alto, comience aquí:
Arquitectura de software en la práctica, Len Bass, Paul Clements, Rick Kazman
Busque el capítulo "Comprensión de los atributos de calidad". Más allá del código, considera usabilidad, modificabilidad, rendimiento, seguridad, disponibilidad, confiabilidad, capacidad de prueba, capacidad de mantenimiento y portabilidad (no puede llevarlo, pero puede portar el diseño de una plataforma a otra). Todos necesitan objetivos medibles específicos. Referencias similares incluyen:
http://msdn.microsoft.com/en-us/library/ee658094.aspx
http://www.sei.cmu.edu/reports/95tr021.pdf
Tus objetivos frente a C y C ++
Al igual que FORTRAN, estos son idiomas antiguos y difíciles. Los indicadores positivos para C / C ++ incluyen:
- Aplicación con hardware, sistemas embebidos.
- Proyecto existente que desea como puntos de partida.
Hay mucha gente haciendo desarrollo web, visualización de datos y big data. Muchos están motivados para encontrar o hacer otros idiomas. Por ejemplo, el físico Sir Tim Berners-Lee hizo su éxito con HTML (pero es poco conocido para la física). Evalúa tu objetivo frente a tu lenguaje de programación.
Considere usar Matlab
Matlab tiene una gran base instalada, está especializada en matemáticas y ciencias. Cuenta con herramientas para la visualización de datos. Permite a científicos y matemáticos expresar problemas en el dominio del problema en lugar del dominio de la solución. Matlab fabrica una caja de herramientas de computación paralela y productos de servidor de computación distribuida.
Espero que el éxito de Matlab se deba al uso de equipos multidisciplinarios con personas expertas en física, matemáticas, electrónica e instrumentación, sistemas operativos, lenguajes de programación, desarrollo de software, pruebas de software, arquitectura y diseño de software. La analogía puede ser exagerada, pero ¿por qué se presentaría solo, comenzando con un martillo, un cincel y una escofina para hacer algo cuando tenga una impresora 3D disponible? Como Newton podría preguntar, ¿por qué no pararse sobre los hombros de alguien?