Stackoverflow needs a "entrence barrier" test where if you can't communicate or have no ability to think rationally about the words being typed there to solve problems, your question goes to the "dumb" section of the site.
point is, stop encouraging everyone to be programmers. You're slowing progress by doing so.
we've got 4.4 million questions, 90% of it from novices that should be asked not to program. you can go take a look at them, they are little better than "how is babby formed" type questions. These people are trying to program when they should be told that it's too hard.
I've made good money over the decades as a programmer, but the technologies come and go like presidential administrations. I'm always a newbie at something. That's part of the fun. I'm always the guy who "doesn't know the difference between a variable and a browser" in something despite simultaneously serving on an "experts committee" in something else. I've lost count of the number of times I've spotted a "related question" on the SO sidebar while grazing for useful info, thought, Oh, yeah, what IS the answer to that one?, clicked it, and been informed by SO that they won't allow it to be answered because the question is "not constructive". Hunh?? The answer would have been constructive. Stopping people from answering a question that others are wondering about: THAT's what's not constructive.
Oh, but what if people are allowed to ask dumb questions, where dumb means questions that you already know the answer to? Well, then, it might be hard for you to find answers to your "smart" questions, right?
It sounds to me as though the solution is to worry less about dumb questions and more about the dumb search technology they have for matching incoming questions to their answers. With better technology than a bunch of tags and a 1980s-quality search engine, they wouldn't have to put so much effort into blocking questions and could put that effort into providing more answers.
I know when I was first starting out there were obvious cliffs that I confronted when growing as a developer. The first cliff is going from syntax to understanding how to piece syntax together. Then further down the line is learning best practices and how more seasoned developers do things. This is something that you can only learn from practice and by asking questions on sites such as Stack Overflow and your peers. How else are you going to learn?
Did you NEVER ask anybody any questions at the beginning?
You surely did. Why do you feel the need to keep the joy of programming just for yourself or just for the ones who came before now and learnt it a few years ago? Am I stealing your work when I learn programming? Do you absolutely HAVE to answer dumb questions on stackoverflow? You can just ignore the stuff you don't like, you know.
As for the stats, is it really that suprising that newcomers ask more questions? I'd imagine those who have been programming for some time are more confident in their ability to research answers, check the usual resources (e.g. MDSN), read and understand open source code, and then use SO as a form of last resort.
It's rather odd to find someone on a "hacker" site advocating any sort of discouragement of autodidacticism.
I've thought about trying to learn programming again for the past few years, but gave up on the idea by telling myself it was too late and that I could never really succeed without a structured learning environment. But once I started looking into it, I'm dumbfounded by the amount of resources out there that not having access to knowledge is simply not a valid excuse. These massive open online courses out there are revolutionary and having just finished one, I felt much more passionate, thirsty, and focused than I ever was as an undergraduate.
And to echo the point in your article, what has kept me learning is a project I want to build. Learning backwards by figuring out what I want to do then researching how to do it works great for me. But, what's been challenging is staying grounded to the task of building the product rather than letting my mind wander off into a daydreamy state of wondering how I'm going to manage/promote/monetize the product once it's finished. Baby steps...
I definitely also have a project in mind, but I don't know where to start aside from the HTML and CSS I've learned.
For example, understanding how loops and iterative tasks work will help you understand why changing the text on one specific product page (out of a 1000) isn't as easy as popping open the text-editor and changing that page's text. It helps you figure out a sensible data-model on the back-end (so that your frustrated coder isn't writing a special if-statement that breaks on the next iteration of the site)
Aside from that, stuff like:
"Here's why I finally learned to code: I've been a web entrepreneur since I was eleven years old — for over sixteen years now..."
Makes me discount just about everything that was written. I just have a bitter taste left over from this massive ego leak.
- Focus. Don't do it on the side, it would take too long. Treat learning to code as if it was your regular job(I tried to do 40-60hrs per week, I did about 2000hrs of coding in my first year)
- Don't hurry. Don't obsess about efficiency and how you use your time. You will waste tons of time on stupid bugs and knowledge you don't really need, that's just part of the learning process. Focus on putting in those hours week after week and you will see results.
- Work on a project. The only way to truely understand how things work is to actually use them. Don't hide yourself behind books, try to apply everything you learn asap.
- Give yourself permission to suck. This is really hard if you're older (I was 30 when I started to code). If you already have a career, you're not accustomed to be utterly clueless anymore. I had already forgotten how slow and painful it is to learn something from scratch. So give yourself a break and judge yourself the same way you would judge a stranger. Don't expect to become stellar in a matter of months just because you're smart. Hint: so is everybody else who is coding for a living.
I taught myself the basics of rails in about 2 months using Lynda.com because after numerous failed attempts I realised I would struggle to get anything off the ground - mostly because it is extremely difficult to transfer passion to another party.
I tried what I believed was a good idea with my one and only developer friend, but he just didn't have the drive that I did, and months slipped by with little or no progress (I gave him 50% share of the company, I wasn't paying him - a mistake with hindsight).
The challenge was I couldn't outsource the build on Elance (etc) because I had no idea what to ask for - and mocked up screenshots simply don't portray a vision of where you see your product going, and I didn't have the technical nous to judge whether I would be getting good value for money.
After "learning" Rails my first creation is still going strong, it's a free site but one that has taught me so much and I'm super proud of it.
Moving forward my basic skills in Rails can mostly get me to MVP for testing my second project, and if it's successful I'll source a developer for short projects via Elance until I can afford a full time dev.
So in a nutshell, you either have to be completely cashed up, or you have to get your hands dirty to MVP status by cutting code, even if you consider yourself primarily a biz dev guy like I do. I prefer the latter solution - it's just too difficult for me to predict everything you need to build until you start building.