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 to start to program - really good books?

How to start to program - really good books?
Thread Tools
HamSandwich
Guest
Status:
Reply With Quote
Feb 24, 2006, 05:49 AM
 
Hello everyone,
I'm about to start getting into programming. I had some Java lessons at school, so I thought I'd start off with that. So, are there any really good books to start out with Java? And is XCode ok even in the long run or would Eclipse (or something else?) be a better choice?
-- Or should I try to start getting going in C and later Objective-C?

Book recommendations and detailed opinions on this would be good. I'm keen to get going, but I don't really know how, yet.

Thanks in advance!

Steve
     
Dr.Michael
Registered User
Join Date: Oct 2003
Status: Offline
Reply With Quote
Feb 24, 2006, 08:51 AM
 
Originally Posted by SteveJobs
Hello everyone,
I'm about to start getting into programming. I had some Java lessons at school, so I thought I'd start off with that. So, are there any really good books to start out with Java? And is XCode ok even in the long run or would Eclipse (or something else?) be a better choice?
-- Or should I try to start getting going in C and later Objective-C?

Book recommendations and detailed opinions on this would be good. I'm keen to get going, but I don't really know how, yet.

Thanks in advance!

Steve
On a Mac Java is a little bit slow (although this might change with the intel switch due to change of big to little endian). But on linux or windows java is a very good choice. It has a very powerful api and a great ui library (swing).

If you are not married to a mac, I would highly recommend java. But don't get me wrong: I develop java on macs and it is very nice. Only execution performance is much better on other platforms (although its ok also on a mac). But if you plan to write number crunching applications java on mac is not the best.

If on the other hand you are sure that you will be mac only objective c is the best choice. It has the best support for the cocoa api which gives you quick and great programming results. But the code is not portable. Cocoa is mac only (except for Gnustep which is in early beta since ever).

A good book on java? The best I know is Bruce Eckels Thinking in Java. Available as a complete and free download. But also the best book I know. Try also java developers almanach. This has a lot of code examples that will help for many years to come.

XCode? Yes for objective c, no for java. I use BBedit and javac. Eclipse is also a good choice if you have a large screen (but only then).
     
Chuckit
Clinically Insane
Join Date: Oct 2001
Location: San Diego, CA, USA
Status: Offline
Reply With Quote
Feb 24, 2006, 11:05 AM
 
Xcode works as well if you don't want to spend upward of $200 to learn to program…
Chuck
___
"Instead of either 'multi-talented' or 'multitalented' use 'bisexual'."
     
Stradlater
Professional Poster
Join Date: Oct 2002
Location: Off the Tobakoff
Status: Offline
Reply With Quote
Feb 24, 2006, 11:14 AM
 
Originally Posted by SteveJobs
And is XCode ok even in the long run or would Eclipse (or something else?) be a better choice?
-- Or should I try to start getting going in C and later Objective-C?
All this depends on the route you want to take. It would make much more sense, of course, to "start to program" with XCode, which is free.

O'Reilly books have a good rep:
http://www.oreilly.com/store/
"You rise," he said, "like Aurora."
     
smitty825
Forum Regular
Join Date: Sep 2003
Location: San Diego
Status: Offline
Reply With Quote
Feb 27, 2006, 12:50 AM
 
If you're still in school, and future classes will be taught in Java, I would personally recommend sticking with Java...at least for awhile longer. IMHO, it is a real good idea to learn the tool well enough, so that during your class lessons, you spend the time learning the material being taught (such as data structures, etc) instead of learning the language at the same time.

At some point down the road it would be a good idea to learn C and C-ish topics such as Memory Managment & pointers, but it isn't that hard to learn once you get a programming base...
     
parallax
Admin Emeritus
Join Date: Oct 2000
Location: Boston, MA
Status: Offline
Reply With Quote
Feb 27, 2006, 08:48 PM
 
Steve, I'm coming from an academic standpoint. I'd say learn Scheme or LISP as a first language, because they are truly excellent, beautiful languages. After spending some time with those, learning new languages will come naturally as you will understand a lot.
"Against stupidity, the gods themselves contend in vain" (Schiller)
     
HamSandwich
Guest
Status:
Reply With Quote
Feb 28, 2006, 05:12 AM
 
Hey everyone,
thanks for all the answers. I'll specify my point of view by commenting on some of your remarks.

I am no longer attending any kind of school, so I don't get any Java lessons any longer. I just did get them and it would have definitely been a hilarious idea, back then, to learn Programming at home and data structures and everything else at school... But so, this is no longer an option.
Then, I found that I still have the "Learning Cocoa" book by O'Reilly lying around here. I tried that a few years ago, but my English was too bad and I was not keen enough about programming back then, so I thought I'll try again.

If I got all of you right, the important thing is to start at all and get a basis on which I can build. I'll dig into Objective-C and Cocoa for now and report on what I think about it, so we might then continue to discuss - I think that would be helpful for me.

As for the last comment by parallax: I know Lisp from hearsay and am curious about it - but how good is it as a starting point, are there any compilers for the Mac for Lisp and is it more difficult to learn, say, Objective-C and Cocoa programming now and switch to Lisp later instead of the other way round?

Greetings,
Steve
     
phoenix78
Dedicated MacNNer
Join Date: Mar 2005
Status: Offline
Reply With Quote
Mar 15, 2006, 09:14 AM
 
a few weeks have passed since the last post but i will still post for what it is worth...

what language you want to learn depends on what you want to acheive. why do you want to learn programming? with anything a person does in life there needs to be a motive for doing it or else it will be wasted time and possibly wont work out anyway.

if it is just for mathematics and number crunching then fortran or C would be nice... but if it is for basic programs then java would be the best because of the free online documentation and free development tools. For games you would mostly want C++.

