Live data from Hacker News

Ask HN: Okay okay, I'll learn to program...now what?

news.ycombinator.com

1–10 of 56 posts

Ask HN: Okay okay, I'll learn to program...now what?

#1
Nearly a year of daily hn visits (spent reading the stories I understood) I've come to a realization: Knowing a programming language seriously reduces the barriers to entry for a tech startup.

So the big Q: Where do I start? Do you have any resources to break down my options (Languages for Dummies?) and help me decide what, and how, I'll go about this.

Background info: I've programmed in C, C++, and VB, but nothing more than what an entry level course would teach. I'm rather adept in CSS, but that doesn't really count.

Re: Ask HN: Okay okay, I'll learn to program...now what?

#2
You need to decide what you want to build, or at least what you want to build first.

From CSS, an obvious way to go is Javascript or PHP, or better yet both.

If you think that you don't want to build a specific thing, but instead want a birds-eye armchair view of the essence of what programming is about, don't waste time; try SICP:

http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussma...

But odds are that you'll quickly find that you don't actually want to be a computer scientist. ;) You want to build something. So find an example of the thing you want to build, learn what it was built with, then learn to program that.

Bonus advice: Whenever you don't know what else to do, learn about Unix, find a new feature of your text editor or version control system, or study regular expressions.

Re: Ask HN: Okay okay, I'll learn to program...now what?

#4
Pick one language to begin with and spend as much time possible trying out beginner material, building small things of your own (no one has to use them), and learning how to find information for yourself online.

I suggest Python, check out these resources:

http://wiki.python.org/moin/BeginnersGuide/NonProgrammers

Re: Ask HN: Okay okay, I'll learn to program...now what?

#5
Python. Do not do the official guide. Do not read the documentation. Do something that forces you to program examples of increasing difficulty.

In short, do this course: http://cs.northwestern.edu/~akuzma/classes/EECS110-s10/index...

All the labs and assignments are online. You get to make maze solvers, generate fractals, implement Conway's Game of Life, lots of genuinely fun stuff. Just work through it and tell yourself you are doing it for fun not for work. You'll be done before you know it. Good luck!

Re: Ask HN: Okay okay, I'll learn to program...now what?

#6
Seriously, it doesn't really matter where you start. I don't want to be pessimist, but you've got so many things to learn that the important here is not where you start but the determination that you will put in to continue working days after days.

That said, I suggest you start with something fun because it will motivate you. Example of that might be a simple dynamic website (using php, python, ruby, or whatever else you might like).. Also fun is creating a small game (Using some excellent libraries for beginners).

You told us what you knew about programming, but you didn't tell what was your strength in other fields in life. Again, I suggest you start coding something related to other fields you're pretty good.

To give you a personal example, I first built a website about dragon ball because that's what I liked when I was younger ;-) Also, I made some chat robots because I pretty much liked IRC. That was my really first projects. (Done with pure html and mIRCscripts! The real important thing is to start somewhere.. once you create something, it motivates you to learn more and more. For instance, I switched from mircscripts to C++, then learn a dozen of languages for fun and now, I live from that :) However, it might never have happened if it wasn't about those dragon ball web pages that I had so much fun building.

Re: Ask HN: Okay okay, I'll learn to program...now what?

#8

Python. Do not do the official guide. Do not read the documentation. Do something that forces you to program examples of increasing difficulty. In short, do this course: http://cs.northwestern.edu/~akuzma/classes/EECS110-s10/index... All the labs and assignments are online. You get to make maze solvers, generate fractals, implement Conway's Game of Life, lots of genuinely fun stuff. Just work through it and tell your…

If you do start with Python I found Zed Shaw's Learn Python The Hard Way to be incredibly helpful when I first started learning to code some months ago.

http://learnpythonthehardway.org/

Re: Ask HN: Okay okay, I'll learn to program...now what?

#9
I'll be "that guy" and say start with JavaScript/HTML5 plus a NoSQL database system like CouchDB.

The reason is, this combination (like it or not) has a very good chance of completely taking over a wide spectrum of applications within a couple years (web, mobile, tablet, server, and desktop). Java and especially Ruby might be trendy now, but I am starting to believe the days of mega-sized application layers are numbered. JavaScript + HTML5 + touchscreen stuff on the iPad is already hot, and not to mention really fun to play with and learn.

Post reply on HN