Self teaching computer programming vs taking a credit class at college

Click For Summary

Discussion Overview

The discussion revolves around the merits and challenges of self-teaching computer programming versus enrolling in formal college classes. Participants explore various aspects of learning programming, including motivation, discipline, and the effectiveness of different learning environments.

Discussion Character

  • Debate/contested
  • Exploratory
  • Technical explanation

Main Points Raised

  • Some participants suggest that self-learning programming is feasible if one is motivated and disciplined, while others argue that formal classes provide necessary structure and accountability.
  • One participant emphasizes that programming is best learned through practice and that self-taught programmers may develop a deeper understanding than those who learn in a classroom.
  • Another viewpoint highlights the importance of having someone to assign problems and provide feedback, which may be lacking in self-study.
  • Several participants mention the variety of programming languages and caution against attempting to learn all of them simultaneously, advocating for a more focused approach.
  • Some argue that programming can be easier to self-learn compared to more theoretical subjects, citing the interactive nature of coding and the ability to quickly check for errors.
  • One participant notes that the original poster's lack of enthusiasm for computers may indicate that self-study might not be the best fit for them.
  • There is a suggestion that starting with a classroom setting for the first programming language can facilitate easier learning of additional languages later on.

Areas of Agreement / Disagreement

Participants express a range of opinions on the effectiveness of self-learning versus formal education, with no clear consensus reached. Some advocate for self-study, while others emphasize the benefits of structured classroom learning.

Contextual Notes

Participants mention various programming languages and learning strategies, but there is no agreement on the best approach for everyone. The discussion reflects differing experiences and preferences regarding learning styles.

xdrgnh
Messages
415
Reaction score
0
I'm not really a big fan of computers but I understand there importance to physics. My school offers computer programming classes for engineering and science majors but I don't want a extra formal class that isn't required. Do you think it would be a good idea to self learn all of the programming?
 
Physics news on Phys.org
Computer programming skill is really too important to skip, although it may not be officially required. Best advice is to learn some either on your own or in a class. If you are weak at selfdirected learning, then take a course. If you are strong at learning on your own, then select the skill or language that would suit what you need to learn. The safest bet is register for a class and just follow the lessons, study, do the work.
 
Yes, if you're motivated and disciplined enough.
In a way, formal classes are best precisely because they force you to learn to material and to make exercises. While self-learning, this pressure doesn't exist and you'll have to force yourself to do the programming and the exercises. This is ok if you enjoy it, but it can be tedious if you're not a big fan.
 
It would be a great challenge. There is a lot LOT of programming languages out there and to teach yourself all of them is a bad idea. Plus it would take more time than taking a formal class. I say take a class.
 
Alright thanks all of you guys for the advice I'll make sure to find time to take the classes.
 
I don't think I would have been able to learn programming all that well if I had tried to learn it myself. The reason is that programming is something you learn by doing, not just by reading a text. And if you're learning something by doing, you need someone to assign you problems, where you can check what you did is right or not, and someone telling you how you are doing. A large part of how I learned was by working with others, and going to the professor's office hours for help.
 
I disagree about programming being hard to learn yourself. I think it is easy to learn yourself and self taught programmers generally program better and understand what they are doing more than those who learned to program through classwork.

As you pointed out, programming is mainly learned through doing. But coming up with that something to do is really easy. To start out with, write a program that does basic tasks like reading a file, sorting the data, and writing it back (teaches sorting and file i/o). Write a program that generates all possible combinations of 4 letters (teaches nested looping). Write a program that does numerical integration. Write a basic checkers or poker game. etc etc

Struggling to figure out how to do these things and making errors along the way is where the learning occurs. The results are pretty easy to look at and see if you got it right.
 
Programming is a great thing to learn on your own. There are lots of good books which are much easier to read than physics textbooks. Way easier to teach yourself programming than say quantum mechanics in my opinion.
 
One of the great things about programming is that it is a very interactive process even in isolation and because of this, it does have a natural way of being able to be taught in isolation.

As an example it is easy to check whether you are right or wrong pretty easily, because you can compile code and get a list of errors, or if it compiles correctly and crashes, then you can debug the program and find out what went wrong.

It is a bit harder to do this when you are learning something like an applied science like physics or chemistry. There will be instances when you screw up and it's not going to be as obvious where you went wrong. It's not to say you can't figure it out, but it is different.

If you want to do this, my advice is to pick a domain and pick a project of some sort. It can be a really small one, that might be merged into a bigger one later, that's still ok. What will happen is that you'll start with some tiny programs, and you'll learn how to make more complex programs by either taking small projects that you have written, or even external libraries, and make code that gets more complex. Since this is what you do when developing software, it will provide you with a good training ground for you to be able to do just that.

Even if you just want to code some applied models, and you just need to do something specific, you will probably use some optimized libraries of some sort and even then you need to be able to develop software where you are taking lots of separate code bases and merging them together.

You tend to do this in large scale development only the code bases that you are dealing with are a lot larger and a lot more complex.
 
  • #10
Floid said:
I disagree about programming being hard to learn yourself. I think it is easy to learn yourself and self taught programmers generally program better and understand what they are doing more than those who learned to program through classwork.

As you pointed out, programming is mainly learned through doing. But coming up with that something to do is really easy. To start out with, write a program that does basic tasks like reading a file, sorting the data, and writing it back (teaches sorting and file i/o). Write a program that generates all possible combinations of 4 letters (teaches nested looping). Write a program that does numerical integration. Write a basic checkers or poker game. etc etc

Struggling to figure out how to do these things and making errors along the way is where the learning occurs. The results are pretty easy to look at and see if you got it right.

Of course, anything can be self-learned in principal, provided you have the proper resources, but it's a matter of how difficult or easier it is compared to a classroom setting. I just think that having someone to help around and give you comments about how you're doing or having people to work with helps more in a class like programming when compared to a more theoretical subject such as some area of Math or Physics.
 
  • #11
The OP says straight out that (s)he is "not really a big fan of computers" -- doesn't sound like a good candidate for self-study.
 
  • #12
I would suggest learning your first programming language (JAVA or C/++ preferably) in a classroom setting. After that, learning additional languages can be a breeze because you have a point of reference.

The reason for the classroom setting is more than just 'learning the language', you also learn good coding habits and learn about Object-Oriented Programming in a structured manner.
 

Similar threads

  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 16 ·
Replies
16
Views
3K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 7 ·
Replies
7
Views
4K
  • · Replies 14 ·
Replies
14
Views
4K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 3 ·
Replies
3
Views
2K