I picked up a book a couple years ago titled "Microsoft Visual Basic 2008 Express Edition: Build a Program Now!"
It walks you through creating a VB application to grab weather info from MSN and display it in the taskbar, and along the way gets you familiar with writing functions and subs and such, interacting with a web server, getting XML and a few other things. It explains how it all works and how it is being used, but is focused mostly on what your using it for versus everything you could do with it.
Still, it got me started. After doing that and then modifying it to add a couple things, I started looking at apps that I'd like to have. So I created a program and database to inventory all my DVD and Blu-ray movies (including a section to track which people I've loaned discs out to). That had a bit of a hefty learning curve as I didn't know how to store an image in a Microsoft Access database, and then how to get it back out and such. I learned how to add/delete/manipulate data in the DB file using Google and searching for each individual element or thing I was trying to do.
After that I wrote a program (an agent really I guess) that uses UDP on the network to signal other computers with the same program and raise a visible and/or audible alert when someone is going out for a smoke break (lots of folks at work like this one). I just recently wrote an MP3/WAV/WMA audio player for an old touchscreen computer for a co-worker. He wanted simple to manage playlists and really big buttons so they were easy to press. I stored the playlists as textfiles, set it up to create/manage/delete those lists, and shuffle/continuous play with volume and tone controls. He's happy as a clam, and I learned it all on Google.
So basically, come up with an idea of something you want, some utility or simple function or some-such that you'd like to have at home or work or whatever, then write it. Google all the things you don't know or don't understand, and when you get it working the way you want, and have it look the way you want, then go buy yourself a beer and think of the next utility you want to write.
That's what I've been doing off-n-on for the last year, and now I can write most of this more basic stuff either out of my head or using the built-in Intellisense stuff in VB Express since I've already seen a lot of it and I now have a good feel for how the language works.
I just today finished an app that monitors different computers and network devices to see if they're online, and if it's a PC it checks to see if a specific program is running and who's logged into the computer at that moment. Most of that I already new how to do from previous things I tried, I just needed to learn how to use ListViews to handle/display all my data (and thank you Google for helping me find the answers on that). The rest I already knew, and in fact I worked up the code layout and interface before tackling that final listview part, which took me about a day to learn and understand and then tweak to my liking.
All that started with just one book and being very comfortable using Google to figure out the rest. I've found a few good web sites along the way that usually have many answers for me (including this one) and they've become staples in the Bookmarks on all my computers.
"I can fix it!"