To all of you paid, professional, developers, how did you begin? Did you pick up a book, search the internet, or go to school?
Programming at it's heart is simply problem solving. As a kid I wasn't really thinking about programming (although I did have a ti-99 at one point and remember writing t-basic programs - sucked b/c I didn't have any way to save them lol), but more about taking things apart and putting them back together again. My toys were always in pieces and being rebuilt, my NES was the same way, although I was very careful to make sure I didn't leave it in a non-working state
I started college as pre-med and got my first 'real' computer (P75 ftw!) and it only took 1 semester for me to realize I was spending more time programming and solving other computer problems than I was learning about biology. Switched majors and now I've been developing software for more than 10 years and have my masters to boot.
Looking back at my childhood and my interests growing up, I don't really know how I could have been anything else.
Well the instructors leave WAY TOO many gaps in explaining certain things. They forget key elements and end up leaving everybody in the dust. The next day you show up you think to yourself, "I'm sorry, was there a class yesterday after I left? Do they have classes at 11?"
Frustrating.
The thing about computer science is that you can't expect much of it to be taught in the class except for the base underlying principles. I'm not trying to be rude to you, but it's a huge field that is always advancing so you have to be able to take bits of what you know and work on connecting them together on your own. After my first year in undergrad, languages were no longer taught (they were only taught in the first year as a means to explain whatever the topic happened to be). The teacher would walk into class the first day and basically say we're using X language for all the assignments, look it up.
As an aside I had one teacher who didn't care what language the assignment was turned in as long as it had a compiler for his linux box and OGL bindings (it was a graphics class). I turned every assignment in that semester in a different language just to force myself to explore other languages
I don't know how anyone could become an effective programmer from books alone. I've read ahead in my book and it all seems foreign to me, until my instructor explains it.
Any single book is just a start (I have a bookshelf full and more PDFs than I can count). If you have a question from your reading then find another book, search the internet, or ask a question on a forum like this. If it's code related then build the smallest test program you can and run it. Change it, run it again. Watch what happens and explore different things. That's how you learn.