Editor’s note: Gregg Pollack is CEO and founder of Code School, an online learning destination for existing and aspiring developers that teaches through entertaining content.
Any time I ask software developers what they do to become better at their craft, I get a mix of responses — from taking on side projects to scanning Hacker News, to following podcasts, to taking online courses and tutorials. And often it’s a mix of those things, all of which mostly happens off the clock.
But there’s one thing I rarely hear: Their employers playing an active role in the process.
It’s a funny thing, considering how often tech companies and startups shower talent with awe-inspiring salaries and perks, that they don’t support the most important thing they need to do their jobs: continued learning. Which brings me to an important point.
Programming Is Not Like Most Jobs
There are plenty of jobs where the required knowledge base is fairly static, but software development isn’t one of them. Technology is always evolving, so developers should evolve too if they want to be the best at their craft. In many ways, learning is as much a part of the job as writing code.
For example, it’s not uncommon for a new language or framework to come along — Apple’s Swift is a great example — that could change the language a developer uses for the foreseeable future.
When I look at my own career, I see myself learning C++ in college, learning Perl on the job, teaching myself Java to get a better job, then teaching myself Ruby on Rails to start my own consultancy. By learning new technologies and languages, I was able to maintain a competitive advantage as a developer and make successful career moves. Without my personal drive to learn, there is no way I would be where I am today.
Do all developers have this personal drive to learn? I’m afraid not. So what happens when these developers don’t keep up with technology trends? The products they’re building and the companies they work for could eventually suffer. This could mean code that’s more difficult to maintain, code that takes longer to execute, or code written in an old language/framework that other developers don’t want to use anymore. That is a scary proposition for any company, but with a bit of work it’s also one they can help mitigate.
How Companies Can Support Developer Education
Most company-driven education solutions are easy to implement and affordable. And if they do come at a cost, they should certainly be compensated through increased productivity or employee happiness.
For starters, one of the easiest things you can do is reiterate to employees that learning on the job is okay. It’s not uncommon for a dev to feel devious taking the time out of his/her day to take a tutorial or read Hacker News instead of “working,” but a simple change in how you communicate with employees and new hires can wipe that fear away.
Another completely free solution is to encourage pair programming. Not only is this proven to minimize bugs and improve code quality, but seeing first-hand how another dev solves a problem is one of the best ways to learn.
Some companies have also rolled out continuing education initiatives to ensure their technical team has relatively the same knowledge base around their stack. Knowledge gaps in dev teams can be productivity (not to mention morale) crushers, so creating an official program can be a good way to minimize discontent.
Every month at Code School, we set aside a day to do what we call “Betterment.” It’s a day when we only do, create or learn something that makes us better. This could be taking a typing class, reading a book, working on an open source side project, or learning a new language or framework. The educational, creative and morale boost this day provides to our company is always staggering.
We also pay our employees to attend one local and one remote conference every year, and offer to pay for learning materials such as books, online courses and workshops. My guess is for a lot of tech talent, they’ll value this a lot more than say, a free Netflix subscription or a foosball table in the office (and aren’t those cliché anyway?).
These are just a few ideas. Ultimately, every company needs to find out the right solution for them and their team, and how they’ll learn best.
Teams That Learn More Innovate Better
An amazing byproduct of work environments that encourage learning is the impact they have on the product and the company’s longevity as a whole. It cultivates a culture of always using the best tool for the job, not always the tool that everyone is familiar with.
Organizations that are better equipped to find the creative solutions to hard problems will always be more likely to succeed. While there are a lot of other factors that go into creating a successful company, having a team that’s always learning will put you ahead of others that reduce their technical talent to just workers instead of learners.
The truth is, all developers must be both.