More or less in order of priority, but mutually inclusive:
1)
Find a class with a good instructor if possible. Hehe...haven't experienced this firsthand, but it sure seems like a good idea.
2)
Get a good book on C. This is easier because there are many quality C books out there that are universally recognized as such. I have a book list somewhere which I'll try to remember to post. One excellent book is the famous K&R book -- The C Programming Language by Kernighan and Ritchie -- A /must/ have eventually.
3)
Web tutorials. There are some (not many) good online tutorials that are a good supplement to the above, again I have a list
4)
Newsgroups. Among others, read comp.lang.c Be sure you read their FAQ and read the postings for awhile before posting yourself. There are several C experts that are regulars in there that know C very very very well.
I learned VB before C as well, so I know where you're coming from. The toughest thing (IMO) coming from this direction is learning dynamic memory management, how and when to use pointers and the differences and relationships between pointers and arrays (VB really pampers you ;-). So, focusing early on getting this stuff wired is the best quick advice I can give.
You mention C and C++, but these are now, more than ever, completely different languages. You may as well say C and Java. Try to decide on one of them and focus on that for the time being. There isn't a quick answer as to which one as it depends on you and where you're going.
Personally, I found it a good process to learn C then Java then C++. C teaches you (relatively) low level programming, Java teaches you OOP while sheltering you from low level programming and memory management. By the time you get to C++ you won't be intimidated by the memory management stuff and OOP will make sense.
HTH,
Russ
bobbitts@hotmail.com