Mailing Lists: Apple Mailing Lists
Image of Mac OS face in stamp
Re: Learning Xcode ???
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Learning Xcode ???

On Feb 1, 2006, at 12:48 AM, Christian Cruz wrote:

I have not background at all in programming, so I have some questions:

1.- Can I start learning Xcode from the scratch?

Of course. You can learn anything anywhere, if you're willing to work hard enough.

But one problem you've already run into: XCode is not a language. It's a tool that allows you to write code in a variety of languages. There are three levels here: the software tools, the language, and the program itself.

An analogy: you can use Pages to write novels in English. There are three levels here, too: the software tool (Pages), the language you're writing in (English), and the job itself (writing a novel). Moving from Pages to Word or Mellel means learning a few quirks of the software, but you're still writing a novel in English. And if you happen to be a polyglot, writing a novel in French is still writing a novel, and a lot of the problems of writing a novel -- plotting, pacing, characterization, internal consistency -- remain no matter what language you're working in. And some things are easier to express in some languages, because of the features of the language: you can't be easily ambiguous about the gender of a friend or a cousin in French, for instance, because of the way the language works, so if the plot of your detective novel depends on that, then you'll find yourself writing a lot of circumlocutions.

Learning to program and learning a specific programming language are very different things; they're often confused, because you need to learn at least one programming language in order to learn to program, and so the learning processes overlap. Learning to program involves things like breaking down problems into smaller steps, finding appropriate models for whatever it is you're trying to do, and tracking down mismatches between the real world and the model. Learning a programming language involves finding out how to represent the problem to the computer in a way that the computer can understand it. The difficult problems of programming persist across languages, though quirks and idiosyncrasies of some languages make some approaches better than others.

So the answer to your question: you can learn programming from scratch, and you can learn Objective-C and Cocoa from scratch, and you can learn XCode from scratch. You won't get instant gratification -- it takes knowledge and experience to become a competent programmer, let alone a good one -- but you certainly can start.

2.- Should I prefer something easier and "dummy proof" like RealBasic.

The hard part is the programming, and RealBasic won't save you from that. There are a lot of fiddly details of coding that RealBasic may save you from, though. If you're in it for the long haul, you'll probably find you're better off with Objective-C or C++ than with RealBasic, but if you're in it for the long haul you'll probably wind up picking up at least a half-dozen languages.

3.- Can anyone recommend me a good book to start a self teaching process.

If you want to understand programming really deeply, there are few better books than _The Structure and Interpretation of Computer Programs_. It's a college textbook, not really designed primarily for self-study, but if you work your way through it carefully and make sure you understand every point along the way, by the time you finish it you'll be ahead of 98% of the people with computer science degrees out there.

If you understand programming already, _Cocoa Programming for Mac OS X_ is an excellent introduction to Objective-C and Cocoa. It assumes you know how to program already, though, and it focuses on details specific to Objective-C and Cocoa.

Aside from that -- I recall _C: How to Program_ as being particularly good for beginners when I was tutoring C programmers, but that was a long time ago and later revisions may have altered it. (I have the second edition on my shelf; they're up to the fourth edition now.) Objective-C is a superset of C, so learning C well is not wasted effort; and a good basic programming book that walks you through the basic concepts in C is probably a very good place to start, whether you keep on using C or move on to Objective-C or C++ (or even Java) afterwards.

So I'd recommend starting with _C: How to Program_, following it with a mix of _The Structure and Interpretation of Computer Programs_ and _Cocoa Programming for Mac OS X_.

4.- It is possible to really learn Xcode without experience in
programming, the closest thing to a code that I've seen was watching
the Matrix movies.

That is sort of like asking "Is it possible to really learn Pages without experience in writing?" Sure, but since XCode is a tool to let you write programs, you'll learn to program, you'll learn a language, and you'll learn XCode. You can *start* learning XCode without much experience programming, but you won't get very far; just as you can learn about Pages without having much writing experience, but you'll learn more about it as you actually use it to write.

5.- I can write my own scripts using lingo, but I think that does not
count as real programming, I'm right?

Based on what I've seen of Lingo, it's certainly possible to use it as a general programming language, but it's a chore to do so. I suspect that what you've already written are most accurately described as first steps in programming. Whether that's "real programming" or not is pretty much irrelevant; they're *small* programs, first steps, and one of the big problems in programming is learning how to write big programs that don't collapse under the weight of their own complexity.


-- Charlton Wilbur email@hidden email@hidden

_______________________________________________ Do not post admin requests to the list. They will be ignored. Xcode-users mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden

Visit the Apple Store online or at retail locations.

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2011 Apple Inc. All rights reserved.