Welcome to the MacNN Forums.

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

You are here: MacNN Forums > Software - Troubleshooting and Discussion > Developer Center > How long to learn Cocoa?

How long to learn Cocoa?
Thread Tools
kooBi
Junior Member
Join Date: May 2001
Location: Perth, Western Australia
Status: Offline
Reply With Quote
May 26, 2001, 11:36 PM
 
Just curious - How long would it take for someone with above average intelligence, and no previous programming experience (although computer-literate) to learn how to develop Cocoa apps?
     
technote 31
Guest
Status:
Reply With Quote
May 26, 2001, 11:42 PM
 
would depend on what you want to do. You can learn how do do a program that will take simple text imputs and do a computation very quickly.Developing a full blown app especially one that does any sort of graphics would be considerably more difficult. If you just want to get started with Mac Programming try RealBasic. Easier than cocoa and also you can build apps for OS 9, OS X, and even Windows.

     
dogzilla
Grizzled Veteran
Join Date: Sep 1999
Location: Boston, MA USA
Status: Offline
Reply With Quote
May 26, 2001, 11:53 PM
 
Originally posted by kooBi:
Just curious - How long would it take for someone with above average intelligence, and no previous programming experience (although computer-literate) to learn how to develop Cocoa apps?
Check out http://www.oreillynet.com/pub/a/mac/.../18/cocoa.html and decide for yourself. Honestly, I don't think C/C++/Obj-C concepts are all that difficult. And Apple's dev tools certainly make things very easy for you. I think the biggest challenge is in finding a usable reference to all the things you can do.

As far as RealBASIC - it's interesting, but ultimately a dead end. And it has *so* many bugs.
     
mmj_ngen
Junior Member
Join Date: Mar 2001
Status: Offline
Reply With Quote
May 26, 2001, 11:57 PM
 
Hmm. Your basically asking how long it would take someone to learn to program. Cocoa does a lot for you, but it still really is just another pardigm. Nothing special necessarily. Try a tutorial, and get a feel for it yourself. Your the only one that can really gauge how long it will take. People may tell its easy because they forget what it was like to learn the basics of programming. People may say its hard because they either don't understand it themselves, or they place too much importance on their own abilities. It totally depends on you and your time.

Honestly, I wouldn't start out with developing in Cocoa first, but I know it's hard to resist. (learn C, or Java).

Maybe try one of Apple's Cocoa tutorial. See how long it takes you to run (and really understand) one of those. Multiply that time by a magnitude of 10. Read and research for that amount of time. At that point you should have a decent understanding of programming. Wow, I just pulled that out of my ass. It seems about right though. I'd recommend the Java Cocoa tutorial because it seems like the most straight forward with the most limited references to cryptic concepts or terminology, but that's just my limited opinion.
     
Angus_D
Addicted to MacNN
Join Date: Mar 2000
Location: London, UK
Status: Offline
Reply With Quote
May 27, 2001, 06:19 AM
 
It really does depend from person to person, how much effort you put into it, etc etc. I'd suggest that it takes longer than 10 * time taken to write CurrencyConverter.

If it's your first programming experience, it might take longer to get your head round some of the concepts. I'd suggest getting Learning Cocoa from O'Reilly, possibly a book on C. Within 6 months or so of messing around things should start to click and you should be able to write a semi-decent app. The more time and effort you devote to it, the less time it takes to get good at it.
     
I'm a Monkey
Guest
Status:
Reply With Quote
May 27, 2001, 06:24 AM
 
You must notice first there is a difference between learning Cocoa which is an API and learning Objective-C which is a language.

If you have some knowledge on C and OOP or on C++/Java, learning Objective-C is a matter of one week.

Learning Cocoa is really different since it's a very rich API. You can learn how to do simple software like currency converter in a week. When it comes to writing a real application, consider 6-12 months to be a good estimation. And after these 6-12 months don't hope to master the whole API, but instead imagine that you will be able to write most of an application without losing your time searching the documentation.
     
Orbit
Dedicated MacNNer
Join Date: Jan 2000
Location: Seattle, WA
Status: Offline
Reply With Quote
May 27, 2001, 12:07 PM
 
Cocoa. A minute to learn, a lifetime to master.

