I'm genuinely curious why there are consistently at least 3-4 new questions about how to start programming or what language to start with, etc. etc.<p>Do you think the askers are following through, and actually learning based off of the recommendations? Is it a band-wagon sort of thing? Is there any way to compile the information in one place and point askers towards that?
This isn't a new problem.<p><pre><code> Do you think the askers are following through, and
actually learning based off of the recommendations?
</code></pre>
Some do, but most do not.<p><pre><code> Is there any way to compile the information in one
place and point askers towards that?
</code></pre>
This has been done so many times over so many years that there's a plethora of pages out there (<a href="http://www.google.com/search?q=learn+how+to+program" rel="nofollow">http://www.google.com/search?q=learn+how+to+program</a>), some current and others in various stages of decomposition.<p>A truly motivated individual is likely to realize that this question is Googleable and will find <i>tons</i> of information. That leaves us with the occasional capable and motivated person asking for some guidance that HN could uniquely provide, and the rest of such questions are less worthy, IMO.<p>Making a nice resource, perhaps with some HN flavored info, would be really great were it to be referenced. The best case to me would be that "how to learn programming" posts would get no up votes and a single comment linking the resource. Or something along those lines.
I think that the main reason that this question comes up so often (only to have it's answers essentially ignored) is because, "How do I learn how to program?" isn't what they really want to know. Programming, in and of itself doesn't take much to learn. A person with average intelligence can learn the syntax and basic idea of a language in a day.<p>I believe the question they really want an answer to is, "How do programs work?".<p>If you really boil down the initial appeal of programming, it isn't Python/C/PHP/Ruby, it's learning how to make the things that those languages are associated with. People are fascinated by programs that can sync files between computers (dropbox/Python), share pictures on the internet (facebook/PHP), or cause your computer to run (Linux/C).<p>I think the best way to help somebody with this question is to find out what it is about software that fascinates them, then suggest a language/framework that facilitates that.
There are so many "How do I learn to program?" questions because:<p>1. Asking the question on HN is a hell of a lot less painful than actually sitting down to learn to program.<p>2. Reading the answers feels a hell of a lot more like progress than eight lines of code that still doesn't work after four hours.<p>3. Programmers are more willing to answer "How do I learn to program?" questions than cellists are willing to answer "How do I learn to play the cello?" questions.
I think you see this for the same reason you see people endlessly debating/discussing version control systems, GTD, IDEs, OSes, keyboards, mice, browsers, etc. etc. etc. They're all just tools, and yet we (myself included) spend far too much time talking about them, and not nearly enough time using them. True, some of the discussion is merited and is rooted in useful thought about real differences between tools, but much of it is over analyzing.<p>I think much of this could actually be rooted in fear, which drives procrastination in lots of people - more than most of us realize, I think. Merlin Mann's gave a great talk on fear: <a href="http://www.youtube.com/watch?v=Lk0hSeQ5s_k" rel="nofollow">http://www.youtube.com/watch?v=Lk0hSeQ5s_k</a><p>The key is to understand that fear isn't going to go away completely, and to still keep doing, even though you're scared.<p>Enough talk. I'm going to go build something now.
I think part of it is that everybody has their own opinion of where others should start. For example, some people think that new programmers should start low-level (such as with C) and learn how memory management works; others think that a higher-level language (such as Java) is better and abstracts away all of the things that people can learn later. And of course, there's also web app programming, which brings in another curve
Myself, I want to learn basic programming to build stuff. Being just a designer, limited to front end – is limiting. I would think the same goes for some programmers, wanting to learn user experience and interface design. I think we'll see more people knowing how to build things, code and design. Like Shaun Inman.
My question is, why are so many people upvoting these threads? People should be encouraged to use Google as their first resource before posting questions on Hacker News. Even if you haven't been here long, you could probably guess that such a basic question has likely been asked before.