There are an endless amount of learning resources available for software developers, and with that comes an infinite amount of noise. To help us isolate the signals we’re looking for, we use: social media, link aggregators, email-based newsletters, bookmarking services, web search, podcasts, tumblelogs, and anything else we can get our hands on. It’s wonderful that these tools exist, it’s terrible that we have to rely on them.
And how is all of this content produced, anyway? For there to be so much publishing activity, there has to be some force driving it. Love of learning and craft? Well, maybe, but that’s not enough. We have to go deeper.
Try this right now: Find a dozen blog posts you’ve read recently, or take a look at the top 10 posts on your favorite link aggregation site. Then for each one of these articles, ask yourself “What is this website trying to sell me?”
If on a first glance, it looks like nothing is being sold, turn off your ad blocking and try again, just to be sure. If that doesn’t work, check the domain of the website you’ve landed on. Is it operated by an individual, or some sort of community-oriented organization? If not, then the answer is: You don’t need to be a customer, because you are traffic, and traffic can be bought and sold to the highest bidder.
If the site is created by an individual, and that individual is a relentless self-promoter, then you are still traffic, and your traffic is helping to cultivate a “personal brand” that can be turned into money or opportunities for the author later. If this happens organically, there’s nothing wrong with it, but it is often done VERY inorganically, and it’s easy to spot when you see it.
Let’s assume that the vast majority of programmers who share their knowledge with others by publishing learning resources for other software developers are good hearted, well-intentioned people. The same sort of folks who would share their experiences for free, if only it were sustainable to do it. If that’s true (and I believe it is), how could we have ended up in this mess? The answer is not as complicated as you might think.
The failure we’ve made as a community is that the bazaar model of commerce and social interaction has worked too well for us. The world gets useful learning resources for free, individuals and businesses get an opportunity to put their products and services in front of qualified leads, and some folks even can make a living by aggregating, remixing and curating content to make it easier for people to find the best stuff.
Clearly this model works, and it’s better to have it than nothing at all. But the consequence is that our most efficient and productive learning environment isn’t a public library, it’s a goddamn flea market!
This economic model is so ingrained in our DNA, that we hardly ever question it, and many would go as far as to hold it up as a triumph. But the truth is, even if this system works at the grand scale, it’s hurting both learners and teachers in countless subtle and not-so-subtle ways. Here are just a few:
Although it is far from a zero-sum game, the current model is much more competitive than it is cooperative, and so suffers the consequences that come along with any competitive environment.
Because being highly skilled at both writing and software development is rare, those who can do it well often get the most attention and influence from the software world, turning these folks into “thought leaders” that drive the overall direction of the community.
Producing high-quality educational resources is obscenely, ridiculously difficult and time consuming. So the people who can invest the effort are typically either from a position of economic advantage, or are backed by monied interests.
As a result, the materials that get produced, and the topics that get covered widely are based on where the money and social buzz is at right now. Those who are doing original research, particularly things that are experimental or exploratory in nature, are not well supported at all.
Because we’ve tied blogging and teaching and tweeting to hireability, plenty of people enter into the bazaar not because they particularly want to, but because they must do so in order to “prove their worth” to potential employers or clients. Again, this clearly benefits those who have lots of time and resources to burn, and burdens everyone else with massive amounts of shadow work. We cannot be surprised at the lack of socioeconomic and cultural diversity in light of this point.
The success of the few enables the selling of dreams to the many, creating a cottage industry of infomarketers. In effect, these are the folks who sell pickaxes and maps to gold prospectors, and it’s no surprise that their business is booming. Some of these folks are brilliant and insightful, but many are hucksters.
In light of all this, we cannot say “this is just how the internet works”, as true as that statement is now. We have to ask, how do we make things better for our future selves and those who will come after us down this road?
We must find a way to bring programmer education out of the marketplace, and into the commons. How should we go about doing that?
UPDATE: Some have asked me what I’m doing to live by these same principles. Please see Practicing Ruby — it’s completely reader funded, and reader focused. 100% of its materials are released under the CC BY-SA free documentation license — we pay our contributors and provide them with editorial assistance and technical review, and also help them distribute their work to a wide audience. If you want to help us bring many more voices to the publication, consider backing this Kickstarter.
I didn’t mention this in the original version of this essay because I felt it’d be in poor taste to self-promote while simultaneously criticizing self-promotion. But enough folks have asked this around the web that I felt it was worth adding an update!