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 > Programming newbie asks "where to start?"

Programming newbie asks "where to start?"
Thread Tools
Fresh-Faced Recruit
Join Date: Feb 2001
Location: San Francisco, CA
Status: Offline
Reply With Quote
Mar 6, 2001, 07:47 PM
 
Hey all.

Let's assume you got a person that is pretty dang Mac-savvy from a User standpoint with the OS, hardware and software but knows zero about programming, except this of course:

10 Print "This is what I remember from 7th grade on a TRS-80"
20 goto 10

Gotta love that classic... but seriously, now I want to start to learn programming... with the idea that I would learn whatever I gotta learn to Program on the Mac, specifically, for OS X apps. IOW, where to I start and how do I proceed to learn to program for OS X.

Sorry if this is a bit basic, but I sure more then a few "enthusiasts" such as myself are curious and clueless at the same time. Maybe we can construct a sort of "course of study" in this thread.

Thanks much.

Herodotus
     
Professional Poster
Join Date: May 2000
Location: Urbandale, IA
Status: Offline
Reply With Quote
Mar 6, 2001, 07:50 PM
 
I think that'd be great! I know a little C++, and some Scheme (like *that's* useful, eh?), but that's about it from a programming standpoint. What do I need to know to make OS X apps (Cocoa, preferably)?
"Yields a falsehood when preceded by its quotation" yields a falsehood when preceded by its quotation.
     
Junior Member
Join Date: Feb 2001
Location: Maine, US
Status: Offline
Reply With Quote
Mar 6, 2001, 07:55 PM
 
Ditto! I've got the dev tools for PB right now, and have been through the tutorial, and know some basic C stuff, but if anyone has a resource online to begin programming with Cocoa (which is supposed to be amazingly easy and powerful ) online, or wanna point a few of us enthusiasts in the right direction, that'd be great!

-Theoden
     
Junior Member
Join Date: Sep 2000
Location: WA
Status: Offline
Reply With Quote
Mar 6, 2001, 07:58 PM
 
What about webobjects? According to Omni Groups web page they have no problem getting work programing that. Is webobjects hard to learn. What exactly is it?
Should a newbie just jump in to C and C++? I know a little bit of perl, shell scripting, apple script, and html. But I dont know any well enough to make money doing it. What should I focus on?
     
Admin Emeritus
Join Date: Nov 2000
Location: New Yawk
Status: Offline
Reply With Quote
Mar 6, 2001, 08:02 PM
 
Try this:

(1) Read the "Objective C and Cocoa" book from Apple. It's in the Developer documentation and is also available online (just search at developer.apple.com). This book assumes you know C.

(2) Download the CurrencyConverter PDF from developer.apple.com and work through it. It'll give you an idea of how to use PB/IB with Obj-C Cocoa apps.

(3) Weed through this.

They'll probably have much updated documentation once Final is released (they probably haven't been concentrating on the documentation as much since the big guys are using Carbon). Check back then.

That's probably a good way to start if you know some C.

And if you have questions you can always go to MacNN's OS X Developer forum, it's pretty good.

did this help?

------------------
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)
     
Junior Member
Join Date: Sep 2000
Location: WA
Status: Offline
Reply With Quote
Mar 6, 2001, 08:15 PM
 
What if you dont know C? Is there a good place to learn and can we learn on the mac?
     
Fresh-Faced Recruit
Join Date: Feb 2001
Location: rhinebeck, ny, us
Status: Offline
Reply With Quote
Mar 6, 2001, 08:16 PM
 
Programming in the Cocoa environment (including Web Objects) presuposes some knowlege of either Objective C or Java. C++ won't be directly applicable.

For good step thru on using project builder and interface builder, try Vermont Recipes over at Stepwise http://www.stepwise.com/Articles/Ver...pes/index.html

NeXTStep Programming by Garfinkel and Mahoney was a really good beginner to immediate level introduction to creating Objective C applications. Now its pretty far out of date, not sure if any good developer books will be coming out. There are one or two scheduled to be published that are listed on amazon right now.

Art

[This message has been edited by otter (edited 03-06-2001).]
     
Forum Regular
Join Date: Dec 2000
Status: Offline
Reply With Quote
Mar 6, 2001, 08:37 PM
 
The book "Object-Oriented Programming and the Objective-C Language" comes with the developer documentation in the file "ObjC.pdf" in /Developer/Documentation/Cocoa/ObjectiveC/. It's pretty good. You can also get it in paper form if you'd like.

I highly recommend starting in Java if you're a new programmer; the tutorial from Apple is really good. If you want to get your hands dirty and work with Objective-C (not recommended unless you have some C knowledge), the other tutorial is good, and the Vermont Recipes are extremely good.
     
Moderator
Join Date: Sep 2000
Location: Irvine, CA
Status: Offline
Reply With Quote
Mar 6, 2001, 08:37 PM
 
I would forget about C and concentrate on C++. C++ is a lot better for newbies and more powerful.
{{{ mindwaves }}}
     
Admin Emeritus
Join Date: Oct 2000
Location: Boston, MA
Status: Offline
Reply With Quote
Mar 6, 2001, 08:45 PM
 
As for me, I come from HyperCard. After HyperCard, I went straight to C (this was a while ago).

I learned a bit of Perl and various other languages along the way.

Then when it came time to use Objective-C and Cocoa, I found that my early experience with HC was perhaps more useful than any of the other language. Similar techniques apply.

But basically, learn C and learn it well. You'll need C regardless of what you choose to do. Many tutorials (OpenGL, Cocoa, etc) are written for the C crowd.

I was creating a from-scratch (i.e. knowledge of C) tutorial with the goal of creating an OpenGL app, but I've been somewhat busy and haven't been able to finish it. You might try the Vermont Recipes at stepwise.com instead, however these might be a little too step-by-step without explanation of Objective-C first.

After learning C well, you should look at a few Cocoa examples to get a feel for how it works (connection, outlets, messages, autoreleasing, and such). Objective-C is a pretty straightforward extension to C.

Move this over to dev, gorg. I *know* you want to try out these new mod powers :-)
"Against stupidity, the gods themselves contend in vain" (Schiller)
     
Admin Emeritus
Join Date: Nov 2000
Location: New Yawk
Status: Offline
Reply With Quote
Mar 6, 2001, 08:46 PM
 
Yes, this is definitely getting very dev oriented and gives me a good excuse

Moving to Mac OS X - Developer. Click through to find your thread.

(Booya! )

------------------
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)
     
Dedicated MacNNer
Join Date: Sep 2000
Location: Medford, MA
Status: Offline
Reply With Quote
Mar 7, 2001, 02:29 AM
 
I'm the director of development for a small software company. As someone who deals with a lot of programmers everyday, I can offer a tad of advice.

It is very hard to learn introductory programming concepts from just books. I highly recommend taking a class on introductory programming and data structures. A book may be able to teach you a specific language to the point where you know how to make the machine do what you want on a small scale. A class will teach you how to solve problems. This is eminently the hardest part of computer science. What language you use isn't super important.

In my career, I've discovered the hardest part of computer science is not learning a language, tool, or API, but rather deciding on a solid approach to the problem. One approach might seem easy at first, but prove to be a mess sometime in mid-development. My best employees are thinkers, not line soldiers.

Now that I've touted the merits of class, I'd like to make something clear. I'm all for introductory classes that teach you to think correctly. Once you learn that, most of the other classes can be replaced by books. So I'm not saying you need a bachelors in comp-sci to be a world class programmer, but 1 or 2 classes will really open up the world of programming to you.

If class isn't an option, as it often isn't, a copy of RealBasic and a good book on it will let you create simple apps without much investment.
     
Professional Poster
Join Date: Dec 2000
Location: Staffs, UK
Status: Offline
Reply With Quote
Mar 7, 2001, 03:40 AM
 
If you want to learn programming, you should first learn the concepts, not the syntax. This really means just coding programs and running them from the command line. Look for a language that doesn't get in the way of learning. A good example of this is Python - I think it's either included with Mac OS X or available for download from versiontracker.com.

Take a look at the O'Reilly web site for an article on there about using Python to learn programming. www.ora.com.

I disagree about learning from books - it can be done, but at some point you have to have a real project to work on. Try and think of something (not too ambitious) that you want to program, and then build it gradually. Each time you find you don't know how to do something, go back to the books and find out how to do it.
     
Mac Enthusiast
Join Date: Feb 2000
Location: Storrs,Connecticut, USA
Status: Offline
Reply With Quote
Mar 7, 2001, 05:59 AM
 
