In that vein, my first contribution starts a series of articles designed to teach the basics of software programming to students and interested users. This means an overview of the process, as well as simple tutorials that will help you start coding quickly. While I don't have the time to teach a large number of people the equivalent to years of education and experience, I can use these articles to point you in the right direction for getting development tools, references, and of course, help.
For this general introduction, I'll describe some of the fundamental tools and reference books that you should consider purchasing, as well as useful and free online resources.
The Big Three
Metrowerks CodeWarrior C/C++ is available for both commercial use ($399) or for academic use ($119, with student ID). The only difference between is the license -- the academic version can only be used to create free or shareware products. The CodeWarrior CDs include compilers, sample source code, and various electronic programming tutorials and references. CodeWarrior has quickly become the development environment of choice.
Symantec C++ for the Power Macintosh has fallen behind the competition a bit, although it contains many of the features of CodeWarrior and is still used widely. It was previously called "THINK C"
Apple's MPW is one of the early tools for development on the Macintosh, and provides a command-line interface and extensible tools to automate various tasks. MPW is available from Apple as part of ETO (Essential Tools and Objects), but it also comes bundled with the CodeWarrior and Symantec packages.
http://www.mstay.com/products/vc20_ab1.htmlFinally, if you can't afford to purchase any of the packages listed above, you might consider purchasing an older version from another user who no longer is using it. For example, the Metrowerks CodeWarrior subscription provides the buyer with 2 free renewals. After the subscription expires, the user may either update the subscription at a discount -- unless there have been intermediate releases, in which case the user must purchase a completely new subscription.
If a user purchases a new subscription, and does NOT upgrade an existing one, he can sell (or give) the older version and its license to another user. In this way, a user may be able to get an older but still usable version of CodeWarrior for relatively little investment. NOTE: The buyer should validate that the license has in fact been transferred to himself. Also, Metrowerks will not upgrade older versions of CodeWarrior at a discount -- if you plan on upgrading, you must purchase a completely new license. (You should contact Metrowerks directly if you have any questions regarding these issues.)
Tutorials and Reference
The first place you should look for more information is at the bookstore. There are several very good tutorials and reference books to gradually introduce users to both programming and the Macintosh.
"Learn C on the Macintosh: Volume 1" -- Dave MarkUsers will also find reference books handy, for looking up specific information beyond the scope of the tutorial. The primary reference set for Macintosh Programming is the "Inside Macintosh" collection published by Addison-Wesley. There are also references for specific programming languages:
"Foundations of Mac Programming" -- Dan Parks Sydow
"Inside Macintosh: Overview"After gaining a bit of experience, users will want to experiment with new projects and explore various areas of Macintosh Programming.
"Inside Macintosh: Memory"
"Inside Macintosh: Macintosh Toolbox Essentials"
"The C Programming Language, 2nd Edition" -- Kernigan, Ritchie
"Learn C on the Macintosh: Volume 2" -- Dave MarkAs stated before, Metrowerks CodeWarrior comes with several online books and references. Be sure to look through the CDs for lots of hidden information. Apple references and technotes are available on CD and online at the Apple Web site. MacTech magazine sells THINK Reference, an online database of MacOS functions and sample code. Finally, Peter Lewis offers a lightweight shareware package called ObiWan which is useful as a MacOS function reference.
"(MacWorld) Ultimate Mac Programming" -- Dave Mark
"Tricks of the Mac Game Programming Gurus" -- Dugan, McCornack, Ragnemalm
"Black Art Of Mac Game Programming" -- Kevin Tieskoetter
The first thing I would recommend when you have questions or problems is to browse the UseNet Frequently Asked Questions (FAQ) lists. They are written as question/answer pairs for the most common issues programmers face.
ftp://mirrors.aol.com/pub/info-mac/per/csmp/Next, users can get reasonably fast responses to their questions using the UseNet bulletin boards. Another place for getting help is using the IRC chat network (requires ircle or similar software).
http://devworld.apple.com/community/usenet.htmlFinally, Apple maintains several mailing lists that are dedicated to specific technologies (QuickTime, OpenDoc) or to other developer issues.
ftp://ftp.ircle.com/pub/ -- IRC channel #macdev
http://www.devworld.apple.com/dev/sdk.htmlThere are also a number of good sites devoted to many aspects of Macintosh programming. They contain great information, sample code, and pointers to other valuable sites.
In my opinion Ambrosia doesn't just make cool games, we make computers fun and easy to use. These articles are just another way that I can help you master your macintosh.
Matt Slot, Bitwise Operator
Ed Note -- So far, Matt's been handling the Rochester weather just fine. Being from Michigan, he's pretty used to it. He is finding that we have some bonehead drivers here. Don't people know is gets slippery when there's snow on the ground? It's defensive driving in its greatest capacity here in Rochester. Beware Matt!