Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Where does a beginner programmer start?
6 points by Buunta on Aug 24, 2012 | hide | past | favorite | 8 comments
Hey everyone, I'm currently working full time while doing one unit a semester of a computer science course at university. In my spare time I am trying to learn as much about different languages (currently C, objective-C, html, css and php) as I can, however I am getting frustrated as I don't really know where to start and how to go about practising. I have been reading a few books but it's just not the same as actually working on a project and learning on the go.

If anyone has any suggestions or resources that could help me it would be greatly appreciated if you provide them!

Thanks in advance




Pick a simple project and see it through to completion. That's really the only way.

So not making your own search engine, a dating website, twitter for cats, anything like that. Far too large of an undertaking. Those are for later in your career.

Because you listed Objective-C, I'd really recommend making a menubar app then launching it on the Mac App Store. People expect menubar apps to be small utilities that do one thing well. Perfect for someone just starting out. And having launched an app to THE App Store is a huge boost to your portfolio and self-esteem.

So pick some little piece of functionality you need and wrap it up as a menubar app. Forum notifications, whois-lookup, image upload, workflow enhancement... I'm sure you can think of something.

I made a small menubar app (see below) when I was learning Objective-C myself. Highly recommended, once you have the basics down, to get to work on a simple app.

Reddit Notifier: http://itunes.apple.com/us/app/reddit-notifier/id468366517?m...


First of all, practice makes perfect, throw yourself in to a project, even if the task seems childish and inane, get yourself in to the routine of regularly churning out code and you will become a much better developer.

One thing you will find is time pressure, as you go forward you will want to give up or spend more time with your family, make sure you devote some time to them as well, an unhappy coder generally makes for unproductive sessions.

Once you are in to the swing of things, coding away big chunks every day, you will find that the standard functions given to you no longer suffice, try to write a small library to ease whichever issue you are having (but please, don't bother us with it if it's yet another javascript library!) and you will begin to understand modularity and namespacing.

One key thing is this: if you have the passion, no matter your situation you will become a much better programmer, if you don't care or don't devote time to the task you will wilt.

There may be those who claim that they learned python in 6 weeks, or became a coding superman guru in 12, but this is a game of masters and those stuck behind them, it's a long journey ahead of you and a few years before you can really say you are competent but if you stick at it like the rest of us, get involved with the community and do your part, you will inevitably, through trial and strength of will, be where you want to be.

If you are stuck for a project, try implementing a simple text based game in PHP, then try to convert some of the code to c and port it to the software level, it will teach you a lot about the differences between programming languages and when to use one over the other.

P.S. Wrote this comment for your deleted topic :)


For practicing or learning new coding things I like to read a projects source, run a debugger on it, and basically spend a couple days/weeks analyzing how every aspect of the system works. Then after I'm comfortable i.e. I can go through in my head for example the structs, their function calls, the system flow, etc, I try to program my own implementation of the system, a part of it, or a plugin. This has worked for me ,hopefully it helps :)


Personally, I feel I have gained most experience from creating solutions to (sometimes) stupid or easy problems. Stuff to generally making my life easier. I even built a small social network focused around dating because I didn't want to pay for the existing ones. (Needless to say, no one uses it today. :)) These kind of projects give me the most inspiration to learn new stuff and finish it.

So find something that bothers you and fix it!


CodeSchool.com has a lot of great classes on a wide variety of programming topics. Also, think of a simple project you want to work on and do that.

DHH has a great post on learning how to program. http://37signals.com/svn/posts/2582-how-do-i-learn-to-progra...


Not to sound snarky, but try browsing previous posts to Ask HN. There are numerous times when someone's asked a question like this. Rather than rehash, try reading the good recommendations provided in those threads.


I think Udacity has it spot on. It's great to finish a project and actually have something to show for it, instead of having ticked off x number of book pages or tutorials lost in the ether.


Great advice! Building a basic search engine is pretty awesome and keeps you engaged. Really enjoyed it and now I'm taking as many courses as my time permits :D




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: