Courses Take Programming Course(s) or Self-Study?

AI Thread Summary
The discussion emphasizes the significance of programming skills for physics undergraduates aiming for graduate studies, particularly in high-energy physics (HEP) or field theory. Key programming languages mentioned include Matlab, Mathematica, Fortran, and notably C++, which is considered essential for broader applications. Participants express concerns about the slow pace of introductory C++ courses and the potential benefits of self-study. Learning C before C++ is debated, with some suggesting it could ease the transition, while others caution it might lead to confusion due to the differences in programming paradigms. Resources for self-learning, such as online courses and problem-solving sites like Project Euler, are recommended. The conversation also touches on the importance of practical experience in programming, as well as the challenges of debugging and compiler errors. Ultimately, the consensus leans towards a combination of self-study and selective coursework to build proficiency efficiently.
pjl2934
Messages
24
Reaction score
0
As a physics undergraduate with the desire of going to grad school for physics (specifically HEP or field), I've come to understand the importance of learning some programming. I've come to the conclusion, through this forum and personal contacts, that Matlab, Mathematica, and Fortran are user-friendly enough to pick up as needed and that the most helpful (in a broad sense) would be C++. First of all, any comments on that conclusion?

If this is the case, the next step is learning the language, of course. My university offers C++ broken up into two semesters: intro and advanced. However, it seems that intro is very beginner and that it could be kind of.. slow. If this is the case, it hardly seems worthwhile to take up an entire semester to take the course, let alone an entire year to take both courses. I'm fairy confident in my self-study abilities, but will my knowledge of the language be proficient enough? Lastly, I've heard that learning C before C++ can kind of smooth the transition, so to speak, and gives a more thorough understanding of C++. Is this true and/or advisable?

Thanks for the help, as always!
 
Physics news on Phys.org
Dive in, see how you go, then ask yourself these questions again. :) I really like this online course, don't be scared off by the name:

http://c.learncodethehardway.org/book/

It will get you going with C, and when you can write a basic console application, compile it, debug the thing you'll have a much better idea of how easy or hard your journey will be. At this point, the differences between C and C++ are not important, the syntax is more or less the same, and the programs are small enough that Object Oriented concepts don't really matter, just practise getting your algorithm correct. You should be able to make good headway in a few days and have a much clearer idea of how you might benefit from an intro or advanced class.

Check out some problems to work on over at:

http://projecteuler.net

:)
 
If you are going to contribute to critical parts of repositories, you should be a very mature software developer. If not, then learning things 'as you go' is probably a good way to go and if that means pre-empting this with class or two, then fair enough.

The thing that you will have to be aware of are basically the situations like when you spend hours or days finding a bug only to have a near-aneurysm in the process. Similar things include finding weird compile errors and getting crazy kinds of program crashes, but this is what will really teach you and probably drive you up the wall as well.

I wouldn't spend more than a year max doing classes, but I can see how doing one or two really well planned, greatly structured classes could be a very good idea.
 
Adyssa said:
Dive in, see how you go, then ask yourself these questions again. :) I really like this online course, don't be scared off by the name:

http://c.learncodethehardway.org/book/

It will get you going with C, and when you can write a basic console application, compile it, debug the thing you'll have a much better idea of how easy or hard your journey will be. At this point, the differences between C and C++ are not important, the syntax is more or less the same, and the programs are small enough that Object Oriented concepts don't really matter, just practise getting your algorithm correct. You should be able to make good headway in a few days and have a much clearer idea of how you might benefit from an intro or advanced class.

Check out some problems to work on over at:

http://projecteuler.net

:)

Thanks for these links. They seem quite cool :) Do you have anything else in store?
 
As for learning C, I've heard opinions that say it won't benefit you much to learn it, and that in some cases it may just confuse you. C isn't objective, but C++ is, so there are some important differences.

I found all my programming classes to be extremely boring since I already knew some from being self-taught. I took the beginning programming course at my school after having taught myself Python (which is a scripting language, mostly), and the Java was super easy to pick up from there. Then, I took an actual Java course, and it was a joke. Though, to be fair, my instructor and the fact that it's a community college was probably the reason it was a joke, and we went over a lot of the same material as the first class, and I got a C just out of boredom.

So if you know you're good at self teaching, I don't think you'd have a problem with the basics. But like someone else said, advanced programming can be extremely annoying if you can't figure out what your compiler is trying to tell you. But that can theoretically be fixed by posting your code on forums or maybe networking at your university for help.

I'm not sure what grad schools care about. I imagine that they won't care too much about a couple programming courses if you do well in your science/math courses.
 
YAHA said:
Thanks for these links. They seem quite cool :) Do you have anything else in store?

Sure, here's a few more:

Google's Python Class
Dream In Code (lot's of good tutorials)
TopCoder (you will want a grasp on your language of choice before trying these tutorials, they are intermediate level)

and if you are prepared to study a little more formally:

Udacity (I'm doing free 7 week courses here to supplement my CS degree, 2 down so far and I'm pleased with the format and content)
Coursera (these look good too but I haven't taken one yet)
MIT Open Courseware - EE & CS Dept. (I've brushed up on some maths with MIT OCW and I was really impressed with the lectures)
 
Hey, I am Andreas from Germany. I am currently 35 years old and I want to relearn math and physics. This is not one of these regular questions when it comes to this matter. So... I am very realistic about it. I know that there are severe contraints when it comes to selfstudy compared to a regular school and/or university (structure, peers, teachers, learning groups, tests, access to papers and so on) . I will never get a job in this field and I will never be taken serious by "real"...
Yesterday, 9/5/2025, when I was surfing, I found an article The Schwarzschild solution contains three problems, which can be easily solved - Journal of King Saud University - Science ABUNDANCE ESTIMATION IN AN ARID ENVIRONMENT https://jksus.org/the-schwarzschild-solution-contains-three-problems-which-can-be-easily-solved/ that has the derivation of a line element as a corrected version of the Schwarzschild solution to Einstein’s field equation. This article's date received is 2022-11-15...

Similar threads

Replies
12
Views
2K
Replies
16
Views
2K
Replies
5
Views
1K
Replies
1
Views
2K
Replies
7
Views
3K
Replies
102
Views
5K
Replies
10
Views
5K
Back
Top