I have been working with Cocoa and its predecessors for so long that I can't remember how long it took me to learn to use the frameworks. One of my first non-trivial NeXTstep applications was a Tetris game. It was about 1989 or early 1990 when a friend was admiring my NeXT cube. She asked if there was a Tetris game, and when I said there wasn't, she said, well what kind of computer doesn't have Tetris? It must be useless.

I spent two days with little sleep - maybe 40 hours straight- and coded up a Tetris game. Of course, it was 2 bit gray scale, but it had synthesized "stringed instrument" background music, and you could supply your own images to be used as backgrounds. In fact, every user could have different background images. My friend said she wasn't impressed, but she spent about two hundred hours playing the game that summer. She asked me to enhance the game so that the music tempo increased with the game level and sliding or rotating blocks had their own sound effects that were mixed with the background music. Stacking up blocks transposed the music to different keys. At first she played the game to get the highest score in our social circle. Later she played the game to see what kind of cool "music" she could produce. NeXT's DSP was was very cool, and the examples I used to get started later became MusicKit (I think). I never was able to digitally record her music in real time though...

So, anyway, I implemented lots of student projects with Objective-C and the NeXT. I wrote a recursive descent parser for my compilers class. There was a separate class for each scan-able token. A class method +newWithPartialString:(const char*) nextPosition:(int *)nextIndexPtr returned an instance of whatever token subclass could make the longest match. Then each token know about the previous and next tokens and contained the applicable grammar rules to identify syntax errors along the lines of "I am not allowed to follow my predecessor so there is a syntax error at my position..." My professor thought it was really nifty. Everybody else in the class used Pascal or Ada to implement their parsers as direct copies of the textbook examples.

By the time graduated in December 1991, I was thoroughly familiar and comfortable with most NeXT APIs including the Unix layer and Display Postscript. I would say I went from newbie to advanced in about two years or maybe a little less while working and attending school full time. I used Interface Builder and File's Owner and First Responder and targets and actions and delegates. Since then I have been along for the ride with the separation of FoundationKit, DBKit, EOF, 3DKit, NeXTtime, MusicKit, Renderman, the transition to Openstep, the years in the wilderness with Apple... Of course, there is a lot more to learn now, or is there really?



So this is a survey:
For those who consider themselves intermediate to advanced Cocoa programmers, how long was the journey from newbie to competent and from competent to advanced ? What percentage of your time did you dedicate over how many months ?

Maybe we can establish a standard distribution of learning time required. Just having a basis to set expectations might help future newbies.







_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to