Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Where to begin programming?
12 points by sroerick on June 15, 2009 | hide | past | favorite | 12 comments
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?




Structure and Interpretation of Computer Programs either online[1] or on dead trees[2]. Also has accompanying video lectures[3].

[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...


I absolutely second this. SICP doesn't just teach you how to program, it compels you to learn about how and why certain concepts in programming languages work. It's really a very fundamental work.


Do you have any experience with programming in any languages previously, even if it was a long time ago? Some of the other resources people have posted are certainly good if you want to understand the more theoretical side of programming, but may be more difficult to start with than something with more immediate results/feedback.

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, band together. It is always nice to have friends motivating you. Work on a (challenging) team project. Push each other.

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.


1. get text editor (textmate if you are on os x, vim if you are on windows)

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 :)


Well do you know what language you might start off with? And if you're not sure, can you tell us a bit more about your background and what kind of programming you'd like to get into? (i.e. what you'd like to do)

edit: You should definitely check out this article: http://catb.org/~esr/faqs/hacker-howto.html It has a lot of great advice on how to think like a programmer, what languages are essential, things like that.


Pick up the Learning Python book.


Python is fantastic but Learning Python might be a bit steep for someone who's not familiar with programming at all.

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.


Python. It's easy to learn and there are real world jobs, if you get bitten really badly. MIT switched to Python as their introductory language,


I agree with those recommending Python as a great first language to learn. You can download it for free at the Python web site, which is www.python.org. Get version 2.6.2 for now. Experimenting with the interactive interpreter and with running programs you save as .py files is easy with Idle, which is included. (You can write Python programs in other editors, but Idle should be fine to start with. In particular : VIM, mentioned by sunkencity, is an extremely powerful editor, but not at all intuitive, with a steep learning curve requiring a lot of practice to get productive with it - so save that for later.) See the tutorial and other documentation on the Python site, as well as its links to other information.


> I'd like to start programming. What starting points

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.


The Little Schemer




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: