Physics Want to become Theoretical Physicist but don't know Coding

Click For Summary
SUMMARY

Aspiring theoretical physicists should prioritize learning programming languages, as many physics tasks involve simulations that cannot be solved analytically. While prior programming knowledge is beneficial, it is not a prerequisite for university admission. Courses in Computer Science, particularly those covering languages like Fortran, C/C++, Python, and tools such as Glowscript and Trinket, are highly recommended. Strong mathematical skills complement programming abilities, enhancing logical and organizational skills necessary for success in the field.

PREREQUISITES
  • Basic understanding of programming concepts
  • Familiarity with mathematical principles
  • Knowledge of simulation techniques in physics
  • Exposure to programming languages such as Fortran, C/C++, and Python
NEXT STEPS
  • Enroll in introductory Computer Science courses focusing on programming fundamentals
  • Explore Glowscript for physics-related programming projects
  • Practice coding with Python, utilizing libraries like NumPy and SciPy
  • Investigate Trinket for interactive coding and visualization exercises
USEFUL FOR

This discussion is beneficial for aspiring theoretical physicists, students considering a physics major, and anyone interested in integrating programming skills into their scientific studies.

Quantum_Arcanium
Messages
2
Reaction score
1
Hi, I am an aspiring Theoretical Physicist. I've heard that you need to know many programming languages to become a Physicist, but I have never learned a single programming language in my life and I am 16-17 years old now. Is there any chance of me still becoming one? Is there anything I can do? Will taking Computer Science courses in College be a good choice? Thanks for your help.

Quantum_Arcanium
 
Physics news on Phys.org
A lot of the work most physicists do is related to programming in order to perform simulations of systems that cannot be solved analytically. However, I do not think you need to know programming before starting university (I didn't). Of course, already knowing it gives you an edge, just as you might have other edges if you have pre-studied university level mathematics, etc.
 
  • Like
Likes DeBangis21 and ZeGato
Orodruin said:
A lot of the work most physicists do is related to programming in order to perform simulations of systems that cannot be solved analytically. However, I do not think you need to know programming before starting university (I didn't). Of course, already knowing it gives you an edge, just as you might have other edges if you have pre-studied university level mathematics, etc.

I am strong in Mathematics but just don't have any programming experience at all. Thanks for your advice too.
 
Im no physicist but I am in an introductory programming class now. I started out having zero knowledge of the matter (didnt even know what compressing a file meant, etc). Its a really fun class but out of all my classes (Calc I, Chem I, generals), its my hardest one.
For some programs, you know what it needs to do but its hard to put that on a screen in such a way that nothing is assumed and is basically boiled down to the most basic level. For example, writing code for a simple rock paper scissors game is actually quite difficult. Coding requires a certain type of thinking different from anything I've experienced but with practice it starts to become more natural. At my university, a significant amount of students change majors to CS after taking their first CS class because its a fun thing to do. I definitely won't do that but know many that have. So I think you should definitely take it as its fun and a valuable skill professionally and intellectually. My school doesn't require it for the physics major so I am just taking it as an extra class and will probably take another over the summer to get a broader understanding of it.
Food for thought.
 
Quantum_Arcanium said:
I've heard that you need to know many programming languages to become a Physicist
If you know one programming language reasonably well, that's better than having only a minimal understanding of several languages.

Orodruin said:
A lot of the work most physicists do is related to programming in order to perform simulations of systems that cannot be solved analytically.
And a lot of that work, at least what I've seen here at this site, is in Fortran, and very poorly written at that. Having one or two computer science classes under your belt would make it more likely that the code you write would be easier for someone else to read, more portable to different operating systems, and more reusable.

I assume that you (the OP) are still in high school. If they offer programming classes there, consider taking one. Another option is to take a class at a local community college if there is one near by. It's good that you are strong in mathematics, but being able to write good programs also requires strong logical and organizational skills.
 
Mark44 said:
And a lot of that work, at least what I've seen here at this site, is in Fortran, and very poorly written at that.
I can only speak for the HEP community, but Fortran used to be very popular. It has fallen somewhat out of fashion to give way to C/C++. There is a cutoff somewhere between the ages 40 and 45. Older people use Fortran, younger C or C++. Even younger may try to avoid compiled languages altogether in favour of Matlab and Mathematica.
 
Orodruin said:
Even younger may try to avoid compiled languages altogether in favour of Matlab and Mathematica.
Or Python, using its numpy and scipy libraries.
 
These days, one can work in a web browser...
which is great since there's nothing to install or configure.

Later when you need maximum performance,
you can choose your language and platform
and appropriate installation files.

But for now... you can try these out, for example...
... and you don't need to wait to take a course to try things out.

Check out Glowscript (which is a variant of VPython, a physics-inspired library for Python)
http://www.glowscript.org/
http://www.glowscript.org/#/user/GlowScriptDemos/folder/Examples/
http://www.glowscript.org/#/user/matterandinteractions/folder/matterandinteractions/ [look at these examples]

Some of the visualizations are in 3-D... right-mouse-drag to rotate.

Code can be viewed and you can copy them and make modifications.

I prefer to work on
https://trinket.io/ (which supports Glowscript, Python 2, and HTML5 on a free account)

See this blog entry by Rhett Allain to get started...
https://www.wired.com/2015/04/dare-change-numerical-calculation/
[the error in the code example presented there can be corrected by editing line 11 and replacing "true" by "True"]
 

Similar threads

Replies
5
Views
4K
  • · Replies 25 ·
Replies
25
Views
4K
  • · Replies 15 ·
Replies
15
Views
3K
  • · Replies 26 ·
Replies
26
Views
4K
  • · Replies 18 ·
Replies
18
Views
11K
  • · Replies 6 ·
Replies
6
Views
4K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 12 ·
Replies
12
Views
3K
  • · Replies 14 ·
Replies
14
Views
5K