Your Training, Your Responsibility
You have a lot of training options as a developer, but it's on you to make sure you get the training you need, regardless of whether you're an independent contractor or work for a large company that pays for your training.
It doesn't matter whether you're a self-employed consultant or you work for a large company that covers training costs for its employees: Training is your responsibility. In either situation, you'll need to put in time and effort to keep current, and that means some unpaid hours.
Keeping up to date in technology has never been easy, and today's accelerated pace of change makes it more difficult. The cumulative effort required to stay current threatens to strangle our industry, but that doesn't change your responsibility as a developer to know how to use technologies effectively.
Staying in old languages is at best a temporary strategy because new languages and versions are better. You'll move forward whether you need OOP, event management, better security, an updated UI look, or specific features such as reflectionnot just because you need the features (and you do), but because businesses will demand these improvements. The demands of evolving technologies makes training important, whether you need to bridge the chasm between VB6 and .NET, jump from .NET 1.1 to 2.0 (Whidbey), or learn the latest techniques. The more passionate you are about learning and applying new ideas, the more you'll improve as a programmerif you've got the tools.
If you're an employer, remember that efficiency and quality in development depend on how well your staff is trained. Training tools are expensive, but not as expensive as not staying up to date. High out-of-pocket expenses mask the greater cost of time and the importance of quality training. It's a losing proposition to skimp on the quality or efficiency of training in order to lower direct costs.
If you work for yourself or your employer isn't going to support your professional growth, it's harder to set priorities because a week's training can cost as much as taking your best friend to Tahiti. Many programmers who still work primarily in VB6 face this situation. I wish I had easy answers. Upcoming Express versions and cheap PCs give you the equipment. Stay on the latest or beta versions, treat your time as valuable, and focus on building a support system for guidance. A support system goes both ways, and you'll learn as you help others.
There is a wide spectrum of training available. At one end of the spectrum, curriculum-based training classes are available on-site, online, and at training facilities. Any curriculum is a one-size-fits-all approach bound to teach some things you don't need. On-site trainers can customize their non-Microsoft curriculum; but it's tough to know what customizations you need. For convenience, curriculum-based training generally occurs in a dedicated week. Returning to your office, last week's emergencies grab your attention and by the time you shift what you learned in class and samples to your own work, you're probably struggling to remember it.
At the other end of the spectrum is learning on your own. You'll need a support system along with resources such as books, magazines, and Google, because .NET can be complex and frustrating. To create a support system, combine online communities, real-world user groups, and personal networks. Webcasts, white papers, articles, and samples abound on the Internet, and the challenge becomes separating the gold from the sand. Interactions with other people are a sluice box for finding appropriate material and summarizing known issues.
Other approaches to training can work. I've had success with leading custom training while using the team's own project, teaching the team precisely what it needs in context while moving the project forward or kick-starting it. On-site training is surprisingly cheap if you have the facility. You can also create study groups within your organization or as an offshoot of a user group. Conferences often have tracks covering fundamentals. You can task one programmer that has good communication skills to teach other programmers as he learns himself.
Make training a priority. Shut down the cell phones and don't allow interruptions. If you're a developer, take advantage of the best tools available, whether or not they occur during normal work hours. If you're an employer, provide the best tools you can afford to leverage your programmers' own efforts, along with appropriate encouragement and incentives. Whatever tools you use, training is a core part of today's development experience. You cannot remain relevant without ongoing attention to your training strategy.
About the Author
Kathleen is a consultant, author, trainer and speaker. She’s been a Microsoft MVP for 10 years and is an active member of the INETA Speaker’s Bureau where she receives high marks for her talks. She wrote "Code Generation in Microsoft .NET" (Apress) and often speaks at industry conferences and local user groups around the U.S. Kathleen is the founder and principal of GenDotNet and continues to research code generation and metadata as well as leveraging new technologies springing forth in .NET 3.5. Her passion is helping programmers be smarter in how they develop and consume the range of new technologies, but at the end of the day, she’s a coder writing applications just like you. Reach her at [email protected]