Saturday, March 29, 2003

Scoble wants to transition from advanced user to programmer. He's asking, and getting, some nice advice. As someone who's turned three of my friends into programmers, taught programming to many clients, and who's also taught guitar off and on, I figured I should add my two cents in.

Ignore the advice to start without VS.NET or VB since they "hide things from you".
Taken to it's logical conclusion, this would mean you should start with assembler. The hardest thing to do while learning to program is keeping motivated. If you start too low-level, the irratation can lead to discouragement. When I teach guitar, I tune the guitar to an "open chord" tuning. This allows students to lay the finger across and just move that barred finger from position to another. They leave the first lesson playing a song credibly.

If you start teaching guitar by explaning music theory, only the most gifted and motivated students will advance. If you start with some gratification, most people will advance. And, trust me, the gifted student will still progress as fast as he would have otherwise.

Start with VB.NET and VS.NET. Create a new windows application project. Drag and drop a button onto the form. Double-click the button and write code. Hit F5.

Write an application that solves a problem you have now.
Play a little at first. Feel good about what you've done. But, within a few days, you need to try and solve a real problem. Make sure it's a problem you have. This will start you on the road of building applications that satisfy users. This kind of motivation and problem solving will satisfy you, and will bring you into interesting areas of technology almost immediately, in a way that isn't academic or boring.

For instance, do you have a machine that's always running out space? Do you wish you could easily get a report of each directory on your system that has more than Xmegabytes inside it? Well, there's no application out there that does that. Write it. You'll need to learn to: take input from users, write out a report text file, scan directories recuresively, and learn how big a directory is. Once your done, use it. Heck, I'll buy a copy from you for $10.