> Because being highly skilled at both writing and software development is rare, those who can do it well are 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.
Improving writing education can increase the pool of software developers who write/teach well. Teaching is often an excellent way to learn, because writing helps to structure thought.
> 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.
This is a challenge in any "commons", where code/prose content (marketing) is often funded by ancillary revenue/income/objectives. How are libraries funded and how do librarians decide which topics are curated by those funds?
> Those who are doing original research, particularly things that are experimental or exploratory in nature, are not well supported at all.
This is a subset of the broader challenge of long-tail discovery, which afflicts many smaller code/app/media publishers who lack marketing budgets and expertise.
> We must find a way to bring programmer education out of the marketplace, and into the commons. How should we go about doing that?
How about finding ways to compensate those who already produce valuable content in the commons, so they can have more time to do what they already do well?
> How about finding ways to compensate those who already produce valuable content in the commons, so they can have more time to do what they already do well?
This is actually what I've been trying to do with my own reader-funded project (http://practicingruby.com). I've been modestly funded for five years now to produce free documentation for Ruby programmers (and really anyone who is interested in software development that can read Ruby).
Occasionally, we've paid contributors to help us publish articles. Right now I'm trying to do a Kickstarter to give us some seed funding to really expand the number of contributors we can work with, and my existing subscription revenue will fund me so that I can assist these folks with editing, research, code cleanup, etc. That helps expand the pool of potential contributors, because folks don't need to be expert programmers or writers, they just need to be working on something interesting and willing to try to share their knowledge and experience with others.
For those who want a good free programmer education and are willing to put in some work to get it: look at source code, not blogs, and work on projects with experienced programmers, don't just read what they write.
There's a natural alignment of incentives when you're working on the same codebase as someone who actually knows what they're doing. Any mistake you make, they have to fix, and so they have good reasons to see you get up to speed as quickly as possible.
Another good heuristic for online forums and comments: the shorter the comment, the greater the chance that the person actually knows what they're talking about. Experienced people often might throw out a quick correction because it costs them nothing, but have no desire to get into a big debate because their time is more valuable than that.
A smart high-school student who enjoys a challenge comes up to you and asks which projects to look at, and (if you say more than one) which one to start with. What do you say?
1. Don't ever use the phrase "as a community" unless you carefully define it first.
2. What, specifically, about a flea market is bad. If the complaint is about quality, I'll refer you to Sturgeon's law.
3. You're going to need to explain the competitive vs cooperative comment, right now I have no idea what you are saying.
4. Your comment about "blogging, teaching and tweeting" is true, but I think it is clearly an improvement compared to the previous system. Portfolio based systems are almost always better than credential based systems.
5. I'm not sure who's making money selling pick axes to starry-eyed bumpkins, but all of the development tooling I use is free. Almost all of the online tools I use are prices such that individual use is free and corporate use costs money. Not sure what you're talking about here.
In summary:
It seems like your basic thesis is that the world isn't equal because some people are better at communication and self promotion than others. I'm not really sure why you think the world could be another way.
"4. Your comment about "blogging, teaching and tweeting" is true, but I think it is clearly an improvement compared to the previous system. Portfolio based systems are almost always better than credential based systems."
Are they really though? On what basis?
99% of my best work can't form part of my portfolio. I spend 2 hours of my own time on L&D each week day. Maybe 30 minutes of it is on projects I could present. In a year that's ~120 hours max. I'm not going to be doing anything really impressive from a portfolio POV with less than a month of full time work put into it.
Even worse is the trend I'm seeing where people drop the Learning from L&D altogether so they can invest more time into presentable projects. It is stunting their growth as developers... even as it improves their hireablility.
I agree with you. In the real world, communication skills are important. Far more issues are caused by poor developer communication than by poor coding skills. Blogging, teaching and tweeting help you build those skills. Coding is only one part of development, and it's by far the easiest part to master.
> 1. Community is absolutely a weasel word when you're using it to lump together people from many different backgrounds and speak on behalf of them, or to act as if your particular sense of identity is representative of a whole group.
Help me find a better word for what I'm trying to say here: When I say "as a community" I mean, "as people who ought to be concerned about the social impact of our decisions as much as the economics and personal motivations"
> 2. Nothing is bad about a flea market. I just would like to be able to also have public non-commercial spaces for learning, and have them be well funded and supported too. I meant it literally when I say the current model works too well economically, and so there is less incentive to make long-term investments in educational resources that are explicitly for the common good.
> 3. It comes down to economics and social capital. Those who have gained notoriety through luck, connections, or money, tend to have their signal amplified indefinitely.
Yes, if someone really starts being malicious in what they do they will eventually lose their reputation, but it's a slow process and so those who get into that position tend to stay there. This is the nature of a competitive environment, whereas a cooperative environment intentionally makes adjustments to mitigate that effect. It's a little hard to explain because we have so many examples of the former and so few of the latter.
> 4. We agree, and I said that a few times in the article. It wasn't just for rhetorical purposes. I'm saying, if the current model is an improvement and evolution of a worse model that existed in the past, maybe we can still think about a new paradigm shift that is much better than what we have now.
But honestly, I'd be perfectly satisfied with comfortable co-existence between the commercialized education model. Even if 80% of our work was indirectly or directly tied to commercial promotion, it'd be nice if 20% of our resources could exist in the commons.
> 5. Not referring to developer tools here, I'm talking about developer education. There are plenty of "learn to code" things that are not effective, but because they're marketed well, they make plenty of money. In addition of these, there are plenty of "how to make money as a coder" things, etc.
There are also plenty of examples of open source tools that are poorly documented or designed, yet due to their popularity or entrenchment, spawn a business of consultants and educators to teach people commercially to use these things, without contributing the materials back to the commons under free documentation licenses. This is valuable work and shows that our marketplace is semi-efficient, but it's not socially optimal. The socially optimal result is for the information to be released as free documentation.
> In summary:
I guess my thesis missed you, because that's not what I meant to say at all. What I said is, "the world is unequal, and so it will tend to favor a tiny minority of privileged folks unless we actively seek to balance things".
For my own part, I've spent the last five years creating what may be the largest collection of open source learning materials for Ruby programmers in the world (find it at practicingruby.com). If you google "infrastructure automation", one of our articles is the top hit. If you google "actor model", one of our articles is on the front page. Neither of these articles were written by people with sizable followings or influence on the internet.
I paid these folks for their work, helped them shape and edit their content, and gave them access to a much larger audience than what they would have reached on their own. My own name does not appear on their work, nor does anything promoting some third party product or service.
People do pay for Practicing Ruby. Not commercial sponsors, but readers and community supporters. It'd be nice to see a few dozen similar publications on various topics, and for the model and motivation to be well understood and supported.
The problem I have is that this kind of thinking about publishing is something people never even give a passing thought... so as someone trying to do something different, I am constantly fighting an uphill battle.
I don't want to overstate my own role in making a difference here... I view my own project as a baby step, one of many necessary to make the kind of changes I'd like to see in the world. But at least I'm trying to stand up for my principles by putting the ideas into practice.
I don't see the problem... we've got lots of free educational material, catering for all learning styles, and lots of commentary on it by others to help assist you in choosing what to use.
People are learning to code in record numbers
Teaching someone else to code has never been easier (and is getting easier all the time)
I feel like I addressed this very directly in the article, but I'll repost the main points of "what's wrong" here for further discussion...
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:
1) The system we’ve created is assumed to be a meritocracy, but is actually driven far more by popularity and market trends than it is by the quality, relevance, depth, and effectiveness of our learning materials.
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.
2) Because being highly skilled at both writing and software development is rare, those who can do it well are 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.
3) 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.
4) 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.
5) 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.
6) 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?
There is a way to fix the problem that you are observing:
1. Create a "subweb". It is composed of the following
1A. A new specification for the publishing of information in complete form ( read structured content published together with templates to present them )
1B. Both server and client systems that implement the new specification over some sort of modified http but without using current DNS
1C. A free distributed un-filtered un-policed distributed DNS alternative
1D. A complete hierarchical index of all content existing in the new system
1E. A free distributed search engine allowing submission of content within the new system.
2. Make it clear the new system is for free content only
3. Disallow advertisements on it entirely
4. Tie in accurate hashing and allow people to dedicate as much hosting power as they are willing ( either to the content itself or index data to what hashes represent what )
5. Make it entirely secure with a public/private key system allowing people to establish meaningful identities within a system where their content is copied eternally.
6. Use the new system yourself to publish meaningful non-shit information and encourage your friends to do the same
By the way I really like your article and I think you are pointing out a crucial problem spot on that most people are oblivious to.
The easiest way to think of what must be done is just to look at what libraries are. Organizing information has been done by libraries for thousands of years and has a fairly established sensible process. ( which is being ignored by the internet )
walterbell|10 years ago
Improving writing education can increase the pool of software developers who write/teach well. Teaching is often an excellent way to learn, because writing helps to structure thought.
> 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.
This is a challenge in any "commons", where code/prose content (marketing) is often funded by ancillary revenue/income/objectives. How are libraries funded and how do librarians decide which topics are curated by those funds?
> Those who are doing original research, particularly things that are experimental or exploratory in nature, are not well supported at all.
This is a subset of the broader challenge of long-tail discovery, which afflicts many smaller code/app/media publishers who lack marketing budgets and expertise.
> We must find a way to bring programmer education out of the marketplace, and into the commons. How should we go about doing that?
How about finding ways to compensate those who already produce valuable content in the commons, so they can have more time to do what they already do well?
sandal|10 years ago
Related to your last point:
> How about finding ways to compensate those who already produce valuable content in the commons, so they can have more time to do what they already do well?
This is actually what I've been trying to do with my own reader-funded project (http://practicingruby.com). I've been modestly funded for five years now to produce free documentation for Ruby programmers (and really anyone who is interested in software development that can read Ruby).
Occasionally, we've paid contributors to help us publish articles. Right now I'm trying to do a Kickstarter to give us some seed funding to really expand the number of contributors we can work with, and my existing subscription revenue will fund me so that I can assist these folks with editing, research, code cleanup, etc. That helps expand the pool of potential contributors, because folks don't need to be expert programmers or writers, they just need to be working on something interesting and willing to try to share their knowledge and experience with others.
Those who want to support the contributors fund are welcome to do so here: https://www.kickstarter.com/projects/828998531/practicing-ru... -- 100% of this money will go to the authors of the articles, I'm not keeping any for myself.
nostrademons|10 years ago
There's a natural alignment of incentives when you're working on the same codebase as someone who actually knows what they're doing. Any mistake you make, they have to fix, and so they have good reasons to see you get up to speed as quickly as possible.
Another good heuristic for online forums and comments: the shorter the comment, the greater the chance that the person actually knows what they're talking about. Experienced people often might throw out a quick correction because it costs them nothing, but have no desire to get into a big debate because their time is more valuable than that.
dbpokorny|10 years ago
A smart high-school student who enjoys a challenge comes up to you and asks which projects to look at, and (if you say more than one) which one to start with. What do you say?
collyw|10 years ago
nordsieck|10 years ago
2. What, specifically, about a flea market is bad. If the complaint is about quality, I'll refer you to Sturgeon's law.
3. You're going to need to explain the competitive vs cooperative comment, right now I have no idea what you are saying.
4. Your comment about "blogging, teaching and tweeting" is true, but I think it is clearly an improvement compared to the previous system. Portfolio based systems are almost always better than credential based systems.
5. I'm not sure who's making money selling pick axes to starry-eyed bumpkins, but all of the development tooling I use is free. Almost all of the online tools I use are prices such that individual use is free and corporate use costs money. Not sure what you're talking about here.
In summary: It seems like your basic thesis is that the world isn't equal because some people are better at communication and self promotion than others. I'm not really sure why you think the world could be another way.
sheepmullet|10 years ago
Are they really though? On what basis?
99% of my best work can't form part of my portfolio. I spend 2 hours of my own time on L&D each week day. Maybe 30 minutes of it is on projects I could present. In a year that's ~120 hours max. I'm not going to be doing anything really impressive from a portfolio POV with less than a month of full time work put into it.
Even worse is the trend I'm seeing where people drop the Learning from L&D altogether so they can invest more time into presentable projects. It is stunting their growth as developers... even as it improves their hireablility.
exelius|10 years ago
sandal|10 years ago
> 1. Community is absolutely a weasel word when you're using it to lump together people from many different backgrounds and speak on behalf of them, or to act as if your particular sense of identity is representative of a whole group.
Help me find a better word for what I'm trying to say here: When I say "as a community" I mean, "as people who ought to be concerned about the social impact of our decisions as much as the economics and personal motivations"
> 2. Nothing is bad about a flea market. I just would like to be able to also have public non-commercial spaces for learning, and have them be well funded and supported too. I meant it literally when I say the current model works too well economically, and so there is less incentive to make long-term investments in educational resources that are explicitly for the common good.
> 3. It comes down to economics and social capital. Those who have gained notoriety through luck, connections, or money, tend to have their signal amplified indefinitely.
Yes, if someone really starts being malicious in what they do they will eventually lose their reputation, but it's a slow process and so those who get into that position tend to stay there. This is the nature of a competitive environment, whereas a cooperative environment intentionally makes adjustments to mitigate that effect. It's a little hard to explain because we have so many examples of the former and so few of the latter.
> 4. We agree, and I said that a few times in the article. It wasn't just for rhetorical purposes. I'm saying, if the current model is an improvement and evolution of a worse model that existed in the past, maybe we can still think about a new paradigm shift that is much better than what we have now.
But honestly, I'd be perfectly satisfied with comfortable co-existence between the commercialized education model. Even if 80% of our work was indirectly or directly tied to commercial promotion, it'd be nice if 20% of our resources could exist in the commons.
> 5. Not referring to developer tools here, I'm talking about developer education. There are plenty of "learn to code" things that are not effective, but because they're marketed well, they make plenty of money. In addition of these, there are plenty of "how to make money as a coder" things, etc.
There are also plenty of examples of open source tools that are poorly documented or designed, yet due to their popularity or entrenchment, spawn a business of consultants and educators to teach people commercially to use these things, without contributing the materials back to the commons under free documentation licenses. This is valuable work and shows that our marketplace is semi-efficient, but it's not socially optimal. The socially optimal result is for the information to be released as free documentation.
> In summary:
I guess my thesis missed you, because that's not what I meant to say at all. What I said is, "the world is unequal, and so it will tend to favor a tiny minority of privileged folks unless we actively seek to balance things".
For my own part, I've spent the last five years creating what may be the largest collection of open source learning materials for Ruby programmers in the world (find it at practicingruby.com). If you google "infrastructure automation", one of our articles is the top hit. If you google "actor model", one of our articles is on the front page. Neither of these articles were written by people with sizable followings or influence on the internet.
I paid these folks for their work, helped them shape and edit their content, and gave them access to a much larger audience than what they would have reached on their own. My own name does not appear on their work, nor does anything promoting some third party product or service.
People do pay for Practicing Ruby. Not commercial sponsors, but readers and community supporters. It'd be nice to see a few dozen similar publications on various topics, and for the model and motivation to be well understood and supported.
The problem I have is that this kind of thinking about publishing is something people never even give a passing thought... so as someone trying to do something different, I am constantly fighting an uphill battle.
I don't want to overstate my own role in making a difference here... I view my own project as a baby step, one of many necessary to make the kind of changes I'd like to see in the world. But at least I'm trying to stand up for my principles by putting the ideas into practice.
marcus_holmes|10 years ago
People are learning to code in record numbers
Teaching someone else to code has never been easier (and is getting easier all the time)
What exactly is going wrong that needs fixing?
sandal|10 years ago
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:
1) The system we’ve created is assumed to be a meritocracy, but is actually driven far more by popularity and market trends than it is by the quality, relevance, depth, and effectiveness of our learning materials. 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.
2) Because being highly skilled at both writing and software development is rare, those who can do it well are 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.
3) 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.
4) 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.
5) 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.
6) 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?
sandal|10 years ago
rilita|10 years ago
1. Create a "subweb". It is composed of the following
1A. A new specification for the publishing of information in complete form ( read structured content published together with templates to present them )
1B. Both server and client systems that implement the new specification over some sort of modified http but without using current DNS
1C. A free distributed un-filtered un-policed distributed DNS alternative
1D. A complete hierarchical index of all content existing in the new system
1E. A free distributed search engine allowing submission of content within the new system.
2. Make it clear the new system is for free content only
3. Disallow advertisements on it entirely
4. Tie in accurate hashing and allow people to dedicate as much hosting power as they are willing ( either to the content itself or index data to what hashes represent what )
5. Make it entirely secure with a public/private key system allowing people to establish meaningful identities within a system where their content is copied eternally.
6. Use the new system yourself to publish meaningful non-shit information and encourage your friends to do the same
By the way I really like your article and I think you are pointing out a crucial problem spot on that most people are oblivious to.
The easiest way to think of what must be done is just to look at what libraries are. Organizing information has been done by libraries for thousands of years and has a fairly established sensible process. ( which is being ignored by the internet )
dbpokorny|10 years ago
http://en.wikipedia.org/wiki/Structure_and_Interpretation_of...
SICP is an extraordinarily difficult book; "Simply Scheme" by Brian Harvey and Matt Wright is a good stepping-stone.