Wednesday, October 12, 2011

Throwing books at the problem

I ordered a few books on Objective-C and Cocoa programming. My reasons are as follows.

1) One of my motivations for learning to program was to try and eventually build some good mobile application ideas I had. I own an iPhone and bought a Macbook to learn C/Python/etc on so I might as well go whole hog.

2) OSX uses GCC and shares a great deal of common UNIX programming paradigms. One of the books I picked up has a good section on GCC and GDB which will carry over into Linux.

3) I like working in Linux and using GTK, but it's getting cumbersome to always do it in a virtual environment. I've also gotten far enough along in GTK to realize that I could easily spend the rest of my hobby time for years learning the deeper bits and I'd rather spend that time learning something that will help point number 1.

4) I already have a few C++ books collecting dust on my shelf, and honestly what I've seen of C++ programming frightens me. I don't want to learn Java. I feel like I could quickly get competent enough at both in a short amount of time if I really had to.

This are the most important points:

5) My life has always been about the niche skills or uncommon elements. I play drums, I have a neuroscience degree, I have pet rats, I do tech support for a niche product, and so on. Objective-C is an uncommon (relative to C++/Java) language typically learned for a specific niche market. Why fight it?

6) Objective-C is a strict super-set of C. C++ claims to be sometimes, but there are so many exceptions. Nothing I learned will have been lost or need to be checked against special rules.

7) I started out trying to learn C, but that goal has evolved to simply learning to program.

8) I'm not in this to make a career move. That would be an unreasonable expectation. If I meant to switch careers I'd double down on Python and Java since those are more marketable skills. That being said, a little Python knowledge has gone a long way at the office.

I'm giving myself the winter to explore this. From now until the end of February. I'd like to be at least as competent at Cocoa (native OS X framework) as I was at GDK/GTK, and also have a solid handle on Objective-C syntax common object oriented patterns (hopefully my work in Python will have helped).

No comments:

Post a Comment