 |
 |
If It's Supposedly So Easy, Then Why Is It So Difficult
|
 |
|
 |
|
Senior User
Join Date: Mar 2001
Location: Toronto, Ontario, Canada
Status:
Offline
|
|
From what I understand, when the NeXT machines came out, their huge selling point was that it allowed regular people to easily develop applications for the platform. That was the advantage of object oriented programming.
So if it's so easy, then why am I finding it so difficult to learn to program? Supposedly I have to learn C to better understand Cocoa, so I've been plowing through "Learn C on the Macintosh" as well as "Learn C in 21 Days". I'm also doing some Cocoa tutorials using Interface Builder. As far as I see, the two things I'm doing have nothing in common and quite simply, I'm confused.
Then I read about books like "Cocoa Programming for Mac OS X" and "Learning Cocoa", but the books say you need to know C++ first, and in order to know C++, the best thing to do is to learn C, so I'm back at square one.
All I want to do is to learn how to do some programming, supposedly Cocoa is supposed to be easy, but if I have to learn all this complex stuff to get to the easy, then what's the point of it being easy at all? That's like saying one has to go through 4 years of college in an arts program before you can render a lens flare in Photoshop.
So could someone tell me straight up, no BS, how to learn to program Cocoa? If it's a book, I'll get it and go through it, if there's a huge web site tutorial, I'll go through it - but I'm finding this whole learn C to learn C++ and then go to Cocoa to be quite unwieldy. Surely there is a better way...?
|
|
|
| |
|
|
|
 |
|
 |
|
Moderator Emeritus 
Join Date: Mar 2001
Location: Austin, MN, USA
Status:
Offline
|
|
I'm in the same boat as you. I want to make my own Cocoa apps but I have to find the time to first learn the languages behind it. Here's my understanding as of now.
Most Cocoa apps are written in Objective-C. That is based on C. If you know C, then you can apply all that knowledge to Obj-C and just pick up any extras along the way. C++ isn't a necessity but since it's also based on C, if you already know it you have much of the foundation there. If you don't know C++, then don't learn it. Go from C to Obj-C. On the other hand, there is Java. I don't think it is used as much but it's a possibility.
You don't program in Cocoa. Cocoa is a framework. It's basically a set of hooks and "freebies" that you get without having to program everything yourself. It's also native only to OS X unlike Carbon.
The easy part you're looking for comes with all those freebies. To implement a "find" feature it's nothing more than a few lines of code. The same goes for a spell checker. All you need to do is call it. Also, with Interface Builder, you make your app look exactly how you want it. Interfaces for programming languages like Java alone have to be written in words. You have to tell it in code where all the different buttons and check boxes go. It's not nearly as easy as dragging your button to the place you want it and going from there.
I don't think you have to become fluent in C before starting with Obj-C. Being familiar with it would help. I'm sure you'll be able to learn C by learning Obj-C while making your first Cocoa app. I've found programming to be a whole lot easier when having a task to accomplish. I'm not much on books and reading. Just point me to the reference library and set me loose.
Sorry if I'm wrong about any of this... As I said, this is my understanding so please correct me if I'm wrong.
[ 12-26-2001: Message edited by: Xeo ]
|
|
|
| |
|
|
|
 |
|
 |
|
Ambrosia - el Presidente
Join Date: Sep 2000
Location: Rochester, NY
Status:
Offline
|
|
Writing Cocoa apps is easy, *if* you know Cocoa, and have a good firm grounding in OOP design and programming. If you don't know those two things, then no, it isn't easy.
I suggest going here: http://www.stepwise.com/Articles/VermontRecipes/
|
|
|
| |
|
|
|
 |
|
 |
