Hi,
I really wan't to get into programming, I love my mac and just want to be able to create some simple basic apps of my own.
The thing is I don't really know the first thing about programming, I don't really understand how it all works.
My question is could someone please explain to me how it all works and how they got all of their knowledge about it. Would it be possible to learn the basics online by myself or do I need to go to college for that?
Im really enthusiatic about this so I don't mind spending a little money on a book if that will help but i am only a student so free would be best.
Thanks, I hope someone understands and can help
I'm on a similar path, but I have a bit of familiarity with programming (tinkering with Visual Basic as a kid, and Quake C ironically enough). I've always been employed in technology, currently a network engineer at fortune 6, but have never really been able to find that "breakthrough" into programming.
Just a quick note: I prefer a hardcopy book to electronic documentation, so much of what I am going to recommend are physical books. Don't, however, overlook the power of Apples own documentation. It's highly technical, dry, and loaded with details... but it's invaluable. I have spent many nights combing through Apples official documentation to find out what I was doing wrong, and very rarely have I left without a solution.
When the iPhone was first released, I figured what the hell and bought the
Beginning iPhone Development book from Apress. Predictably, it was way over my head, but it did pique my interest in programming again.
Let me be the first to say that programming books have come a long way since I first cracked one.
I bought
Learn C on the Mac by Dave Mark (apress) a few days later, and quickly went through it. He clearly explains all the basics of the C language, gives the technical details behind variable types and lays a very strong foundation with which to begin to learn Objective-C on. I've tried to work through many books on C, and have never come close to getting it. His chapter on pointers is spot on. This book was the breakthrough I needed. My only gripes with the book are that it doesn't really go into advanced topics in detail (binary trees and recursion for example). It goes far enough to tell you what they are, but that's it. Those are important data structures, and I'd encourage you to pursue that on your own... but they aren't essential to begin developing software on the Mac.
Cocoa and the iPhone SDK are based in Objective-C, so that's where you'll want to focus next. Objective-C is a superset of the C language, meaning it just adds on a ton of features (and makes life easier!) to C. That also means that you'll have to have a good handle on C before tackling Objective-C.
After I finished
Learn C on the Mac, I picked up the follow-up book
Learn Objective-C on the Mac by Mark Dalrymple and Scott Knaster (apress). It's a little more dry than Dave Marks book, but presents all the basic ideas behind Objective-C clearly and by the end of the book, I feel I was fairly proficient in the basics of Objective-C programming.
It's extremely important that you do the exercises and follow along with the code. It'll solidify what you are reading.
But C and Objective-C are just languages. To really begin to make things happen, you'll need to know Cocoa, a set of Mac and iPhone specific APIs. Each window, button, textfield, etc is a Cocoa class. Objective-C is the language Cocoa is written in, which is why you need to be proficient in the language to take advantage of it. So understand that learning the language is the most basic prerequisite to beginning to program the Mac.
So where does that leave you?
To learn Cocoa, pick up "Cocoa Programming for Mac OS X" by Aaron Hillegass. That book is widely considered the Cocoa bible. Every Mac programmer should have a copy of that on their desk, if even just for reference.
If you are interested in iPhone programming, you'd be hard pressed to find a better book than
Beginning iPhone Development: Exploring the iPhone SDK by Dave Mark and Jeff LaMarche (apress).
Hope that clears things up a little bit for you. I'm still learning myself, every day is a new discovery. It's fun, exciting, and has me interested in technology again. My career has long since burned out the nerd-spark in me, but learning how to develop on the mac has rekindled it
Learn C on the Mac (Dave Mark)
Learn Objective-C on the Mac (Scott Knaster, Mark Dalrymple)
Beginning iPhone Development: Exploring the iPhone SDK (Dave Mark, Jeff LaMarche)
Cocoa Programming for Mac OS X (Aaron Hillegass)
Apple Developer Site:
http://developer.apple.com