
The Careers Day poster they rejected (Photo credit: Alun Salt)
DISCLAIMER: I will use specific examples throughout this post without naming any names. I want to make it clear that this is not picking on any one particular institution or form of IT training. I have been a trainer for one of Kansas City’s largest IT training firms. I have taught college classes. I have made training DVDs. I have subcontracted to teach with other training companies who span the globe. These issues are in lots of places, so please don’t take any specific example and assume I’m trying to come down on a particular institution or practice or favor one over the other.
In doing the research for this post, I started going through the websites of various “career changer” programs. You know, the programs where someone wants to make a big change and get into an IT career, but they have no real background or experience, so they sign up for a multi-week program to teach them foundational skills that, ideally, is enough to get them an entry-level job to start them down a new career path (incidentally, I totally believe in this model if done well). I was looking for success stories.
What I discovered was that most success stories were several years old. In fact, one institution led with a great success story in their marketing materials for their program. That story was five years old.
Think about that for a second. All the students that pass into and out of this program, month after month, year after year, and the best results they’ve gotten so far were five years ago.
Despite the current fad of people with no real knowledge of the field inventing statistics to try and prove there’s a developer shortage in Kansas City, the reality is far more complicated. If there’s any shortage, it’s a shortage of highly qualified developers in Kansas City. If you post a job opening in IT right now, you’ll have no shortage of applicants. You’ll still have a hard time finding someone. In fact, just a couple of months ago, a friend of mine who is responsible for hiring for a very large organization here in Kansas City told me point blank, “We’re getting lots of applicants, but most of them are graduates from Institution X and don’t know s***.”
There’s a disconnect. Four-year institutions, two-year institutions, and training companies continue to churn people out into the market, but the market doesn’t seem to be buying.
On the other side of the fence are the pundits who just flat out say that colleges and/or career-change programs just don’t work. This doesn’t seem right either, because there are successes and, quite frankly, it’s hard to think of another model that can accommodate the quantities and speed of the market right now along with the depth of knowledge required to write good software. If you don’t have organizations dedicated to making this happen, the odds are good it won’t happen at all.
My premise, which of course may be wrong, is this:
Organizations who train IT careers, specifically development, need to ditch their current models and adopt ones that are market-responsive and student-first.
Curriculum
Most IT training organizations are not matching their curriculum to demand. This is a known issue with two and four year institutions, but it is a staggeringly huge issue with IT training companies and career-change programs in specific, and it has been this way for a very long time. I’m not talking about the specific manuals they use or whatever; I’m talking about the actual topics covered.
Every so often, I’ll see an update somewhere that looks something like this, “Getting ready to learn design-time data binding to datagrids. Whole new world!” or “Finally creating DataSets. This stuff is awesome!” and I die a little inside, because these are the functional equivalents of someone training for the medical field and tweeting about leeches and hacksaws.
Nobody wants that stuff because nobody is doing that stuff. No company is trying to hire someone for web technologies and methodologies that are now 12 years old (NOTE: Ok, obviously, occasionally people do hire for very old technologies because they need to support old products or simply refuse to change, but I’d say that’s not where most of the technical demand is).
In researching this post, I pored over job openings in Kansas City for .NET web development, and they were asking for MVC, HTML 5 and JavaScript, NoSQL, ORMs, TDD, MVVM, and design patterns. I found two that asked for ADO.NET (along with the other things on this list). If the whole purpose of your company is to release people into the field who can perform a trade, why isn’t the taught curriculum aligned with what people are asking for?
Teaching Methodology
PowerPoint slide. Explanation. Demo. Lab. Not. Ideal. For. Career. Building.
That way is ok-ish for getting across a specific technical topic to a specific kind of audience and background: namely, the kind of audience who already knows how to build applications and practically apply their knowledge in the field.
But if you want to teach someone how to build applications, then you build applications and instill the requisite knowledge as you go. And when I say “build applications,” I don’t mean labs that have been specifically designed around a particular concept. Those are notoriously unrealistic and often actively teach bad practices and bad ways of solving problems, because the focus is on that specific concept and not the other parts of development around that concept.
“But if I’m trying to teach someone data access, I don’t have time to teach things like proper separation of concerns in the class layers or HTML 5.”
Exactly. That’s exactly the problem right there. You’re trying to teach someone data access instead of teaching someone how to build an application and talking about data access in the context of building that application. People leave your training (even if it’s a four year program) knowing a ton of isolated, bad examples of various technologies, but they do not understand how to solve problems with these tools, how these tools interconnect, or when these tools are bad decisions. And because you are so focused on teaching them a technology, they probably have never even seen a realistic example of it.
This dovetails with another issue, that most IT instructors/professors in Kansas City are not developers or haven’t been for a long, long time. They are just as incapable of teaching a class driven by actual development as their students, and their knowledge and experience is just as limited by the curriculum as the students. It’s not impossible, but it’s very hard to learn a trade from someone other than a tradesman.
Economics and Risk
Most IT training programs require the student to pay regardless of the result. Some companies are thankfully breaking away from this model, but it’s still the most common model. Students pay tuition to the training institution no matter what.
Two problems here.
On the student side, it puts them at enormous risk. They have to pony up (or taxpayers have to pony up, in some cases) several thousands of dollars that may ultimately result in nothing. Although I’m way more concerned about the students than the institutions who train them, this is actually not the biggest problem.
The biggest problem is that, on the institution’s side, their primary motivational force now becomes getting people into their program. Not preparing them for jobs. Not getting them jobs. Getting them in the door.
When the training company I worked for started doing career change programs around late 2000, they made all prospective students take a short test. It was things like pattern recognition, etc. Nothing heavy duty, but it did look at their ability to spot patterns, think symbolically, etc. At the time, a student had to score a 90% or above to be admitted to the program.
Over time, it got lowered to 80%.
Then 9/11 happened and the training market tanked big time. 60%.
Eventually, the test was completely done away with. We got people in our program who were great people, smart people, and very gifted in many ways, but coding at an in-depth, professional level was just not something well-suited to their way of thinking and gifts. But we took their money, gave them their diplomas, and sent them out the door. And I quit.
The thing is, the success of our students only indirectly affected our prosperity (by way of marketing).
How would it transform things if institutions only got paid if and when their students got their first IT job?
Holy crap, right? Now, I have an interest in helping students find their proper niche here or elsewhere. I’m only interested in putting the student in a web development program if I think the student has the chops to be a professional web developer instead of the chops to secure a $12000 loan.
I’m motivated to make sure my curriculum reflects what business owners want and need. I’m motivated to make sure all my students are solid. I’m motivated to make sure anyone who learns how to develop from me can go into a team of experienced developers and play at or above their level, because if they can’t, I don’t make my money.
Before I close, I just want to say that deep within the chocolatey-good depths of my cynical heart, I am warmed to see some amount of rising to the occasion. The Disruption Institute, for example, shows a real initiative in looking not only at what the market needs today, but will need in the very near future, and organizes their curriculum around that – curriculum that has been put together by actual developers in the field.
I believe in training companies. I believe in two year and four year computer science programs. They all have their place for different people and different goals, and it’s a poorly thought through plan that would advocate getting rid of any of them. But you have got to step it up. If you align yourselves with market needs and commit yourselves to the students’ welfare first, the money will follow.