|
Ambrosia - el Presidente
Join Date: Sep 2000
Location: Rochester, NY
Status:
Offline
|
|
...and yes, you should be fluent in C as well. OOP isn't a holy grail, btw -- it does make some things more convenient, but it can make some things more difficult as well. OOP is just a methodological tool -- you can write OO code in any language, including assembler.
The one thing you will find in doing OO programming is that more of your time is spent actually designing your object hierarchies and interactions, and less coding, at least compared to straight procedural programming. This is a good thing in that it forces you to really come up with a good design, because if you don't, you can end up with a real mess down the line.
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Mar 2001
Location: London
Status:
Offline
|
|
IMHO learning C++ is hinderance not a help as I keep trying to do C++ style code not Obj-C. Get a Objective C in 24 hours style book and start that's the best way. Knowledge of other languages is a advantage not a necessity.
Cocoa and the NEXT solution make it easy to code for programmers not average joe's off the street. That first step is always going to be hard. The point is once you know the language the API's have a lot of advantages and make coding faster and enable you to create more features in less time.
This is my understanding
Cheers Edd
|
|
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Oct 2001
Location: Baltimore, MD, US
Status:
Offline
|
|
Apple supplies some terrific documentation with their developer tools. If you have the dev tools installed, open the Developer Help Center docs in the help viewer (one way is to invoke help from finder, then click the question mark button in the lower-left of the window -- a link to Developer Help Center will be toward the bottom of the list). In the Developer Center, click on the "Cocoa" link, which will take you to a page on Cocoa programming resources (the same stuff is available on Apple's website, but if you have the dev tools, you already downloaded it, so you'll see stuff faster). In particular, the items under Getting Started are supposed to be pretty good. The PDF file "Object-Oriented Programming and the Objective-C Language" is supposed to be an excellent introduction to Objective C.
You do not need to know C++ to use Cocoa, and it's probably better if you avoid it, because C++ and Objective C have very different approaches to certain OO problems.
You can also write Cocoa apps in Java, if the mood strikes you; the Apple docs have resources for you on this.
Finally, if you have some familiarity with AppleScript, check out the AppleScript Studio docs. AppleScript lets you build very nice apps taking advantage of Cocoa features, but you don't actually have to know much Cocoa to get started. There are tutorials on this.
Bottom line is that if you have the dev tools, there's a wealth of high-quality documentation sitting on your hard disk, waiting for you to read it.
|
|
|
| |
|
|
|
 |
|
 |
|
Senior User
Join Date: Oct 2000
Location: Midwest
Status:
Offline
|
|
petej-
Great resource. Thank you for pointing to the path for this.
Craig
|
|
|
| |
|
|
|
 |
|
 |
|
Senior User
Join Date: Jan 2000
Location: Burlington, VT, USA
Status:
Offline
|
|
Originally posted by Kestral:
<STRONG>From what I understand, when the NeXT machines came out, their huge selling point was that it allowed regular people to easily develop applications for the platform. That was the advantage of object oriented programming.
So if it's so easy, then why am I finding it so difficult to learn to program? Supposedly I have to learn C to better understand Cocoa, so I've been plowing through "Learn C on the Macintosh" as well as "Learn C in 21 Days". I'm also doing some Cocoa tutorials using Interface Builder. As far as I see, the two things I'm doing have nothing in common and quite simply, I'm confused.
Then I read about books like "Cocoa Programming for Mac OS X" and "Learning Cocoa", but the books say you need to know C++ first, and in order to know C++, the best thing to do is to learn C, so I'm back at square one.
All I want to do is to learn how to do some programming, supposedly Cocoa is supposed to be easy, but if I have to learn all this complex stuff to get to the easy, then what's the point of it being easy at all? That's like saying one has to go through 4 years of college in an arts program before you can render a lens flare in Photoshop.
So could someone tell me straight up, no BS, how to learn to program Cocoa? If it's a book, I'll get it and go through it, if there's a huge web site tutorial, I'll go through it - but I'm finding this whole learn C to learn C++ and then go to Cocoa to be quite unwieldy. Surely there is a better way...?</STRONG>
learning to program isn't easy. I've been doing it for about 10 years, learning it is difficult. Object oriented programming is just a style, i don't think its easier to learn. I'd suggest learning fundamental concepts of C, arrays, memory allocation, structures, how functions generally work. i try not to focus on a specific language implementation, but concepts surrounding it. that's why many programmers (including myself) can learn java, assembly (blah) scheme (a varient of lisp) C, whatever. So, in a nutshell, i suppose you should learn the basics of C.
|
|
|
| |
|
|
|
 |
