Wanted: Skills, Not Just Knowledge
I don't think I've ever met someone who disagrees with me on this one topic: developers always need to keep learning. And there's no shortage of services that offer myriad choices for this education, from books to training video platforms, from online classes to conferences, and of course the assumed gold-standard: on-site classes. In 2014 alone, North American companies spent at least $1.4 billion on outsourced IT training. So most everyone seems to agree ongoing education is vital to the health of developer teams.
But sadly, most of the education actually undertaken in these efforts doesn't measure up to what it could or should be.
Over the last five years, I've sold nearly 100k copies of books I published on JavaScript, and more than 290k hours have been watched of my online video courses. I've also taught more than 3000 developers in-person over more than 350 days of on-site workshops, for huge multi-national companies, small teams, and every type in between. My career is passionately focused on developer education, knowing what works and what doesn't.
But out of my large audience, I can count on my own fingers the number of developers who I've been personally connected to. Sure, I've "taught" in many one-way interactions, but there's been no ongoing 2-way relationship for that learning to deepen and flourish. That's just not how the existing models for education work.
And quite frankly, it's not because people don't ask. At least a couple of times per week, someone requests I directly mentor them in JavaScript. The best part of this is that it proves people are hungry to go further. But the sad fact is that I have to decline these requests; right now, mentoring 1-on-1 is so time consuming that the opportunity cost of taking on some mentees would take so much time away from my broader industry endeavors, my overall impact would suffer. More on this tension in a bit.
....
As I look around at educational services developers can choose from -- indeed, most of which I've "scaled" myself through -- they are all highly transactional. You consume a fixed amount of content, usually in a fixed window of a time, in exchange for a fixed amount of dollars.
The problem is: transactional education without time and relationship is just knowledge transfer. It's shallow. It doesn't stick.
80% of knowledge you hear/read will be lost within a few weeks if you don't meaningfully practice it (1). I think this simple equation is quite intuitive, but many don't consider its implications: Knowledge + Practice Over Time + Guidance = Skill. If all you focus on is knowledge, the equation doesn't balance, and most of your learning potential is lost.
We often exalt the "self learner" -- full disclosure: I consider myself one despite also having a formal CS education -- but self-directed learning by itself is missing the most proven parts of what makes education effective, sustainable, and retainable. Sure, anyone can learn in spurts; you can cram for a test in college and then dump out that knowledge the next day. But can you count on that knowledge to last?
If your primary strategy for continued education is intermittent, upfront content heavy, but lacking practice and accountability, odds are you won't keep it up forever, and you may not even reap much benefit from the bits you do consume.
The notions we currently accept as the norm for education are relatively modern; the classroom as we know it is mere hundreds of years old at most (2). In dumping knowledge on a person for long periods -- even years at a time! -- so they can "graduate" and go be practitioners of that knowledge, what's missing is that skill doesn't follow immediately from knowledge. It never has, and never will.
Knowledge can transfer quickly, but skill takes time.
How does a chef become a master of their craft? What about a plumber? Carpenter? Stone Mason? Name almost any trade, across all of human history, and the answer is: apprenticeship. These folks don't learn all the knowledge up front in a classroom then go into the "real world" and immediately start wielding those skills. Humans can't just upload new skills into our brains like Neo "learned" Kung Fu (3).
We know that's just not how humans learn.
Actually, we learn best by receiving little bits of knowledge at a time, from an expert source, paired with time and practice to turn that knowledge into skill. Rinse, repeat. And we don't do this on our own on some isolated island. We learn best when an expert is paired with us, demonstrating first then watching us and guiding us to correct our mistakes. We learn through relationship over time.
Today, this kind of apprenticeship is called mentoring.
Ask a room of a hundred developers if they think mentoring is important to their learning and future career success, and I bet you get more than 95 eager hands raised. I hear/see developers all the time asking for a mentor, for guidance, for advice on how to make their learning path more effective, etc.
Some companies, especially larger ones, have processes for internships or apprenticeships. Some even encourage informal mentoring from senior team members to junior hires. But whatever companies try, these efforts are ad hoc. And these programs are also expensive and hard to maintain. Because they focus on individuals instead of teams, most companies eventually find they can't sustain these efforts, so they turn to outsourced education.
There are external education companies that offer developer mentoring. But they focus primarily on the not-yet-employed and on individuals, not groups or teams. This narrow view of mentoring just doesn't have enough reach to make a big difference for hundreds of thousands of teams of software developers. We're talking about a mostly unaddressed gap in the market, but one with enormous financial potential.
To be clear, mentoring is not that rare in the modern workplace; mentorship of sales staff and executives is quite common. But mentoring of software developers isn't widespread. If there's near universal agreement that mentoring matches how people learn best, and people want to learn in that way...
...why then is developer mentoring not where the external services for technical educational are pivoting? Why aren't $billions being spent on figuring out developer mentoring, and delivering it at scale in the workplace?
I believe there's two main reasons:
- Mentoring seems impractical for the size of the demand, because mentoring sounds like it must be 1-on-1 to work. We'll never have as many experts as we have aspiring learners, so mentoring with that perspective doesn't scale, and never will.
- Modern business is all about scaling solutions, and we know software is scalable; people are not. So, naturally all the attention goes to scaling the thing we can put in a computer: the content.
In a noble effort to educate the masses of technology workers, we've achieved knowledge transfer at staggering efficiency but failed at basic comprehensive education because we left skill development to happen on its own. The thinking seems to be: just give them the knowledge, and they'll figure out the skill part as they go.
Consider my 4 year old daughter: if I taught her all the head knowledge necessary to become an Olympic swimmer, then I threw her in the pool and yelled, "Swim!", what are the chances she would eventually flail around enough to develop an Olympic-quality swim stroke from that knowledge and experience?
About zero; that's precisely how I've been feeling about the problems in technical education for the last several years.
....
I'm convinced that if we want to "fix" education -- and btw, I don't just want to scale myself but actually help all technical education deeply stick with learners -- we have to rethink and reshape it, not just iterate on it. Instead of by-definition limited transactions, developer education needs to be built on mentoring relationships over time. The key is to scale these relationships, not the content.
If so many before have failed, and so many other smart folks are investing significant figures only on new technology, just to deliver education in all the known "proven" models, what kind of different path could I hope to chart?
I believe it's time for a completely fresh take. My answer to scaling the mentor relationship is DevGo. I have much more to say about the DevGo platform and how it will empower skills-transfer learning, so keep reading!
-----------
1. There's far too much research on the topic of learning retention to list here. And unsurprisingly, not everyone agrees! Summaries like this one can be helpful at a glance, but if you want to go deeper, there's a lot more to dig into. My "80%" citation in this article draws from various sources, and is intended to merely illustrate the rather self-evident retention problems rather than be prescriptive of solutions.
2. The "Prussian Education System" is largely credited as the primary model for modern public education in the US. In truth, lots of different models have been mixed-n-matched these days, so the history is not nearly as linear as some claim. My critique of these models is orthogonal to most of that debate.
3. Neo is a character in the 1999 science fiction movie, "The Matrix", who was able to "learn" various fighting skills like Kung Fu by literally plugging into a computer and having the ability downloaded straight into his brain.