Seriously though, I'd suggest starting out with learning some C programming, and then C++ (which is cake once you have C down), and then Objective-C after that. Basically, after you learn one programming language, you can pick up another one very quickly because you understand that they're basically doing similar things behind the scenes, just implementing things in different ways. Give yourself a year or more to maintain a leisurely pace and just absorb programming knowledge through practice and reading books on it. It's not magic, but there's a lot of minutae to wrap your brain around, and it can be rather confusing at times. It also really really helps to have friends who already program so that they can guide you around any pitfalls or help you out when you're totally stumped about something.

One thing I can suggest which really helps is going a little farther and learning, at least on a rudimentary level, about assembly code, the way a computer stores and accesses memory, and the basics of what happens inside a processor. It may seem a bit archaic and unnecessary, but it's essential for knowing *why* things are the way they are, and a lot of the finer points of programming fall into place. I'm not saying you should go out and learn the specifics of machine level programming or anything like that, but a basic understanding will help you learn the nature of the beast.

So, that was more info than you really needed to know on the subject. If you're starting from scratch, I'd suggest "Mac Programming for Dummies".. don't laugh.. it's Classic Mac OS Programming but it leaves no detail unaddressed, so it's easy to follow if you're just starting out.
     
gorgonzola
Admin Emeritus
Join Date: Nov 2000
Location: New Yawk
Status: Offline
Reply With Quote
May 27, 2001, 12:28 PM
 
I'm moving this thread to OS X Developer. Click through to find yourself.

thanks

------------------
the oddball newsletter
------------------
it's only after you lose everything that you're free to do anything
"Do not be too positive about things. You may be in error." (C. F. Lawlor, The Mixicologist)
     
DaGuy
Senior User
Join Date: Oct 2000
Location: Lawrence, KS
Status: Offline
Reply With Quote
May 27, 2001, 04:15 PM
 
RealBasic is a good learning language. It could be a dead end in the long run but not if you will be building simple apps.

- If you are curious -> RealBasic
- If you are thinking long term and big time apps -> Cocoa (or Java if you need cross platform compatibilty)
iMac 17" G4 800MHZ & 768 SDRAM
     
parallax
Admin Emeritus
Join Date: Oct 2000
Location: Boston, MA
Status: Offline
Reply With Quote
May 27, 2001, 05:57 PM
 
No! Not REALbasic!

See my comments on REALbasic in other threads. It'll get you into bad habits.

You'll want to know C regardless of the platform you'll be using. It's essential.
"Against stupidity, the gods themselves contend in vain" (Schiller)
     
mr_sonicblue
Mac Elite
Join Date: Sep 2000
Location: Eagan, MN
Status: Offline
Reply With Quote
May 27, 2001, 11:45 PM
 
It's impossible to say. I'm currently in school for programming. Nearly all the people in the class had never programmed before (the ones that had, except for me, had only programming in BASIC) and many had never really touched a computer before. Some people have simply been able to develop the logic skills necessary to program. Some have not (they typically modify examples from the text book to finish assignments when they should be able to develop programs from scratch.)

Programming is all about logic skills. And, if you're going to attempt to step straight into an object-oriented environment, you may run into trouble. It would be very difficult to understand why object-oriented languages exist, and how they are used, unless you first completely understand a procedural language.

But, once again, it's impossible to tell.

------------------
     
kooBi  (op)
Junior Member
Join Date: May 2001
Location: Perth, Western Australia
Status: Offline
Reply With Quote
May 28, 2001, 12:50 AM
 
Thanks for the replies, they have been very useful. I have some previous programming experience from doing GIS (Geographic Information Systems) at University... we were using ArcINFO. It was really just a basic introduction to programming looking back, but the concepts involved and the beauty of well-written code wasn't lost on me. We had to develop an app that would allow for text/value input and have a simple GUI... I developed one that would graphically model declines in Australian frog populations (from a nasty little fungus) given a host of different parameters. It was pretty intense and I had a great time doing it. So I think I'll take your collective advice and start with maybe Java and C and work my way up slowly... watch this space!

Cheers
     
mr_sonicblue
Mac Elite
Join Date: Sep 2000
Location: Eagan, MN
Status: Offline
Reply With Quote
May 28, 2001, 01:03 AM
 
