Has anyone accomplished teaching themselves the C Language? It's a given that such endeavors are much easier obtained with guidance from a qualified teacher, but for those self taught programmers, how did you find the process? How would you comparatively assess against programmers who may hold a graduate degree? What were the key elements that helped your progression from familiarizing yourself with what you were learning, to fully understanding and internalizing the skill, and eventually becoming acknowledged in the art of computer programming?
In my experience you do not learn programming by getting a degree or having a teacher. That will give you a (maybe good) start, but for the most part you have to work for it on your own. You can only master programming, if you keep on learning and if you think outside your own (and your teacher's) box.
I study computer science (currently working on the masters degree). They taught us Java, C, Prolog and Haskell. But so many of my fellow students are bad at coding, because they are not really interested in it. They only know and do what they where taught with the result that their code sucks. They inherited the bad habits of their teachers, they never tried other ways, never worked on projects on their own.
But one thing that is really good about studying computer science is the knowledge in math. I wouldn't know shit about math without it and I wouldn't have learned it on my own (just because I wouldn't know what I miss). Math helps to create, understand and analyse algorithms. You need it especially in certain fields like computer graphics. You need it to understand programming concepts (my book recommendation: Concepts of Programming Languages by Robert W. Sebesta)
You can learn programming without math, you will still be able to achieve most of your goals, but you will defintely miss something in the deep provided that you like to know some theory.
A degree doesn't make you a good programmer. It is always up to the student how he uses the knowledge.
I recommend to read this:
http://norvig.com/21-days.htmlSo how do you learn progamming? In my opinion you have to do your own projects, make sure you understand what you did. If it works and you don't know why (maybe because you copy&pasted most of the code), you won't learn. Keep an open mind, don't get stuck with one way of accomplishing things. Make experiments. If something is odd, try to find out why. Don't get rusty, program regularly. And read some news.