What computer programming language(s) and/or computing environments are most critical for theoretical astrophysicists?
I am a senior in high school and will graduate from high school in a few weeks. This fall, I start college and will double-major in physics and astronomy. My ultimate goal is to earn a PhD in Theoretical Astrophysics. While an undergraduate, it is imperative for me to gain computer programming skills because, rather than performing numerical analysis by hand, cutting edge research requires high speed computing for simulation and data analysis. I am wondering if there consensus on which computing skills are considered most critical to a theoretical astrophysicist? #computer-science #astrophysics #theoretical
3 answers
Jeff’s Answer
Hi Carter!
Wow! Ambitious, focused and clear-headed! Your plans are awesome!
I'm completely out of my comfort zone in the area of Theoretical Astrophysics but I know that you will be dealing with tremendous amounts of data. Technical skills that would help include any big data classes, R programming, data analytics, statistics and statistical analysis. R is one of the most popular programming languages for parsing big data as of the last time I checked. However, others on this site who deal with data analytics would be better able to discuss current programming trends.
Best of luck and stay focused on the end goal!
Jeff
Ashley’s Answer
Once you are in your bachelors you can likely take some programming electives. Your school may have some good entry level coding courses. Any intro to computer science course will do. Another thing you can do is try to reach out to your science professors and ask them what they do. Having relationships with your major-relevant profs outside the classroom is a great way to make connections and honestly have some extra help throughout your college career. Reach out, ask them what programming they've had to do.
Hope this helps!
Daniel’s Answer
Have you ever dealt with any programming languages?
I would suggest getting some general understanding in programming before diving into a specific case for it. For example, take some free online classes on a good beginning language like Python. That way, when the time comes to learn a specific language for your university courses, you will have a foundation to build on and be ahead of the curve.
If you enjoy the beginning courses, you can continue to build your knowledge in a more particular language/project. I also agree with Jeff that you will likely be dealing with a lot of data. Similar to the foundations of programming, I would suggest a general understanding of big data analytics and then dive into some code projects.
Best of luck!