|
 |
|
Posting Junkie
Join Date: Dec 2000
Status:
Offline
|
|
Take it from someone who unsuccessfully tried to learn the Mac Toolbox many times before giving up. Cocoa is much easier to learn. It seems confusing at first, but once you keep at it for a while, it gets a lot easier once you understand it.
|
|
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Sep 2000
Location: Bay Area, CA, USA
Status:
Offline
|
|
Are you kidding? Apparently you weren't at WWDC where the #1 complaint from Mac developers above all (well.. not above the crappy perf in OS X) was DOCUMENTATION.
Or the lack thereof.
Originally posted by petej:
<STRONG>Apple supplies some terrific documentation with their developer tools. </STRONG>
|
|
|
| |
|
|
|
 |
|
 |
|
Senior User
Join Date: Mar 2001
Location: Toronto, Ontario, Canada
Status:
Offline
|
|
Originally posted by suthercd:
<STRONG>petej-
Great resource. Thank you for pointing to the path for this.
Craig</STRONG>
Wow, this is great, thanks to everyone for the great suggestions and words of encouragement. CharlesS, it sounds like you're having a lot of success learning Cocoa, are there any web based tutorials/links you would recommend?
|
|
|
| |
|
|
|
 |
|
 |
|
Senior User
Join Date: Dec 2000
Location: Manticore
Status:
Offline
|
|
I have the same problem. I've bought over 10 different books on C, ObjC, Cocoa, and all of them say I have to know something else to start. They're also rather confusing.
The only languages I've learned are REALbasic and AppleScript, and I'm working in AppleScript Studio now, which is nice, but I want to do some of the stuff that only Cocoa can do. So, I guess I'll try again...
|
|
|
| |
|
|
|
 |
|
 |
|
Senior User
Join Date: Mar 2001
Location: Toronto, Ontario, Canada
Status:
Offline
|
|
Originally posted by MacAgent:
<STRONG>I have the same problem. I've bought over 10 different books on C, ObjC, Cocoa, and all of them say I have to know something else to start. They're also rather confusing.  </STRONG>
No kidding!! It reminds me of the kind of tech support nightmare WinTel users must go through - their computer doesn't work, so they call Dell, Dell tells them it's ATi's problem, call ATi and they blame it on Microsoft, call Microsoft and they blame it on Creative Labs (maker of Soundblaster), call Creative Labs and blame it on Intel, call Intel... etc etc etc...
Will someone just give us the straight dope, pure and uncut? 
|
|
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Oct 2001
Location: Baltimore, MD, US
Status:
Offline
|
|
Originally posted by dtc:
<STRONG>Are you kidding? Apparently you weren't at WWDC where the #1 complaint from Mac developers above all (well.. not above the crappy perf in OS X) was DOCUMENTATION.
Or the lack thereof.
</STRONG>
Uh, WWDC was in May, dude. It's December. :-)
The newest release of the Dev Tolls had a big focus on docs, and a lot of the issues raised at WWDC are supposed to have been addressed. Take a look!
|
|
|
| |
|
|
|
 |
|
 |
