Hi Hacker News, thank you for reading.<p>I've been in to techie/hacker related things for a while but I have never had the opportunity to learn to code beyond some fairly rudimentary stuff (html, css and Visual Basic) I learnt in my early teens. I use a lot of opensource software and feel quite guilty that I use it without being able to contribute to it (even in a minor way).<p>In an ideal world I would be access to coding courses as easily as accessing courses in second natural languages but the world is less than ideal.<p>So, back to my question. Where would you guys recommend I start?
If your concern is about contributing to open soource software, you don't need to know how to code to contribute. Bug reports are actually hugely important and some projects take financial donations.<p>As to learning to code, there are actually a lot of good resources. <a href="http://learnpythonthehardway.org/" rel="nofollow">http://learnpythonthehardway.org/</a> Is a good book which will show you the basics and get you started with a lot of practice. The Khan Academy also has some introductory videos: <a href="http://www.khanacademy.org/cs/tutorials/programming-basics" rel="nofollow">http://www.khanacademy.org/cs/tutorials/programming-basics</a>. In addition, you can find tutorials for just about any language and they'll also show you some of the basics.<p>Oh, and Visual Basic, while arguably being shitty, <i>is</i> a real programmng language, so if you understand it, you already know how to program. You just need to learn a more useful language.
Since you say you know html,css, then I think the easiest thing to do would be to learn javascript and jquery and get a github account. This will probably let you see results and start contributing to open source the fastest. Once you get good enough in js you can do some bug fixes for any of the tons of js projects on github and work your way in on that route. I'd say with any non web-centric language (i.e. c, c++, ruby, go, haskell)- especially since you don't know coding yet - your looking at a minimum of two years before you could start actively contributing to a project.<p>Here's some links to learn js/dom:
MDN: <a href="https://developer.mozilla.org/en-US/" rel="nofollow">https://developer.mozilla.org/en-US/</a>
Opera Developer Site: <a href="http://dev.opera.com/" rel="nofollow">http://dev.opera.com/</a>
Javascript Repos on github: <a href="https://github.com/languages/JavaScript" rel="nofollow">https://github.com/languages/JavaScript</a> (read the source!)<p>Also "javascript the good parts" by Crockford is a good javasceript book.
Learning to code is a bit too general for concrete advice. what would you like to code for? websites? mobile apps? games? algorithm? or automating systems?<p>do you have a language / framework in mind?
I've found Lynda.com is an awesome resource for getting a quick overview or refresher on the basics of a language with more in-depth classes if I find something interesting enough.<p>If you're looking at learning a single language in depth they're probably not the best for anything, but a lot of breadth on there, they cover a lot of apps too. Not free, basic plan is 25 a month but they do have a free trial.
I've been pretty happy with RubyMonk.com and CodeSchool thus far. Also, Coursera and EdX have open programming courses taught by professors from Cal, MIT, Stanford, etc.<p>Also, Why's Guide to Ruby has been good to me so far if you want to get into Ruby.