Originally posted by kooBi:
So I think I'll take your collective advice and start with maybe Java and C and work my way up slowly...
Then may I suggest the book "Practical C Programming" from O'Reilly. It should be exactly what you're looking for.

------------------
     
Angus_D
Addicted to MacNN
Join Date: Mar 2000
Location: London, UK
Status: Offline
Reply With Quote
May 28, 2001, 02:15 PM
 
Originally posted by mr_sonicblue:
Programming is all about logic skills. And, if you're going to attempt to step straight into an object-oriented environment, you may run into trouble. It would be very difficult to understand why object-oriented languages exist, and how they are used, unless you first completely understand a procedural language.

But, once again, it's impossible to tell.
I'd have to disagree with that last point. Diving straight into OOP can be easier than learning Procedural then making the switch - first of all you have to learn to think procedurally, then undo all the thinking and think in objects, which is more natural in the first place. *shrug*
     
PMan88
Fresh-Faced Recruit
Join Date: Apr 2001
Status: Offline
Reply With Quote
May 28, 2001, 04:01 PM
 
Hi, I've been programming in RealBasic for about a year and am tired of all the bugs and not being in control. Before that, I used TrueBasic, but just the simple things like loops. subroutines, functions, variables. I don't know anything about the syntax of C, C++, Obj. C, or Java. I have heard a lot about how great the Cocoa API is, so I'm probably going to learn Objective C so I can make Cocoa apps. Is this the right thing to do or should I learn Classic or Carbon and C first?
     
Wixar
Junior Member
Join Date: Mar 2001
Status: Offline
Reply With Quote
May 29, 2001, 04:25 PM
 
Originally posted by PMan88:
Hi, I've been programming in RealBasic for about a year and am tired of all the bugs and not being in control. Before that, I used TrueBasic, but just the simple things like loops. subroutines, functions, variables. I don't know anything about the syntax of C, C++, Obj. C, or Java. I have heard a lot about how great the Cocoa API is, so I'm probably going to learn Objective C so I can make Cocoa apps. Is this the right thing to do or should I learn Classic or Carbon and C first?
If I were you, I'd learn ANSI C (but don't bother with Carbon or Classic) first, and then learn Objective-C and Cocoa.

Here are some resources that might help you:
http://www.eskimo.com/~scs/C-faq/q18.10.html
http://www.eskimo.com/~scs/C-faq/q18.9.html

Hope these help.

-Peter

[This message has been edited by Wixar (edited 05-29-2001).]
     
Rick1138
Forum Regular
Join Date: Dec 2000
Location: Rehoboth Beach,DE USA
Status: Offline
Reply With Quote
May 30, 2001, 02:53 AM
 
If you're serious about programming you'll want to learn as much about computer science as possible.Some books I recommend are:
Introduction to Algorithms by Thomas H. Cormen et al.
A Logical Approach to Discrete Math by David Gries and Fred Schneider
The Essence of Artificial Intelligence by Alison Cawsey
The first two are very difficult books,but well worth the effort.The third is a somewhat easier and very clear introduction to the basic concepts of AI such as neural nets,genetic algorithms,expert systems,speech recognition,etc.The truth is programming is difficult,no matter how intelligent you are,it requires a major commitment of time and effort.
     
Rick1138
Forum Regular
Join Date: Dec 2000
Location: Rehoboth Beach,DE USA
Status: Offline
Reply With Quote
May 30, 2001, 03:01 AM
 
If you're serious about programming you'll want to learn as much about computer science as possible.Some books I recommend are:
Introduction to Algorithms by Thomas H. Cormen et al.
A Logical Approach to Discrete Math by David Gries and Fred Schneider
The Essence of Artificial Intelligence by Alison Cawsey
The first two are very difficult books,but well worth the effort.The third is a somewhat easier and very clear introduction to the basic concepts of AI such as neural nets,genetic algorithms,expert systems,speech recognition,etc.The truth is programming is difficult,no matter how intelligent you are,it requires a major commitment of time and effort.
     
   
 
Forum Links
Forum Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Top
Privacy Policy
All times are GMT -4. The time now is 03:46 AM.
All contents of these forums © 1995-2017 MacNN. All rights reserved.
Branding + Design: www.gesamtbild.com
vBulletin v.3.8.8 © 2000-2017, Jelsoft Enterprises Ltd.,