Is programming really that hard or is it more a matter of time needed to be invested studying/working becoming better?
It's really a matter of time invested. I should probably take that back about self-trained programmers being better. Instead, what I should say is that self trained programmers are "usually" more interested in programming, which is why they started teaching themselves. If you like programming you will do it a lot, especially outside of class, and that will give you a lot more experience very quickly. On the other hand, I have a number of friends who just started programming in college. Some of these quickly became enamored and did as much outside of class as I do. Although they started behind, I have no qualms that they are as good in a couple years as those who taught themselves. Also, be careful with my statement -- I never said that those who started programming in college will never be as good as those didn't. Instead, my point was that, right out of college, many people will only have 4 years experience (mostly in classwork). In contrast, I am one of a group of people that I know that had contributed to a number of large open source projects and other things (like kernel hacking) before college even started. I'm sure that the smart people who major in CS will have no trouble with doing that in a couple years time, but I'm hesitant to say that 4 years of teaching assignments actually prepare you for programming in industry.
It's really a matter of time invested. I should probably take that back about self-trained programmers being better. Instead, what I should say is that self trained programmers are "usually" more interested in programming, which is why they started teaching themselves. If you like programming you will do it a lot, especially outside of class, and that will give you a lot more experience very quickly. On the other hand, I have a number of friends who just started programming in college. Some of these quickly became enamored and did as much outside of class as I do. Although they started behind, I have no qualms that they are as good in a couple years as those who taught themselves. Also, be careful with my statement -- I never said that those who started programming in college will never be as good as those didn't. Instead, my point was that, right out of college, many people will only have 4 years experience (mostly in classwork). In contrast, I am one of a group of people that I know that had contributed to a number of large open source projects and other things (like kernel hacking) before college even started. I'm sure that the smart people who major in CS will have no trouble with doing that in a couple years time, but I'm hesitant to say that 4 years of teaching assignments actually prepare you for programming in industry.