How long does it take to learn how to program for Mac OS X?
July 26, 2007 12:44 AM
Subscribe
How long does it take to learn how to program for Mac OS X?
I frequently have ideas for applications that I wish existed, and am trying to figure out whether it's worth learning how to make them myself (as a hobby -- I have no professional programming aspirations).
Based on the answers to a
previous AskMeFi question, it seems like the best approach is to start with Kochan's
Programming in Objective C and then move to Hillegass's
Cocoa Programming for Mac OS X.
I don't have any experience with serious programming languages, but over ten years ago was pretty adept with BASIC. I'm a pretty quick study in general, though.
Realistically, around how many hours would it take to gain enough proficiency to make useful applications?
posted by Ø to computers & internet (14 comments total)
15 users marked this as a favorite
If you were adept with BASIC ten years ago, you should get to Hello World in a completely new platform within hours to tens of hours, and you will probably be able to produce useful little bits and pieces to scratch your own itches in a few hundred hours.
It will take you tens of thousands of hours to get proficient enough to knock out commercial-grade apps. But then, it takes tens of thousands of hours to write commercial-grade apps. So the best thing to do is just get started on the drive toward your first one, but plan to throw it away. Then start your second one, and make that the first thing you release. By then, you'll have enough knowledge and experience to do a competent rewrite of the first one.
Bear in mind at all times that good code is what remains after you've deleted nine tenths of what you've written, and you won't go too far wrong.
The very first thing you should do is install a good source-code revision control system (like subversion) and work out how to drive that.
Once you have enough experience with your chosen implementation platform to feel comfortable with it, get into the habit of writing unit tests for all the code you create. Not only will this force you to consider exactly what it is that you really want each unit to do, it will force you to think through the edge cases - and this process often leads to insights that can make you decide to approach coding from a slightly different direction, or break it into modules in a slightly different way that will work better for you. The question you should always be asking when you've written a chunk of code is "how can I be sure this code does what I think it does?" And this is true in any language and/or framework.
Go for it! Enjoy!
posted by flabdablet at 1:06 AM on July 26, 2007 [1 favorite]