They’re just not that useful anymore. Once in a while, I’m notified through the company grapevine to go look at some of the available courses. When I’m free (or bored), I’ll glance at the list of technical courses. Boring. Boring. Know that already. Boring. Hmm, interesting, but it’ll never get approved. Know that already. Ok, done, didn’t find any courses I want to attend. Delete email notification.
Dated by the time they’re born
Technology moves fast. By the time that technological knowledge is condensed into a formal course structure, it’s already old. For example, by the time I was slated to go for my ASP.NET 1.1 course, the .NET framework 3.5 was on the horizon.
The technology had to be out and be stable before the company (or department) adopts it. Then there’s budget constraints. Then there’s personnel quota. By the time I get to go for a course, it’s old news. Worse yet, I’ve already mastered practically everything I need on that topic through personal trial and error and Google.
Do you know why cutting edge technology is cutting edge? Because it’s not done before. And if it’s course material, it’s already been done.
They assume you’re a novice. I’m not a novice. If you’re a polymath programmer, you’re not a novice too. If you’re even just a moderately proficient programmer, you’re not a novice too.
Much of the course material can be skipped or at least covered at a quick pace. They never seem to have enough time to cover the advanced material. You don’t need the basic stuff, that’s what reference books are for.
“Oh, you want to know the advanced stuff? We have an advanced course on that.”
I went on that advanced course. And I knew everything covered in that course. Oh wait, there’s that last bit on the last day that seemed useful. On second thought, nah, I knew that too. I was bored out of my mind, crying silently in my heart about the loss of those few days.
I want it now!
As a professional programmer, you’re in a hurry. There’s a deadline. There’s no time to go for a course and then find that you’ve learned nothing that can help you in your current project.
Due to budget and time constraints, you turn to the Internet. Technical and programming forums, discussion groups and blogs. The search engine becomes your best friend. Solving your technical or programming problem becomes thinking up search phrases that gives you the answer within the first few search result pages.
Change, or fade into history
Specific problems arise because of the inability to combine several disciplines together. Suppose you need to grab some data from an HTML page using C# and you figured regular expressions would be useful. You don’t need a full course on HTML. You don’t need a full course on C#. And you certainly don’t need a full course on regular expressions.
You need to know how you can combine your knowledge of HTML, C# and regular expressions together to form a solution.
I don’t have an answer to this. It’s not cost effective for courses to pull in knowledge from other disciplines. It’s not useful for courses not to pull in knowledge. For now, I’ll still rely on programming forums such as Dream In Code and communities like stackoverflow.