

Ask HN: Where to begin programming? - sroerick

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.<p>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.<p>I'd like to start programming. What starting points, things to keep in mind, etc. would you give me, just starting out?
======
rlm
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&...](http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=3305)

[3]: [http://groups.csail.mit.edu/mac/classes/6.001/abelson-
sussma...](http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-
lectures/)

~~~
wlievens
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.

------
JeremyBanks
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/>.

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

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

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

------
bcl
Pick up the Learning Python book.

~~~
jamesk2
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.

------
russell
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,

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

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

------
tumult
The Little Schemer