If you are too poor to take a class in C but still want to learn C on your own, I'd reccommend that you go to http://www.cm.cf.ac.uk/Dave/C/CE.html It helped me learn C. My best suggestion would be to buy a textboox, not one of those for dummies books but something like might be used in a class. The for dummies C book, in my opinion, is horrible but that site is a good place to start if you want to learn C.

To begin compiling C in OS X, download the developer tools and, in Project Builder, choose new C++ tool when you choose new project from the file menu. I'd suggest that you use printf instead of cout because there are problems with cout in OS X. They talk about printf in the web site that I mentioned so it's no problem. You can run the programs that you make from within project builder or from the command line.
     
Admin Emeritus
Join Date: Oct 2000
Location: Boston, MA
Status: Offline
Reply With Quote
Mar 7, 2001, 06:22 AM
 
Yeah, use the website Dalgo suggests. I also learned C from it.

It has a significant amount of UNIX information which you'll want to know anyways at some point or another.
"Against stupidity, the gods themselves contend in vain" (Schiller)
     
Junior Member
Join Date: Sep 2000
Location: WA
Status: Offline
Reply With Quote
Mar 7, 2001, 07:48 PM
 
Ok once we have some basic concepts and start building small apps then what? I know it will take some serious time but... If you dont have a BS in computer science with 2-4 years of comercial experience how do you bust in to the industry.

I am a technical support phone guy for a major software company. I work the late shift and my call volume is light so I know I will have 2-4 hours every day at work to learn. I realy need to fill this time with productive learning, not just reading endless bbs postings
     
Dedicated MacNNer
Join Date: Sep 2000
Location: Medford, MA
Status: Offline
Reply With Quote
Mar 7, 2001, 11:18 PM
 
I'd like to recommend some books...

The "Thinking in..." series by Bruce Eckel. These books are the best books on OOP I've found, and really help when learning C++ or Java. (Patience Hall)

The Thomas H. Corman book on Algorithms is the best book out there on the subject and has more detail than most people ever need. Supposedly there's a paperback version that's cheaper, but the one I have is about $60. (MIT Press)

"Writing Solid Code" by Steve MacGuire will help you out in ways you didn't expect. (M$ Press)

"Classical and Object-Oriented Software Engineering" by Stephen R. Schach is a book that helps when you get to larger projects. There's a lot of nice ideas in there.

The "MacOS X System Overview" by Apple is a good overview of the OS X feature set on a quite technical level. It doesn't go into APIs, but it will help you sift through the mess on Apple's dev site. For now you can only get it from fatbrain.com.

These are some of my favorite books. Also, it's good to get some kind of a pocket reference to whatever language you're using. Most of mine are dated so I won't recommend one. I can't recommend a good OS X development book either because most of them are coming out next month.

I hope that helps a little.

-PNB
     
Forum Regular
Join Date: Dec 2000
Location: Rehoboth Beach,DE USA
Status: Offline
Reply With Quote
Mar 8, 2001, 12:49 AM
 
Go to Apple's website,join ADC here http://connect.apple.com/cgi-bin/Web...QghMUynOp3/0.0 as an Online member (it's free) and download the Dev tools.A lot of documentation is included.There is also a page here that contains documentation here http://developer.apple.com/techpubs/macosx/macosx.html
One doc I recommend in particular which is easy to overlook is Discovering Openstep:A Developers Tutorial which is available here http://developer.apple.com/techpubs/...cy/legacy.html
It is a little out of date but it explains Cocoa programming concepts in detail;much of the information is not available anywhere else.
I also recommend going here http://www.omnigroup.com/community/d.../mailinglists/
and joining the MacOSX-dev mailing list.At the present time Cocoa documentation is somewhat incomplete but things will be coming together in the next few weeks as OSX is released.

[This message has been edited by Rick1138 (edited 03-08-2001).]
     
Junior Member
Join Date: Dec 2000
Location: Houston, TX, USA
Status: Offline
Reply With Quote
Mar 8, 2001, 11:35 AM
 
Practical C Programming from O'Reilly is an excellent book for learning C. Obj-C is a superset of C, so to use Obj-C, you need to know C. O'Reilly also has a book Practical C++ Programming, which i've not read, but looks like the same sort of thing as the C version, so i imagine its pretty damn good, as are all thigns from O'Reilly.
     
Junior Member
Join Date: Sep 2000
Location: WA
Status: Offline
Reply With Quote
Mar 8, 2001, 07:07 PM
 
The books do they expect you to have a windows system? I will have an os x box as soon as I get the os in my hands. Will I need anything else besides a good book and os x to start learning?
     
