First off, that's awesome! It's so gratifying to see someone else discover that same spark that made me fall in love with programming. Keep it up - you'll love it.<p>Some suggestions for you:<p>* Find a community based in your interests. You'll find VB and C# communities around the web, and any number of IRC channels (look at irc.freenode.net - most development-oriented projects end up there). Find a channel and idle in it. Soak up tidbits of knowledge. Try to answer others' questions. Just participate in a community of developers, and you'll find yourself being spurred along.<p>* Find an open source project that interests you, and try your hand at contributing. Fix a bug, provide art resources, something to connect you to the project. There are lots and lots of people working on really neat things that could use help, and there's no better way to learn than to do.<p>* Build lots of toys. An apprentice doesn't end up building a cathedral his first year in the trade. Small projects - like your dad's need - are a wonderful way to practice. Each project will expose you to some new concept, and help you learn some new technique.<p>* Don't expect a CS degree to teach you about programming. CS is just that - the science of computers. You'll learn algorithms, compiler design, how processors work, and all sorts of stuff like that, but any actual development experience will be incidental, more likely than not. That's fine, as long as you realize that a CS degree is not a trade degree. It will augment your prowess as a developer, but it will not immediately make you one. That's up to you to cultivate.<p>* Don't expect to support yourself with it financially for a little while yet. I don't want to be discouraging, but once you enter into the business end of development, standards and expectations get much higher, and it can be very crushing if you don't have the tools in your belt yet to deal with them. If you can pick up small jobs here and there, do it, but don't look to make a career out of it with 6 months experience.<p>* Never stop learning. When you find yourself becoming comfortable, find something new to learn. A colleague of mine held the goal of learning and using a new language or technology stack every year. I've adopted that for myself, and it's wonderfully beneficial (this year is Android development). You will keep yourself exposed to new ideas, and continually widen your vision of the field.<p>* Just start running with it. An artist only develops their skill by drawing and drawing and drawing and drawing. A runner only develops endurance by running and running and running. A cook by cooking, a pilot by flying. There is no better teacher than experience. Some ideas to start yourself out might be an address book, an RSS reader, or a music player. Try your hand at a web application. Pick up a scripting language, like Ruby, Python, or Lua (you can use Lua to script .NET apps, so perhaps it's a good fit!). All you have to do is start <i>somewhere</i> and start doing it. You've started that with your dad's project - just keep it up now. You don't get to revolutionize the world on your second project ever, and that's okay. Your second project is a stepping stone to your eventual world-dominance app.<p>Good luck with it!