Re: How hard is it to learn Cocoa - Survey ?
Re: How hard is it to learn Cocoa - Survey ?
- Subject: Re: How hard is it to learn Cocoa - Survey ?
- From: Greg Titus <email@hidden>
- Date: Sun, 25 May 2008 15:46:29 -0700
I think it'll be very hard to compare learning times then to learning
times now because the frameworks involved are quite a bit different. I
started working on Cocoa stuff for Omni near the end of 1993. A lot of
the concepts behind the AppKit class hierarchy have changed
surprisingly little since then, and we even had binding equivalents as
part of DBKit (an ancient database layer that was rewritten into EOF
and then into WebObjects Obj-C and then into Java...). But there was
no Foundation framework back then, no retain/release, standard
Objective-C style was even quite a bit different (set methods normally
returning self instead of nil, et cetera).
With that caveat: I'm pretty sure I was usefully productive in Cocoa
after two weeks or so. Note that this was a full-time job, so I had
both time to come up to speed, no distractions, and was working
directly with people who were already experts. That is a very
different learning environment from a spare time, on-your-own method
of learning.
-- Greg
On May 25, 2008, at 1:18 PM, Erik Buck wrote:
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 (email@hidden)
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:
This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden