I'm completely self-taught. I started back in 1981 with versions of the then
BASIC language. What I did (way back then) was first read through and
familiarized my self with the various functions and (for VB) statements that
comprised the language. I didn't memorize their syntax, just that they were
there and what they did (syntax could always be looked up until repetitious
use allowed me to "know" them by heart). Then I decided on a rather complex
project for a beginner (I choose to make a slot machine program... graphics
and all) and sat down and started to figure out what I wanted and what
functions and statements I *thought* I might need to accomplish this goal.
Then I started to write code... and made a TON of mistakes. This was good. I
learned more from my mistakes than if what I thought would work actually did
work. The reason... you learn the limitations of the tools you have to work
with faster when they trip you up by not working. Now, becoming good at
coding didn't happen right away... it took several more complex projects to
start to lock the concepts and limitations into my mind. Okay, the above is
just a long-winded way of saying practice, practice, practice. I believe
experience is the best teacher... not books, classes, etc. Next, when things
start to make sense to you... then start looking at other peoples code and
try to figure out how what they did actually works. These newsgroups are an
excellent resource for that stage. I didn't have anything like it back when
I started, so I used magazines (back in the early 1980s to early 1990s,
magazines posting code to be typed into your computer were all the rage).