I started development on iPhone platform few months ago after a few years of experience on MS .NET platform. Why? I was kind of bored of all that stuff related with enterprise sort of applications. If you been there than you know what I mean - dealing with relational databases, win forms or web applications and particularly - client requirements might be a fun... but you are always constrained and there is not much you can do about it.
To cut long story short - I decided to give iPhone OS a try, developed some ideas for my future applications and started learning. If you came from .NET or Java world as I did then I must admit - it might be challenging for you to get used to a new language (Objective C), new set of frameworks (like Cocoa) and a new IDE (XCode). To be frank, I consider XCode miles behind Visual Studio .NET and this is not only my opinion. But if you are tough enough you will definietely manage and after some time you are gonna even like it :) (like I do)
Ok, so what you are gonna need at start:
- First of all, your old PC with Windows installed won't make it - you need a Mac, the cheapest option is to buy yourself a Mac mini. If you need a laptop, then MacBook White might be a good way to start. I have an entry-level MacBook Pro with 13.3 inches screen and I haven't faced any major performance issues so far.
- At the beginning, joining a free developer program is enough to test your application on a simulator. If you want more - you need to enroll in iPhone developer paid program which costs 99$ / year but gives you the ability to test your application on a real device (iPhone, iPod Touch, iPad).
- From that moment, you should more often start visiting http://developer.apple.com/ instead of http://msdn.microsoft.com and your first step will probably be to download iOS SDK along with XCode - your main development environment.
And that's almost it. Joining a developer program will give you an access to a documentation, sample applications and many other resources that should help you to start.
Happy Obj-C coding!