Live data from Hacker News

Ask HN: How do you start programming?

news.ycombinator.com

11–13 of 13 posts

Re: Ask HN: How do you start programming?

#11
Video games. Seriously. Here's why:

1) Hardware knowledge. I didn't start programming until I started college, but I quickly realized that, growing up as a pretty avid gamer, I still had one advantage that a lot of the CS majors didn't have: I knew more about computers than they did. Games are some of the most demanding applications being created today, and, as a result, I had spent a lot of time reading hardware reviews and benchmarks. This resulted in my having a somewhat innate understanding of how data is passed around inside a computer and how this affects performance. It takes time to understand on a deep level how your code is interacting with the hardware, but when you see the frame rate tank because you used an inefficient algorithm somewhere, it sticks with you instantly.[1]

2) Instant gratification. Much like web programming, game programming allows you to see the result of your work, immediately and incrementally. And it looks good, because you get to use professionally developed resources (models, textures, etc). A side benefit is having good looking programs to put in your portfolio.

3) Wide variety of problem domains. Once you get familiar with programming in general, you can then work on pretty much anything you want: 3D graphics, physics simulation, AI, networking, UI / UX , HCI, etc.

4) It's fun.

Try giving Unity a shot and see how you like it: http://unity3d.com/unity/download/ . It's multiplatform and has API's in C#, JavaScript, and Python, so you have an element of choice. If you're a Windows user, I know a few people who started out by playing around with XNA, which uses C#. Examples of free commercial game SDK's are Epic's Unreal Development Kit (http://www.udk.com/) and Valve's Source Engine SDK, which comes free with any Source Engine-based game.

[1] When working on a graphics project, I accidentally put the function that imports and initializes the texture resources into the draw loop, which meant that new memory was being allocated for them 60+ times per second. Needless to say, I became very aware of the problem when my fans started to spin up like jet engines.

Re: Ask HN: How do you start programming?

#13
A practical/immediate suggestion: Forget about reading books and try the following for now.

Don't worry about the language wars. First learn to have fun. Have a go at http://www.tryruby.org - it teaches you to code in Ruby in 15 minutes'ish online. You can type stuff in and try it out immediately. If you like the test drive, then download Ruby and have a go at it.

If you liked that, checkout Google's python class - it has great examples, lectures, and even sample assignments. http://code.google.com/edu/languages/google-python-class/

They're both competing languages (or so the flame wars make it out to be :) and give you a nice introduction to programming super fast!

Post reply on HN