Cocoa Crunch (Day 7)

Its the end of the crunch and I feel just a bit unsatisfied. I think, perhaps, I have finally outgrown Aaron’s book to some degree and its time to dig into specific technologies in a more substantial way. I have purchase three ebooks from The Pragmatic Programmer: Core Animation for Mac OS X, Interface Oriented Design, and The Art and Science of Javascript. I believe the next crunch should be for the Core Animation book before the iPhone courses as iPhone (and now iPad) development is slightly lower on my list of immediate needs. file_wrangler_2 must be the priority, and I believe Core Animation will assist me in delivering a proper “Apple polish” to that application. The skills are transferrable to the iPhone as well, so good leverage of skills. At 180 pages (versus the 250 or so of the Hillegass book) I believe it can be power-grokked (hey, I may have just invented a new word?) in about five days.

Also just started up a Java night course. VERY knowledgeable instructor at Berkeley Community College who says this class and its successor will prepare one for the Java Certified Programmer and Developer tests. Outstanding value at only cost $50/class, I think. We’ll be tackling all 1272 pages of Absolute Java over the semester using the NetBeans IDE and I will catalog my thoughts on Java vs. Objective-C as the course progresses. Regardless, it will be good to have a new tool in my toolbox, especially as relates to cross-platform development.

The final five chapters were really just four chapters (chapter 5 is a two-page “feel-good talk”), and really they were such glossy introductions to concepts that it is difficult to glean many useful data points from the knowledge. The NSTask issue I resolved the other day (and wrote about in Cocoa Crunch, Day 6) regarding how to get a chain of tasks to run. I used that knowledge in Chapter 34 and built my own app, “iGrep”, from scratch in under an hour. Select a folder, type in a phrase to grep, and get a nice list of matching results. It would have been just as well to do it in Cocoa using Search Kit and/or Spotlight, but it was good practice and really opened my eyes to wrapping terminal commands into pretty Cocoa shells.

The Garbage Collection chapter I read, did the examples, played with Instruments, and that was about it. I feel I need an entire book about Instruments to really get how to use it in a meaningful way. I don’t have any intention of worrying about the automatic garbage collector until the iPhone supports it; I don’t want to have two ways to working when one, carefully considered methodology works just as well.

The Core Animation chapter was enlightening in-so-much as a tech demo of what Core Animation can do, but I was left feeling a little mystified by how to implement it, when to make calls, what gets wrapped into which animation at what time, and so forth. Probably just need to do the exercise a second time, however I think a more detailed explanation of the whole animation process with the new Core Animation book will answer these questions for me just as well.

OpenGL is amazing and cool and awesome and a HUGE beast of a thing to learn. It is fun getting 3D onto the screen, manipulating it and playing with colors and lights. However it is also an absolutely dense topic with a vertical learning curve. I found these tutorials at NeHe that seem to be a great starting point for beginners to OpenGL. Perhaps for bones_2?

At any rate, pushing myself to get through the book in 7 days was a great feeling of accomplishment, but also reminded me of just how much there is yet to learn. I suppose the highest praise I can give Cocoa Programming for Mac OS X, 3rd Edition is just how eager it makes me to know more and to become an outstanding programmer with top-notch programming practices.

I’ll never be a John Carmack, but I really don’t need to be to deliver professional, polished, and useful software that genuinely helps people achieve more with less. That is my goal and my commitment to my past and future customers.

Leave a Reply

Your email address will not be published. Required fields are marked *