Take Programming Course(s) or Self-Study?

  • Context: Courses 
  • Thread starter Thread starter pjl2934
  • Start date Start date
  • Tags Tags
    Programming Self-study
Click For Summary

Discussion Overview

The discussion revolves around the decision of whether to take formal programming courses or to pursue self-study in programming, particularly focusing on languages like C++ and C. Participants explore the implications of each approach for a physics undergraduate aiming for graduate studies in high-energy physics or related fields.

Discussion Character

  • Exploratory
  • Debate/contested
  • Technical explanation
  • Mathematical reasoning

Main Points Raised

  • One participant expresses the belief that learning programming languages such as Matlab, Mathematica, Fortran, and particularly C++ is essential for their future studies in physics.
  • Another suggests starting with C to ease the transition to C++, arguing that the syntax is similar and that foundational programming skills can be developed quickly through self-study.
  • A different viewpoint emphasizes the importance of being a mature software developer for contributing to critical repositories, suggesting that self-study may be sufficient for some but structured classes could be beneficial.
  • One participant shares their experience of finding formal programming classes boring due to prior self-taught knowledge, indicating that self-study may be adequate for those confident in their abilities.
  • Concerns are raised about the potential confusion that learning C might introduce, given the differences between C and C++.
  • Several participants recommend various online resources and courses for learning programming, indicating a preference for self-directed learning paths.

Areas of Agreement / Disagreement

Participants express a mix of opinions regarding the effectiveness of formal courses versus self-study. Some advocate for self-study as a viable path, while others see value in structured classes. There is no consensus on the best approach, and differing experiences with programming education are shared.

Contextual Notes

Participants mention various programming languages and resources, but there is no agreement on the necessity or effectiveness of learning C before C++. The discussion reflects a range of personal experiences and preferences regarding learning methods.

Who May Find This Useful

This discussion may be useful for physics undergraduates considering programming skills for graduate studies, as well as those interested in different learning approaches to programming languages.

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)
 

Similar threads

  • · Replies 16 ·
Replies
16
Views
3K
  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 7 ·
Replies
7
Views
4K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 14 ·
Replies
14
Views
3K
  • · Replies 102 ·
4
Replies
102
Views
9K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 10 ·
Replies
10
Views
6K