Good afternoon. I am a user experience designer, proficient in XHTML and CSS. I have dabbled with some PHP and JavaScript but by no means am I comfortable with them.
My main goal is to develop OS X and iPhone software. I have been given advice on those topics, but in I am struggling with Object Oriented programming.
Books that I have regarding Mac development include:
Cocoa Programming for Mac OS X 3rd Edition – Aaron Hillegass,
Programming in Objective-C 2.0 – Stephen Kochan,
The Object-Oriented Thought Process -Matt Weisfeld
In short I feel like I do not have enough experience with programming to tackle this at the moment, so I would like to direct my learning towards a web technology. I have read a bit on the differences between Ruby on Rails and PHP. My question is, which will be more beneficial towards my end goal? Ruby on Rails is initially object oriented, where as PHP is not.
I have video courses for both, which would you recommend that I begin with? Perhaps I am going about this the wrong way? What do you think?
Apologies if this post is inane or doubled, I’m stuck.
UPDATE
I have been following a PHP course all week. Concepts appear to be very clear to me now. During the middle of this coming week I plan to begin the OOP chapters of the video training. I’m quite happy with what I will be able to pursue with this new found knowledge in terms of web application development.
In regards to Objective-C, I know that it is recommended to learn C prior to pursuing Objective-C. Before I continue with Aaron Hillegass’s book, should I take a dive a C? Learn C, is this optimal for a newb, or would you experienced developers rather see a beginner tackle a book? Should I forget about C all together and learn OOP with PHP as stated above and move straight into Objective-C?
If you already have a basic knowledge of Javascript, you should continue in this direction rather than picking up a totally different language like Ruby or PHP. Javascript has a lot more in common with Objective-C in how it’s used than RoR or PHP.
Server-side languages run small programs from start to finish in a split second, whereas Javascript or Objective-C programs run for an indefinite amount of time. Both types of programs require a different mindset, and object oriented programming makes a lot more sense when you actually have a bunch of objects that interact with each other over time and that the user can interact with. Objects in PHP are mainly a way to organize code, they don’t teach you a lot about object interaction.
Since there’s going to be a learning curve no matter what, you may as well dive right into Objective-C, but learning Javascript first is the next best thing if you really don’t want to. Since you can play around with it in your browser’s console it offers a great interactive way to learn. The problem with Javascript is the lack of good material, but Crockford and the Mozilla Reference are probably the best places to start.
Programming in Javascript usually means manipulating a browser’s DOM, which is another concept you’d have to learn. It also means having to deal with browser quirks, which is best dealt with by using a Javascript framework/library like jQuery, MooTools or Prototype, which is yet another technology.
To avoid these additional learning curves, you can use Javascript in a bunch of other scenarios, including desktop widgets/gadgets. These work a lot like mini-Cocoa apps in terms of user interaction and might be a good starting point.