Dedicated MacNNer
Join Date: Sep 2000
Location: Medford, MA
Status: Offline
Reply With Quote
Mar 8, 2001, 10:59 PM
 
The books I recommended are platform agnostic. Well, the OS X book from Apple isn't. None of these books walk you through tutorials on specific platforms and tools like "Learn Visual C++ in 24 Hours!" I like books that introduce ideas. I find that tutorial books don't teach well. You can do exactly what the book says and never learn anything.

My advice is to pick a simple project that is personal to you (I stress simple). Choose a tool and a language and buy a book or read a website about that tool/language combo. RealBasic is a great way to get started and O'Reilly has a nice book about it. ProjectBuilder/Obj-C has a bit steeper learning curve. Anyway, once you know the tool ok, try to figure out what you need to do to make your app. Try to isolate things that you don't know how to do. Then teach yourself those things and try to make your project. I promise you'll learn a lot.

I'll give you an example: My junior year of high-school we had to make an educational game about some biology topic. Most people made board games; I wrote a simple GUI game about cellular reparation. It asked players questions and moved them closer to a goal when they got questions right. I even had a high score list. I got a B+. The game was great but I spend so much time programming that I didn't think of enough good questions. Alas...

The point is try to find something that interests you but is still real simple. I have to get back to drinking Jolt cola and doing this for a living now. ;-)
     
Fresh-Faced Recruit
Join Date: Mar 2001
Status: Offline
Reply With Quote
Mar 9, 2001, 04:06 AM
 
An excellent resource for Macintosh programming:
http://www.mactech.com/macintosh-c/

--sgtslaughter
---------------------------------
"I'll make ya' eat them words!"
     
Addicted to MacNN
Join Date: Mar 2001
Location: The Rockies
Status: Offline
Reply With Quote
Mar 10, 2001, 12:22 PM
 
A link from Apple that is probably a good place to start. Has links to many of the other sites that others have posted in this thread.

http://developer.apple.com/macos/intro.html
     
Junior Member
Join Date: Dec 2000
Location: Houston, TX, USA
Status: Offline
Reply With Quote
Mar 10, 2001, 11:35 PM
 
those O'Reilly books i mentioned up above are pretty UNIX-centric. I got Practical C Programming when i was working on a Linux project. You'd be set with OS X.
     
ppp
Junior Member
Join Date: May 2000
Status: Offline
Reply With Quote
Mar 11, 2001, 07:40 PM
 
How about the Ritchie (sp?) -Kerningham book, I think it's called the C programming language (ANSI version)?

I've started that, reading and doing the examples. After all, those two guys should know...

Btw., I'm also one of the newbies. Except that I've designed humongous databases in (stop laughing!) FileMaker Pro. Also know some AppleScript, have managed to do what I wanted.

I'm also studying Lotus Notes and LotusScript, and read the Obj-C manual from Apple. I think I'm beginning to grasp the ideas behind object-oriented programming.

What are my prospects? Btw., I'm an old fart (26). Gimme some encouragement!
     
Admin Emeritus
Join Date: Oct 2000
Location: Boston, MA
Status: Offline
Reply With Quote
Mar 11, 2001, 08:09 PM
 
If we're talking about books, I'd have to recommend the immortal W. Richard Stevens "Advanced Programming in the UNIX environment."

Despite what it sounds like, it's actually as easy to understand as other fun books, like Applied Cryptography! Just make sure you know C.
"Against stupidity, the gods themselves contend in vain" (Schiller)
     
Fresh-Faced Recruit
Join Date: Feb 2001
Location: Tokyo, Japan
Status: Offline
Reply With Quote
Mar 11, 2001, 08:16 PM
 
ppp, you want encouragement?

Go to http://www.stepwise.com/Articles/Ver...pes/index.html and scroll all the way down to the bottom. Read "About the author". Does that work for you?

BTW, the VermontRecipes tutorial is very good.
     
   
Thread Tools
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
Trackbacks are On
Pingbacks are On
Refbacks are On
Top
Privacy Policy
All times are GMT -5. The time now is 12:31 PM.
All contents of these forums © 1995-2011 MacNN. All rights reserved.
Branding + Design: www.gesamtbild.com
vBulletin v.3.8.7 © 2000-2011, Jelsoft Enterprises Ltd., Content Relevant URLs by vBSEO 3.3.2