|
Professional Poster
Join Date: Oct 2001
Location: London
Status:
Offline
|
|
great sites for learning cocoa: http://www.cocoadevcentral.com http://www.cocoadev.com - wikki web - (very interesting concept.) http://www.OReilly.com - mac section - learning cocoa (mike beam's column)
Aaron Hilegass's book (haven't actually received my copy yet but heard nothing but good reviews)
Cocoa is a far superior *method* of development compared to older methods (more time solving problems, less time trying to work out how to make the app actually function in a normal fashion.) - But it is just a way of working - you will still need to understand the underlying concepts, methodology and tools of computer science - just using it won't subconciously make you an amazing coder  There's hard thinking to be done if you want to code in any language!
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Mar 2001
Location: London
Status:
Offline
|
|
By Diggory Laycock
Aaron Hilegass's book (haven't actually received my copy yet but heard nothing but good reviews)
What book? An IBSN number or link would be nice.
Cheers Edd
|
|
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Jan 2001
Location: Sacramento, CA, US
Status:
Offline
|
|
Just to chip in my two cents... The key is to remember that Cocoa is a framework. That will be a learning experience in itself. Frameworks are collections of objects written for you to use so that you don't have to write them yourself, reinventing the wheel (I oversimplify, but life is short).
As another poster noted, many things can be done with just a few lines of code, because you will be calling objects written for you. It's very nice, once you get over the learning curve, which can be steep for rich frameworks (like Cocoa).
Regardless, I don't think there will be a single one-stop shop for learning what you want to. A single book might help, but I would break it into separate paths:
* Learning Objective-C. This is going to be your native tongue, so learn it and learn it well. Most (if not all) of the Cocoa framework is written in Objective-C, so there will be no time wasted here.
Most resources teaching Objective-C will also introduce you to object-oriented programming. And to use Cocoa and Objective-C, you will need to understand object-oriented programming. Some people take to it like ducks to water; others have a bit more trouble. Just remember that it's not rocket science, it's not voodoo, and it's not a silver bullet. I love OOP, but in solving many types of programming problems, it creates others. But then, reality is always messy
* Learning the Cocoa framework. This probably means working through an "Introduction to Cocoa"-type book and browsing through the Cocoa class documentation available from Apple. You will be excited and amazed at some of what is available ("Wow, cool!"), and, as a beginner, you may also be puzzled at some of the other classes available ("Why would I ever use that?").
Our programming group is just beginning to work with Apple's WebObjects 5.0. We are running into the same types of problems--bright programmers, but they are just learning Java (which is a must for programming in WO), Objective-C (since many native classes in WO are written in it), as well as learning the basics of web-based apps. In fact, the framework is suspiciously similar to Cocoa (many class names begin with "NS" = NextStep). No coincidence there.
Anyway, have fun and keep the faith. Learn to walk before you try to run. You'll be running quicker than you think.
Mark
|
|
TiBook 667MHz/512Mb/30Gb/DVD
Macs for work and play; Windows for...work and play. Oh. Never mind. Whatever.
|
| |
|
|
|
 |
|
 |
|
Admin Emeritus 
Join Date: Nov 2000
Location: New Yawk
Status:
Offline
|
|
Using Cocoa is not like AppleScript. It's not dead-easy, but it's easy in comparison to having to do some things in Carbon. Basically, InterfaceBuilder writes a bunch of the code for you, so you can assemble a good part of your app graphically. Whatever the app actually DOES still has to be written, though.
OOP isn't very simple, it's just that Cocoa and its tools make writing apps easier than the alternative.
Moving this thread to the Developer forum.
|
|
"Do not be too positive about things. You may be in error." (C. F. Lawlor, The Mixicologist)
|
| |
|
|
|
 |
|
 |
|
Professional Poster
Join Date: Oct 2001
Location: London
Status:
Offline
|
|
|
|
|
|
| |
|
|
|
 |
|
 |
|
Fresh-Faced Recruit
Join Date: Aug 2001
Location: Germany
Status:
Offline
|
|
In my opinion learning Cocoa is possible.
I used Borland Delphi and Visual Basic / MS Access and some other Languages (SQL etc.).
And I tried to develop my first Cocoa App 1 Week ago.
To get to know Interface Builder and how to get along with projectbuilder I followed the instructions from a german mac magazin which had a serie Developing Cocoa Apps.
My problem was that this magazine uses C Code and I wanted to learn Java. I then bought a Java Book (expecially for getting the syntax of Java and to get a summary of many Classes).
After that I could create my first apps (which some help in this forum ;.)).
After 1 Week (perhaps 20 hours) I created my first Cocoa Apps which displays many different informations (an export of a SQL Database) with Search and Printfunctions.
But I think developing with Cocoa could be easier when apple would give more examples (like printing etc.).
mark
|
|
|
| |
|
|
|
 |
