Self teaching computer programming vs taking a credit class at college

In summary: I think that is a great idea. It's a great way to get started with programming, and you'll be able to learn more about how to program by doing something specific.In summary, it is a good idea to learn computer programming either on your own or in a formal class. However, self-learning is easier and can be faster than formally learning the skill.
  • #1
xdrgnh
417
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
  • #2
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.
 
  • #3
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.
 
  • #4
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.
 
  • #5
Alright thanks all of you guys for the advice I'll make sure to find time to take the classes.
 
  • #6
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.
 
  • #7
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.
 
  • #8
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.
 
  • #9
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.
 

1. What are the benefits of self-teaching computer programming?

Self-teaching computer programming allows for flexibility in learning at your own pace and on your own schedule. It also allows for a personalized learning experience, as you can focus on specific areas of interest and skip over material you may already be familiar with.

2. How does taking a credit class at college differ from self-teaching?

Taking a credit class at college provides a structured curriculum with set deadlines and assignments. It also offers access to experienced instructors and resources such as textbooks and labs. Additionally, taking a credit class may provide opportunities for networking and collaboration with other students.

3. Is self-teaching computer programming as effective as taking a college class?

It ultimately depends on the individual's learning style and dedication. Self-teaching can be just as effective as taking a college class if the individual is motivated and disciplined. However, taking a college class may provide a more well-rounded and comprehensive education.

4. Are there any drawbacks to self-teaching computer programming?

Self-teaching computer programming requires a high level of self-discipline and motivation, as there is no set schedule or structure. It also may not provide the same level of guidance and support as a college class. Additionally, self-teaching may not be suitable for those who prefer hands-on, interactive learning.

5. Can I combine self-teaching with taking a college class?

Yes, many individuals choose to supplement their college classes with self-teaching to further enhance their understanding and skills. It can also be beneficial to take a college class first to gain a strong foundation and then continue self-teaching to deepen your knowledge in specific areas.

Similar threads

  • STEM Academic Advising
Replies
16
Views
414
  • STEM Academic Advising
Replies
12
Views
1K
Replies
6
Views
933
  • STEM Academic Advising
Replies
19
Views
1K
  • STEM Academic Advising
Replies
22
Views
3K
  • STEM Academic Advising
Replies
14
Views
1K
Replies
10
Views
2K
  • STEM Academic Advising
2
Replies
63
Views
5K
  • STEM Academic Advising
Replies
3
Views
950
Replies
2
Views
881
Back
Top