Ask HN: Where does a beginner programmer start?
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
(
8 comments
| 6 points
| on HN
)
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...
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 :)
So find something that bothers you and fix it!
DHH has a great post on learning how to program. http://37signals.com/svn/posts/2582-how-do-i-learn-to-progra...