Ask HN: Where to begin programming?
Hacker News: I'm mostly a lurker, I don't program, but I'm fascinated with the programming mindset and the thought process that results.
I do a fair share of writing and I'm quite frankly enraptured by the precise and complete nature of the comments on this site.
I'd like to start programming. What starting points, things to keep in mind, etc. would you give me, just starting out?
12 comments
[ 3.8 ms ] story [ 41.9 ms ] thread[1]: http://mitpress.mit.edu/sicp/full-text/book/book.html
[2]: http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&...
[3]: http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussma...
Strangely, I think this youtube lecture series from Stanford is fantastic. http://www.youtube.com/watch?v=KkMDCCdjyW8
It's java but the lecturer eases you into the most important concepts with an understanding of how to engineer readable, reusable code. So watch it free. Then buy Learning Python. If there is an equivalent python learning video on youtube, I haven't found it.
My language of choice these days, especially for relatively new programmers, is Python, but just diving in to anything is the best way to get started. There are uncountable numbers of tutorials available online; a very popular one is Mark Pilgrim's Dive Into Python – the not-quite-finished version targeting Python 3, the current version, is available at http://diveintopython3.org/.
If you have friends that also like programming, try to 'one-up' each other by writing cooler and cooler things than each other (while still being fair). Healthy competition is good.
Since you like writing, blog about your progress in different projects. Express how some API is awesome or how some task is hard to acomplish. Write about your thoughts.
Pick a scripting language. Find a good mentor.
2. pick up a dead tree book on programming on a programming language you think you'll like. There's more commitment if you actually buy a book
ruby => 'the ruby way' (the book that finally made ruby click for me -- I cannot recommend it enough)
perl => 'programming perl' (my first love affair with a language, I love perl)
scheme/lisp => SICP (too expensive to buy on a budget though)
3. you must have a project you really want to do in code. Without a real program to write, you have no path through the library of form, because the possibilities are endless :)
The only starting point is writing a program.
There are two important factors in writing a program.
(1) How easy is it to write said program and (2) How much do you want to write said program.
Most of the comments are centered on (1) and they're all good.
However, (2) is what makes the difference.