Tengo un doctorado en física, trabajé durante 15 años en investigación y luego me cambié a un trabajo en la industria del software.
La sorpresa para mí, que quizás no debería ser una sorpresa, fue que mi carrera como físico programador no me había preparado para el desarrollo de software.
Para empezar, el desarrollo de software no se trata solo de escribir código; Es el flujo de trabajo de planificación, manejo de tickets, pruebas, diseño del trabajo en equipo, comunicación con el cliente o propietario del producto. Ahora programa para alguien más, no solo para usted.
- ¿Qué nos dice un operador en física cuántica?
- En términos simples, ¿cómo podría usarse la computación cuántica para crear computadoras de uso general que sean mucho más rápidas que las convencionales?
- ¿Cuáles son algunas aplicaciones de topología en computación cuántica?
- Si todas las supercomputadoras del mundo entero formaran un grupo, ¿qué tan poderoso sería? ¿Puede dominar una computadora cuántica?
- ¿Debo hacer todas las preguntas en Química Cuántica por D.McQuarrie?
En segundo lugar, incluso cuando escribe código, lo hace a una escala mucho mayor: ¿creía que un proyecto de 1000 líneas en 4 archivos era grande? – y se da cuenta del valor del código limpio y de seguir las mejores prácticas, así como el control de versiones y un buen IDE.
Luego, dependiendo de dónde trabajes, tendrás que ser más versátil; Un producto de software comercial no es una simulación. Lo más probable es que implique cierta comunicación a través de las computadoras y una interfaz gráfica de usuario, por lo que incluso si trabaja principalmente como desarrollador de back-end, no puede salirse con la suya sin saber qué es un puerto o los componentes básicos de una GUI, y podrá tiene que aprender al menos algunos Javascript y HTML.
Por último, y en realidad lo más difícil para mí, fue tener que dominar no solo dos o tres lenguajes de programación, sino también mantener y manejar bibliotecas y paquetes que los acompañan, obtener las versiones correctas de esos y las herramientas para manejar todo eso. Luego, asegúrese de que funcione y se pueda implementar en la computadora de otra persona, tal vez incluso en diferentes sistemas operativos. En la investigación de física, es posible que deba aprender a vincular a LAPACK o FFTW; eso no te prepara.
Dicho todo esto, solo puedo estar de acuerdo con todos aquellos que han enfatizado que los físicos a menudo son muy aptos para convertirse en programadores. Tienen una mentalidad analítica y saben cómo resolver problemas. Aprenden rápido y, por lo tanto, no tienen problemas para adaptarse a las diferentes condiciones que describí anteriormente. Sí, los físicos a menudo son buenos programadores, o pueden aprender fácilmente a serlo.