|
 |
|
Fresh-Faced Recruit
Join Date: Sep 2001
Status:
Offline
|
|
Objective C syntax is based on Smalltalk, and it is a much cleaner OO language than C++, which is just one big hack and has a syntax straight from hell.
Apple wisely realised most people who have the choice are moving to Java, which is still very C/C++ like in syntax but much more like Smalltalk under the covers (extensive class libraries, bytecode, interpreted, etc). Since the Java runtime is embeded within OS X, you can happily develop, package and distribute for this platform. Java JIT compilers such as HotSpot deliver performance almost on a par with native C compilers.
I have been programming Java for 5 years now and don't ever want to go back to C/C++! However, I am new to the Mac, although I saw NextStep about 10 years ago, and will never forget my first demo of Interface Builder. Apple ships Java wrappers for the Cocoa classes, so you should be able to do most stuff from Java instead of Objective C.
There will be a degree of overlap between the Cocoa and the standard Java classes, and you will have to make a strategic choice as to which you use. I would be inclined to stick with the Java ones where possible, to make sure my product was portable onto other platforms (no, this doesn't only mean MS platforms, since Java now runs on PDAs and mobile phones). But use the Cocoa classes if they give you more of a Mac look and feel, and just package things sensibly to make any porting effort easier (Java interfaces are great for this).
Both Project Builder and Interface Builder support Java in the latest DevTools, there are other free IDEs out there such as Sun's Forte (get the Linux version, a copy of RPM from the GNUOSX site, and use the ignore arch and os options). Hopefully Borland will get their version of JBuilder for OS X out soon, PLEASE, since that's what I'm used to.
I'd encourage everybody to try Java on the Mac, what's there was good enough to persuade me to move to a better hardware/software platform.
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: Sep 2001
Location: the intarweb
Status:
Offline
|
|
i've got to agree with you. like yourself i got so frustrated when every site or manual on objective -C i went to told me to learn C first. it's like wanting to learn german ande being told to piss off and learn french first.
anyway, i worked through the cocoa tutorials which came with the dev tools and built my wotsits and wotnots without too much difficulty. [IB is a piece of piss to use] apart from not being able to get a grip on what the code i was painstakingly transcribing was doing.
so i've finally bitten the bullet and been working through "learn C on the macintosh" and surprise surprise C seems pretty easy. i do a bit of PHP/mySQL stuff and C and so far most of the C syntax i'm learning already seems familiar from PHP. so it looks like with PHP i had a rudimentary grasp of C all along, so how come obj-C still looks like gobbledygook to me? i think what i need is a big 2-column list with C on one side and obj-C on the other so i could get a handle on what the differences are, rather than this assumption that if you already know C you'll be able to work everything out for yourself.
|
|
|
| |
|
|
|
 |
|
 |
|
Mac Enthusiast
Join Date: Oct 2000
Status:
Offline
|
|
Originally posted by lagarto:
... C++, which is just one big hack and has a syntax straight from hell.
I heard that many times before. What's wrong with C++? I don't know it very well, I'm rather interested in low-level stuff.
|
|
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Oct 2001
Location: Baltimore, MD, US
Status:
Offline
|
|
C++ is a strongly typed language, which is great at compile-time, because it helps you spot errors that otherwise might not come up until later. This approach, however, makes it difficult to have code that generates objects of various types on-the-fly, in response to dynamic system conditions. Where C++ is weakest is in this "late binding" feature, because you have to provide ways of constructing and receiving objects ahead of time, which makes creating arbitrary combinations harder at run-time.
Objective-C, like Smalltalk (from which it borrows heavily), makes extensive use of late-binding, so it's much easier to recombine different types of objects at run-time without having planned ahead for such combinations. In fact, in Objective-C, it's possible to create a new object where you specify the class of the object as a string -- something that is not possible in C++ without having written a constructor at compile-time for such a thing.
C++ syntax is more complex than that of Objective-C, mostly because C++ provides mechanisms for declaring and checking types at compile-time. The simplicity of Objective-C makes learning the syntax an easier job, although it can be more difficult to create compile-time checks.
When people complain about C++ syntax, it's because it can be challenging to express a set of run-time constraints at compile-time, although the syntax allows expression of some constraints, but it's not necessarily obvious how to do so.
|
|
|
| |
|
|
|
 |
|
 |
|
Grizzled Veteran
Join Date: Sep 2000
Location: Springfield, MA
Status:
Offline
|
|
Originally posted by m a d r a:
<STRONG>like yourself i got so frustrated when every site or manual on objective -C i went to told me to learn C first. it's like wanting to learn german ande being told to piss off and learn french first.</STRONG>
It's more like an illiterate man wanting to read Shakespear. If you don't know the basics, how can you expect to master an advanced application of them?
That's what Cocoa is, it is a superset of c, that means they started with all the rules of c and build up on that. This is why it the sensible thing to learn c first.
Cocoa makes it relativly simple to write large apps in, but don't for a second think it's going to be trivial. Programming is hard, no way around that.
|
|
We hope your rules and wisdom choke you / Now we are one in everlasting peace
-- Radiohead, Exit Music (for a film)
|
| |
|
|
|
 |
|
 |
|
Forum Regular
Join Date: Oct 2000
Status:
Offline
|
|
I think this is why a degree in Computer Science is so useful. Learning programming on your own, while very doable, isn't for the majority of would-be programmers. Learning the same concepts as 100 other people at the same time, under deadline, under the same roof, makes you absorb things a lot quicker out of necessity. My suggestion would be to try to learn with someone who is physically around you. Being able to bounce ideas off a peer makes it more likely that you won't get discouraged, having to get through the tough concepts on your own. You end up reinventing the wheel at some point otherwise.
[ 12-28-2001: Message edited by: Chaaaosss ]
|
|
|
| |
|
|
|
 |
|
 |
|
Admin Emeritus 
Join Date: Nov 2000
Location: New Yawk
Status:
Offline
|
|
so it looks like with PHP i had a rudimentary grasp of C all along, so how come obj-C still looks like gobbledygook to me?
It's a different kind of programming. Object-oriented code is coded from an entirely different perspective, and as such, won't resemble Perl/PHP/C/whatever as closely. Perl and PHP borrow a lot of syntax from C (with their own unique additions and modifications, of course), so if you know either or both of them, you're well on your way to learning C.
OO is a different ballgame, though. It looks totally different because it *IS* totally different (in some sense).
|
|
"Do not be too positive about things. You may be in error." (C. F. Lawlor, The Mixicologist)
|
| |
|
|
|
 |
|
 |
|
Dedicated MacNNer
Join Date: Oct 2000
Location: Washington, DC
Status:
Offline
|
|
If I may chime in with my own opnions.
I started out with PHP, moved on to Java, then now am starting to look at some Cocoa programming.
To the original poster - I believe the question he was asking was "why is it so hard to learn how to program" - not really related to any specific language.
To that.. I totally understand. It took me many many false starts over a long time before everything finally fell together. I'd pick up some book, try working through, and it'd just look like total garbage. I'd give up and go back to graphic design. Then later on I discovered PHP, and started working with it.
The realization doesnt happen instantly. You dont really have a point where you go "aha! it all makes sense.." but it does all become clear pretty quickly at some point. I've seen some programmers refer to it as "getting over that hump". And at some point, you'll be starting to realize that you do have an idea of whats going on, and start to stretch out your legs.
My only suggestion is to just keep trying to learn it - tinker with the code, go over it again, work on what you dont understand and keep trying, and then eventually it'll all make sense.
I can imagine that it would be difficult and frustrating for a newbie to learn Obj-C. Because theyre trying to learn three concepts at the same time.
1. Programming concepts (flow control, loops, arrays, etc)
2. OOP concepts
3. The syntax and API's of Obj-C
Hence thats why people recommend learning C first. Because you take #2 and #3 out of the learning. You would need to learn some of C's syntax, but theyre essentially the same in Obj-C as well.
Note, I dont think you necessarily need to learn C through and out. A basic understanding of how to make your own C programs, and stuff like that should be sufficent enough for you to make the eventual switch over to Obj-C when you've gotten the understanding of programming concepts and syntax of C down pat, and only will need to accustomize yourself to learning OOP concepts.
Just my two cents.
-tim
|
|
|
| |
|
|
|
 |
|
 |
|
Grizzled Veteran
Join Date: Sep 2000
Location: Springfield, MA
Status:
Offline
|
|
Originally posted by Chaaaosss:
<STRONG>I think this is why a degree in Computer Science is so useful. Learning programming on your own, while very doable, isn't for the majority of would-be programmers. Learning the same concepts as 100 other people at the same time, under deadline, under the same roof, makes you absorb things a lot quicker out of necessity. My suggestion would be to try to learn with someone who is physically around you. Being able to bounce ideas off a peer makes it more likely that you won't get discouraged, having to get through the tough concepts on your own. You end up reinventing the wheel at some point otherwise.
[ 12-28-2001: Message edited by: Chaaaosss ]</STRONG>
I totally agree with all of that. Especially the part about being friends with other programers. Someone who you can bounce questions off of, get advice from, and who's eyes don't glaze over when you want to geek out is invaluable 
|
|
We hope your rules and wisdom choke you / Now we are one in everlasting peace
-- Radiohead, Exit Music (for a film)
|
| |
|
|
|
 |
|
 |
|
Mac Elite
Join Date: May 2001
Location: Up north
Status:
Offline
|
|
Well, learning to program in cocoa is easy, if you have already learned C, C++ and the basic ideas of how a program works, and how a computer actually thinks.
It is not easy to learn by just picking up a obj-c book.
During a summer I sat down with a learn c style book, and spent 2 weeks locked in my room learning C. I already knew many different basic languages.
Then for another 2 weeks I put tinfoil over my blind and moved my fidge into my room, and did not come out to shower or anything until I had learned C++. I was very white (I did not actually do that by the way, but I did spend 2 weeks locked in my room for both languages)
By the time I emerged I could sit down and write a command line neural net, or a html like language for a text based game.
So the point is, you have to pick a book, and sit down and work through it, even if it feels like garbage. In all the time one spends looking for something that is not garbage, and then starting from the beginning of that book and realizing it is garbage, and picking up another book to do the same thing, is the time that one could have got a firm grasp on the foundamentals of C.
I used "Learn C on the Macintosh" and "Learn C++ on the Macintosh". There might have been better books, but I choose those ones. I read a whole bunch of other books after those ones.
Now the hard part is making something that is not command line, so that means learning apples API's. Well, to say the least I still struggle with some of apples classic and carbon API's.
I think that OS X/Cocoa API's are much better...
So the point is, read through a c book, then I would got to C++ and then a book on Obj-C which is included in developer.
Learning to program is not easy, and it takes a long time to learn.
|
|
|
| |
|
|
|
 |
|
 |
|
Addicted to MacNN
Join Date: Mar 2000
Location: London, UK
Status:
Offline
|
|
Originally posted by m a d r a:
<STRONG>i've got to agree with you. like yourself i got so frustrated when every site or manual on objective -C i went to told me to learn C first. it's like wanting to learn german ande being told to piss off and learn french first.</STRONG>
Since when is German a superset of French with a few extensions?
|
|
|
| |
|
|
|
 |
 |
|
 |
|
|
|
|
|

|
|
 |
Forum Rules
|
 |
 |
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is Off
|
|
|
|
|
|
 |
 |
 |
 |
|
 |
|