markbsd said:
@taz, thank you very much! Your post is very informative. I will follow these steps immediately. I have the time and resources to go back to school, so I think the abovementioned degree will be a good choice! Thanks, again.
I don't know old are you but I admire your will. Programming can be "hard" or confusing for some people (and I'm not implying that this is your case, just to give you a heads up) but that is just because they are not used to a "programmers way of thinking". Every person can learn what another person knows, it's just a matter of time and persistence.
Important thing is not to skip stuff in your beginners journey. First learn basic programming idioms then algorithms and data structures (I suggest you use C for both) and in parallel learn about computer architecture (memory, storage, CPU architecture etc. how stuff works and how are they implemented at the lowest level). Once you are done with that you can branch to whatever field you are personally interested in. And that field will then dictate what new technologies you need to learn. So start at the beginning and work your way up, otherwise you will have holes in your knowledge and thees holes will bite you later on (just as they bit me because stupid people gave me stupid advice) I guarantee it.
K&R is an all time classic and you can't go wrong with it BUT prepare your self first by taking a "lighter" introduction to C like the one link I already provided (and I strongly suggest you use that link because I know what is written and taught in that tutorial). Otherwise it might backfire resulting in giving up. Also try to solve as much as possible exercises from the K&R (preferably all of them).
Do your self a favor and stay away from books that have titles "Learn C/C++/Java/whatever in 30 days". Programming is a skill that is developed over the years and yes it takes time to become a good programmer (I'm talking years). Do no strain your self to just one programming language, one framework, one library etc. A professional knows what is the right tool (which at the end a programming language is, just a tool) for the given task and experience is what will give you this confidence to choose right. But experience comes with time (again I'm talking years), so forget about becoming a programmer in 30 days.
I would also like to say bit more about collage. Odds are you won't learn much of real life stuff at collage BUT it should give you a god background from which you can then continue to upgrade your knowledge and skills. Also never forget to work/learn at home besides what they teach you at collage.
Another problem with "self teaching" is that it requires a lot of discipline. And collage can "force" you to stay in one mind set. Plus you will meet a lot of people that are into programming and this is a good think because you have to talk and share your ideas with others.
Scripting languages are more forgiving than C.
True, but it's a pit fall for beginners IMHO.
Learning C is all fine and well, but it's a dated language written by a pair of greybeards back before they were grey (they always had beards).
C is not dated and is still heavily used in the real world. Odds are you wont end up with a job that requires you to programme in kernel space but embedded domain uses C on a daily basis (and that won't change in the near future).
Not a prof but it counts:
link
If you want to do FreeBSD work, alas you'll need to learn C. If you want to earn a living, you should learn Java.
It's more like you should learn tools, frameworks, libraries, protocols, enviroments, architectures and etc. JUST the programming language won't count for much. And btw. I use C almost every day and I get paid for it.