I’ve been thinking about developer education (and, specifically, education of professional developers who have been working for a few years already) for the last year or so. In my last post I talked about how to teach yourself hard things, which is how I’ve learned most things.
But! Even when you’re learning on your own, there are all kinds of resources you depend on! Some examples of places I’ve learned things are:
- a few really great programming books
- conference talks
- hundreds of blog posts (I subscribe to dozens of programming blogs)
- Slack groups
All of these things (tweets, blog posts, conference talks, etc) take time to make, and a lot of it is given away for free. So who pays for all of this work? Here’s a rough taxonomy! If you have more to add to it (or examples of people you think are doing great education work that fits into these categories!), I’d love to hear them on twitter.
companies with a product to sell
One common way to get paid money to teach people about programming is to become a “developer advocate”. I think this is a pretty cool thing! Basically, a lot of companies have realized that a good way to sell tech products is to explain the tech concepts behind their products to people in a way that they can actually understand. A great example of this is Google Cloud and Kubernetes – a lot of Google developer advocates will write blog posts / give great talks explaining Kubernetes. And those talks are often really helpful whether or not you end up using Google products!
But what Google gets out of it is – if more people understand Kubernetes, then as a side effect they also understand Google’s Kubernetes-as-a-service platform, and they’re likely to be more excited about the advantages of using it.
Personally I think this is great – developer advocates are often great programmers and great teachers, they get paid to do something that they care about, and they get a lot of free and high-quality information into the world about various complicated tech things. Awesome!
There are some downsides though, for example Google Cloud developer advocates obviously will focus on subjects that are somehow related to Google Cloud :)
individual people who get paid in exposure
This is the category most personal blog posts / conference talks fall into. The economics of this are – you put together some great blog posts / talks, and maybe folks in your industry now recognize/respect you and are more likely to want to hire you!
My original motivation for starting this blog, 5 years ago, was I wanted to get a better job than the job I’d had before. I posted a lot of my articles to hacker news to try to get readers. And I think it helped! In any case I do have a way better job now :)
Obviously those aren’t still my motivations – probably the main reason I keep writing here is that I find it rewarding when people tell me that my blog posts helped them learned something. But that’s not the only reason! some side effects are:
- It’s easier for me to get answers to questions I have about tech
- I know it’ll be a little easier for me to get interviews for future jobs, which is reassuring
- giving talks at conferences helped me build a network of folks I can ask questions / learn about the industry from
and all that is pretty useful to my career! For example, just last week someone who had read my blog emailed me out of the blue about a super interesting job and we had an awesome conversation and I learned something new about the kinds of jobs that exist in computer networking! That would definitely not have happened if I didn’t blog about what I was learning :)
So blogging / speaking in tech is a long-term investment in your future job opportunities and it can pay off!
companies who make money through recruiting
I talk about the Recurse Center all the time. They don’t produce educational materials directly, but they’re one of the most interesting places to level up as a developer that I know. It’s free to attend and they make money through recruiting. They’re how I got my current job, and the company that hired me paid them 25% of my first year’s salary. I didn’t pay them anything.
(as an aside, I recommend recruiting through RC if you want to hire people who are good at learning – you find out more at https://www.recurse.com/hire)
companies who sell education to developers
The next bucket is companies who sell educational materials to developers directly.
various examples of this that I think are kind of interesting:
- Linux Weekly News, which offers a $7/month subscription to get the latest articles. I really recommend subscribing. It’s great.
- Launch School has a $200/month class with the aim of getting you a way better software job.
- the School for Poetic Computation, which is a cool school in NYC in the intersection of art & tech. it costs $5000 or so for a 10-week class.
- O’Reilly’s books & videos (like safari).
- Lynda, Udacity, Udemy, Coursera all have online courses
- all the various coding bootcamps
individuals who sell education to developers
I’m breaking this out from “companies who sell education to developers” because it seems like these businesses are differently flavoured. O’Reilly/Lynda/Udacity/Udemy sell information about basically everything related to programming. Usually individual people have a much narrower focus, which is cool.
- The Complete Guide to Rails Performance by Nate Berkopec
- Ruby Tapas, a screencast series by Avdi Grimm
- Michael Lucas’s systems books, many of which he self-publishes
- Destroy All Software by Gary Bernhardt
- Bubblesort zines, delightful computer science zines by Amy Wibowo
- self-published books like Writing a compiler in Go or LOTS of others
To me, self publishing definitely falls into this category! In 2018, it seems like a much more viable way to actually make money from teaching than traditional publishing.
I’m going to mostly not talk about programming books for traditional publishers because even though they’re really important, they seem to live in a complicated place between “writing for free for exposure” and “making money” that I don’t fully understand. For instance in the economics of writing a technical book the author says he made about $23/hour for 500 hours of work. I don’t know if that’s typical.
If people are actually making money at rates better than $20/hourish from publishing programming books with traditional publishers, I’d be curious to know about that! This is not something I know a lot about yet.
sell training to companies
Selling training to companies is a really logical pattern – an individual might not be willing to pay $2000 for a class, but a company might very well be willing to pay $2000/person for a 10-person in-person class!
here are some examples I know about in that area:
- Heptio sells Kubernetes training
- Jepsen offers distributed systems training, which looks AMAZING
- Sandi Metz teaches an object-oriented design class
There are probably a TON more here that I don’t know about.
should I be paying for more learning materials?
So! Reflecting on this a bit, the categories we’ve seen are:
- devs who want to learn pay (to invest in their knowledge)
- devs who want to teach pay (to share knowledge / build their network / build a reputation for being an expert)
- companies pay (to educate their employees)
- companies selling a product pay (to educate their future customers)
Basically everything that’s free lives in either category #2 or #4, which is most of what I read. Is that really what I want to be doing, though? As much as I ADORE all the bloggers I read I feel like it’s kind of weird that I mostly learn from free sources, and the incentive structures there aren’t that well aligned with producing really excellent learning materials.
One of my favourite sources recently to learn from has been the book the linux programming interface, which is not free (it’s $70 or so). And it’s a MUCH more reliable and useful and efficient source than reading Stack Overflow answers about Linux. But not all books I’ve bought have been consistently an excellent use of time to read, so I find this a bit tricky.
on writing for free / writing for money
The other reason I’m thinking about this, obviously, is that I started selling some of my zines recently, and I’m trying to figure out if I want to change where exactly I fit into this whole ecosystem. I’m pretty comfortable with where I am right now (blogging is fun! I get to meet cool people! having writing on the internet that anyone can just read by clicking on a link is great!), so making changes to that is kind of interesting/scary. We’ll see what happens!