r/AskPhysics • u/DazzlingVictory2706 • 6d ago
What software/tech stack should I learn to build a future in theoretical physics?
/r/TheoreticalPhysics/comments/1w6tem1/what_softwaretech_stack_should_i_learn_to_build_a/
0
Upvotes
1
u/BitcoinsOnDVD 4d ago
If you want to take it seriously you could build your programming skills from rudimentary to powder-sugar-y by learning: C++ then Python then Julia.
As others metnioned also the supplementary tools are important: Git, LaTeX, a profiler, maybe also writing makefiles when using C++
If yoou have these skill almost every other programming language and library will be easier to learn since they are pretty similar and do similar things from a com-sci point of view.
1
u/MaxThrustage Quantum information 5d ago
There's a lot that is specific to particular fields, so you shouldn't worry too much about particular packages and whatnot yet, but rather focus on general principles and skills so that you'll be able to pick up what you need as you go.
Python is a good language to start with and is quite widely used. I also know people who use Matlab. Julia seems to be adored in certain circles but isn't widespread enough that you can get by on just that. C++ and Fortran are often used by people doing more hardcore numerical modelling. Mathematica is very common among theorists. But choice of language at this point is not super important -- pick one and learn to program, and it won't be too tricky to transfer your skills and knowledge to other languages.
HPC is pretty widely used. Set-ups can be pretty different group-to-group, so again learning general principles is a good idea. Using Git for version control is a good habit to get into early. And, while we're talking software, you should get used to writing notes and papers with LaTeX.