I don't know about you, but my Visual Basic experience starts with VB 3.0. I'd used some older "non-visual" BASIC dialects before that, so it wasn't a huge leap for me to this new world of GUI programming. With a few months of study time, it was literally possible to know everything that there was to know about VB at that point. All that "keeping up" required was tracking the third-party custom controls market to watch for new and innovative chunks of functionality that could be slapped into VB forms.
But that, alas, was over a decade ago. In the interim, Microsoft has hired more developers than you can shake a good-sized stick of RAM at, and they've all been programming away on increasingly complex iterations of VB (and, of course, other things). Every year, there are more fabulous products, more things added to VB's core syntax, more add-on libraries, more programmable extensions...more, more, more. Meanwhile, there's still only one of me. Something has got to give.
And if I'm having a hard time keeping up, I can only imagine what it's like for someone who hasn't been following along for over a decade. Not only is it no longer possible for any one developer to know everything about VB and related development topics, it's difficult to even get a clear enough picture to know where to start.
One reason Microsoft throws the annual Professional Developers Conference is to try to hand out a roadmap of important technologies for the years to come, but this year that may have backfired. A lot of us are just starting to feel recovered from the long Visual Studio 2005 beta cycle, ready to catch our breaths and actually do something with released software for a change - only to be hit with a fire hose of new projects and announcements at this year's PDC. Atlas, LINQ, Sparkle, Office 12...the list goes on from there.
That's not to mention new details on things we already knew about, from Avalon and Indigo (sorry, Windows Presentation Foundation and Windows Communications Foundation) to Team Foundation Server and Windows Vista.
I am becoming increasingly convinced that the age when anyone could seriously say "I am a VB developer" and convincingly present themselves as a generalist, able to work in any corner of the VB technology universe, is drawing to an end. We're now at a point where there's a core of essential VB knowledge - the basic syntax of VB .NET, together with a knowledge of the core .NET Framework namespaces - and beyond that, one simply must specialize. You can either specialize accidentally, by working on a particular project and so honing your skills in whatever area that project happens to call for, or by design, by picking what you hope will be a hot area and really learning the technology. But one way or another, you'll have to choose some subset of the VB world to have a deep knowledge of. You can't, in 2005, have it all.
The question, of course, is what to specialize in. To a certain extent, you can just pick what most interests you and drill into it, because nearly any corner of the VB world these days offers enough depth for you to be an expert. For example, there's plenty of room to specialize in using VB with Visio - knowing the ins and outs of the Visio object model and being able to customize Visio for client needs would be a very hot ticket in some quarters. On a more general level, though, I think if I were looking for a near-term specialty, I'd look in one of four areas:
Had I the luxury of thinking in the longer term, I'd probably look at how to hook my VB skills in with Office 12, or with the whole new world of visual design coming for Windows Vista. But those areas are still pretty darned fuzzy as far as action items go, even if the hype machine is already in motion. Of course, I could be wildly misreading the markets, which is why you need to keep an eye on the general trends. Even specialists need to keep a fallback position handy.
Mike Gunderloy is an independent developer and author working in eastern Washington state. His recent books include Painless Project Management with FogBugz (Apress) andCoder to Developer(Sybex). You can read more of Mike's work at his Larkware Web site, or contact him at MikeG1@larkfarm.com.