Simple Samples
All of this would normally be way off-topic for these forums, but since the subject is what path to take for learning, I hope this is not too off-topic. I apoligize for writing only about myself but I hope it helps.
I began in High School back in the days when there were no computers in any High School campus; a computer such as an IBM PC was science fiction. I took classes for High School students that were on Saturdays using computers in the Junior College and computers at IBM. Initially I learned Fortran and then COBOL. In High School, I began learning assembly language for the old IBM Mainframe computers; I have never had a class teaching assembly language.
I then went into the Army and was sent to programming school to learn COBOL but I taught the instructor instead of the instructor teaching me. At that time, programming was still new enough that the colleges had not yet caught up. The college courses were generally inadequate, I think. I was a COBOL programmer in the Army for 4 years. When I got out of the Army I was a COBOL programmer for various businesses.
So yes, I have not had very much training. I have learned most everything I know using documentation and books and such. I learned Intel x86 (which is also Pentium) assembly language and C and C++ on my own without classes. I learned Windows and Windows programming when I was asked to write a printer device driver. That was 16-bit Windows and there was no internet to use to get help. The DDK documentation was frustrating but I got it working using the documentation.
I do know the value of documentation. As an employee, I usually wrote specifications for programs I wrote unless management did not allow me the time to do that.
I think the best way to learn programming is to have a project and to learn what needs to be done to accomplish the project.
My initial reaction to people wanting to write games is that they are not serious programmers, but then I realize that games can be a good way to get a person motivated to learn programming. Also, my cousin is also self-taught and he has done some major game development, including one for the PS3.
I have a tendency to fall asleep in a class; teachers usually dump out details without the concepts necessary to understand how it all fits together.
I am not sure I responded to the comment that I am "giving advice that is inconsistent with how most people get to where they are". In the context of requirements definition, that is something that is common to systems analysis and certainly should be an essential part of systems analysis. As far as I know, systems analysis is taught in most colleges teaching computer science.