just use a basic text editor for coding... other development tools are such a headache and annoying and useless IMHO lol.

As a starter i would go get any nice and thick 'fundamentals of comp sci' book that will teach you ALL the constructs (basic and complex) in comp sci and you might learn those through a language used in the book... but the theory is much more important than the language you use.

it is amazing how the concepts in comp sci are simply everywhere in our daily lives... like sorting your filing cabinet or using a notice board (you can understand the concept of 'pointers' by using a notice board analogy lol...)

enjoy yourself

regards,
robM
     
HamSandwich
Guest
Status:
Reply With Quote
Mar 15, 2006, 04:49 PM
 
Originally Posted by phoenix78
what language you want to learn depends on what you want to acheive. why do you want to learn programming? with anything a person does in life there needs to be a motive for doing it or else it will be wasted time and possibly wont work out anyway.

if it is just for mathematics and number crunching then fortran or C would be nice... but if it is for basic programs then java would be the best because of the free online documentation and free development tools. For games you would mostly want C++.

just use a basic text editor for coding... other development tools are such a headache and annoying and useless IMHO lol.

As a starter i would go get any nice and thick 'fundamentals of comp sci' book that will teach you ALL the constructs (basic and complex) in comp sci and you might learn those through a language used in the book... but the theory is much more important than the language you use.

it is amazing how the concepts in comp sci are simply everywhere in our daily lives... like sorting your filing cabinet or using a notice board (you can understand the concept of 'pointers' by using a notice board analogy lol...)
Thanks for the answer! No decision has been made as of yet (no time currently, but the necessity to learn program is still right ahead of me).

New questions: What "fundamentals of comp sci" book would you recommend? I once bought Andrew Tanenbaum's "Computer architecture" and it's still in my book shelf - do you mean something like this? Or a different one?

Other than this, which compiler should I use in order to get into Java? I'm completely unknowing currently...

Any help is greatly welcomed!

Greetings,
Steve
     
Dr.Michael
Registered User
Join Date: Oct 2003
Status: Offline
Reply With Quote
Mar 16, 2006, 05:52 AM
 
Originally Posted by SteveJobs
Other than this, which compiler should I use in order to get into Java?
java sdk comes with javac. This is a good one. There is also jikes from ibm and the ibm virtual machine. Also good (often faster). But for a start javac does a great job.
     
phoenix78
Dedicated MacNNer
Join Date: Mar 2005
Status: Offline
Reply With Quote
Mar 16, 2006, 08:00 AM
 
yeah java is a good place to start.. it comes built into the OS? or do you have to install the developer packages yourself from the OS cd/dvd? lol.. i cant remember it has been ages since i did it.


as far as a book goes... it seems that if stevejobs isnt the book reading type then just browsing the web for notes is a better way to learn some fundamentals until you get into it enough to warrant buyinga book. it isnt nice to spend lots of money for something to collect dust on a shelf or the floor lol... there are many universities that for some reason have lecture slides available for download... nice source for free information . the topic for learning the fundamental constructs is "data structures and algorithms"... doing a search on this topic will get you in the right direction. Also... learning some assembly language is a good thing to get into also... it isnt too hard and it is part of the basics for understanding how a computer works and then you will be able to make use of that book 'computer architecture'.

cheers,
robM
     
Thinine
Mac Elite
Join Date: Jul 2002
Status: Offline
Reply With Quote
Mar 16, 2006, 08:25 AM
 
Cocoa/Objective-C. There's really no other option for great OS X apps. Sure, Java is popular, but you don't need to learn it as a first language. It's really something you learn later, when you need it for school or a job.
     
jamil5454
Mac Elite
Join Date: Oct 2004
Location: Downtown Austin, TX
Status: Offline
Reply With Quote
Mar 18, 2006, 08:34 PM
 
I've found the best way to learn a language and its API is to sit down and give yourself goals/projects to do. For example, work on writing a simple calculator or a really simple 2D game. Of course you'll have to read a book or two to get familiar with the syntax but you won't really understand a language until you do lots of programming with it.
     
parallax
Admin Emeritus
Join Date: Oct 2000
Location: Boston, MA
Status: Offline
Reply With Quote
Mar 19, 2006, 01:15 PM
 
SteveJobs,

If you want to write applications for Mac OS X, Objective-C/Cocoa is definitely a great place to start. However, I suggest that you take daily supplements of learning LISP. If you can program in LISP and understand why it is a wonderful language, then it will be of enormous benefit to your C programming.

Learning Objective-C is something that's relatively easy to do. Learning to program properly is something that takes years! Learning a language with high theoretical value like LISP will help you do that.

This is a wonderful textbook http://mitpress.mit.edu/sicp/ and is used as the introductory computer science textbook at MIT. Scheme is a dialect of LISP, also developed at MIT. It focuses on the core features of the LISP language and is a little more minimal.

MIT Scheme is unfortunately not available for the mac (as of yet), as it contains a native x86 compiler that hasn't been ported. I believe getting MIT Scheme to work on Intel macs will not be so difficult (says Chris Hanson). However, DrScheme, scheme48, and I'm sure a bunch of other languages are available. The differences between these are not anything to worry about.

HTH
"Against stupidity, the gods themselves contend in vain" (Schiller)
     
Chuckit
Clinically Insane
Join Date: Oct 2001
Location: San Diego, CA, USA
Status: Offline
Reply With Quote
Mar 19, 2006, 02:03 PM
 
How does learning LISP make you a better programmer than learning Python or Smalltalk?
Chuck
___
"Instead of either 'multi-talented' or 'multitalented' use 'bisexual'."
     
   
 
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 02:04 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.,