LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices



Reply
 
Search this Thread
Old 05-30-2006, 02:06 AM   #1
ArthurHuang
Member
 
Registered: Jan 2006
Posts: 174

Rep: Reputation: 30
Please recommend Java learning books


I am totally new to java , please recommend one classic book to learn.

Thanks!
 
Old 05-30-2006, 02:15 AM   #2
nadroj
Senior Member
 
Registered: Jan 2005
Location: Canada
Distribution: ubuntu
Posts: 2,539

Rep: Reputation: 59
the javadocs and tutorials on Sun's site are excellent
 
Old 05-30-2006, 03:14 AM   #3
jayn16
LQ Newbie
 
Registered: May 2006
Location: Pune, India
Distribution: Slackware 10.2
Posts: 15

Rep: Reputation: 0
Java books

Try Thinking in Java by Bruce Eckel.
The e-book is available at www.bruceeckel.com
Also "The Complete Reference" for Java is good but u should have some programming experience before using it.

Last edited by jayn16; 05-30-2006 at 03:51 AM.
 
Old 05-30-2006, 03:17 AM   #4
paulsm4
Guru
 
Registered: Mar 2004
Distribution: SusE 8.2
Posts: 5,863
Blog Entries: 1

Rep: Reputation: Disabled
The Sun web site is an excellent suggestion.

Here are a few other references I've found useful:

http://www.linuxquestions.org/questi...44#post2142544

And here's a site not unlike LQ where you'll find a lot of helpful, knowledgeable people and a lot of good information:

http://www.javaranch.com

'Hope that helps .. PSM
 
Old 05-30-2006, 03:20 AM   #5
yull
Member
 
Registered: Dec 2004
Location: Belgium
Distribution: debian
Posts: 48

Rep: Reputation: 15
learing to java core language can be done in a few days, and a few days more to apprehend to object oriented programming, if you're new to that too.

after that, you'll have to learn the frameworks, the design patterns, etc.
and that part can be much more complex.

what is it that you have to do?
 
Old 05-30-2006, 04:35 PM   #6
ArthurHuang
Member
 
Registered: Jan 2006
Posts: 174

Original Poster
Rep: Reputation: 30
Thanks a lot.

To yull: First of all, i'd better know the first two parts.
 
Old 05-31-2006, 05:55 AM   #7
titanium_geek
Senior Member
 
Registered: May 2002
Location: Melbourne Australia
Distribution: it died/ macosx
Posts: 2,478

Rep: Reputation: 50
Nothing beats a university lecturer I've decided. That is the best way to learn java and I'm so glad I've gone this route. However, I know that other's aren't there yet, or too far past etc.

Absolute Java by Savitch
does have a few MINOR flaws, but yeah. well paced. You start doing cool stuff without getting overwhelmed/frustrated.

also was recommended for those struggling to keep up with the course is:
for Engineers by Sanchez and Canton - this one is cool because you can read it online for free. Really simple "crash course" in java.

My professor says that he has looked at a lot of "learn java" books, and these are the ones he considers the best.

---
Sun's tutorials! they are an excellent resource. Absolutely brilliant.

Google is great for checking out stuff as well- particularly debugging. and of course this forum...

titanium_geek
 
Old 05-31-2006, 11:11 AM   #8
Randux
Senior Member
 
Registered: Feb 2006
Location: Siberia
Distribution: Slackware & Slamd64. What else is there?
Posts: 1,705

Rep: Reputation: 54
It would be even better not to learn Java
 
Old 05-31-2006, 01:54 PM   #9
yull
Member
 
Registered: Dec 2004
Location: Belgium
Distribution: debian
Posts: 48

Rep: Reputation: 15
Quote:
Originally Posted by Randux
It would be even better not to learn Java
what do you have in mind? C++? bash programing maybe
 
Old 05-31-2006, 02:03 PM   #10
nadroj
Senior Member
 
Registered: Jan 2005
Location: Canada
Distribution: ubuntu
Posts: 2,539

Rep: Reputation: 59
its all personal preference--i think his comment was because hes not a huge fan of java, right?
the way i started was with Visual Basic 6, now theres VB 7 (.net). vb is very very easy to learn and it gives you a good brief intro. i then went to java, then c++, and im glad i did it that way.
its all up to you, pick anything you want to start with, and go for it! my opinion is c++ is a more difficult first language.
 
Old 05-31-2006, 02:15 PM   #11
Randux
Senior Member
 
Registered: Feb 2006
Location: Siberia
Distribution: Slackware & Slamd64. What else is there?
Posts: 1,705

Rep: Reputation: 54
Quote:
Originally Posted by yull
what do you have in mind? C++? bash programing maybe
I think Java is pretty worthless even though it's easy to create big applications without too much effort. I was really making a joke because you can't tell someone what to learn or what not to learn unless they really want advice.

Yes, C++ would be much better, in my opinion, than Java. Java has terrible baggage and the performance is pathetic. I hear that you can get C++ compilers for almost any platform that generate pretty good code. But C++ is hard to learn if you don't already have programming experience, so maybe C is the best start. It is certainly the best place to start if you are running UNIX-like OS. Anyone who is working with UNIX should also learn enough shell scripting to make his life happy

Last edited by Randux; 05-31-2006 at 02:16 PM.
 
Old 05-31-2006, 02:45 PM   #12
indienick
Senior Member
 
Registered: Dec 2005
Location: London, ON, Canada
Distribution: Arch, Ubuntu, Slackware, OpenBSD, FreeBSD
Posts: 1,853

Rep: Reputation: 65
I'm going to have to agree with Randux on this...Java isn't that great of a language. It's too bad I spent as much time as I did learning the language only to rarely use it. If I can persuade you otherwise, I recommend using Gambas (VB-style BASIC ported to Linux). BASIC is a sweet language - fast to program in, fast to execute (processing times are right up there with compiled C/C++ apps). Java, on not-so-sweet systems runs like a two-legged dog, because it has to go through this wierd thing Sun calls the "Java Virtual Machine" - it's just a fancy name for an interpreter, and not a very good interpreter at that, either. If you decide to learn a compiled language, learn BASIC (the neat thing about BASIC, is that it can be both interpreted and compiled!) C, and/or C++.

If you're going to learn it, spend the money, and get the O'Reilly Java In A Nutshell. It has all the Java API references you'll need if you're doing programming that does not involve big, fancy windows and buttons and stuff. It's almost essential to have, but it doesn't cover the javax.swing, or the java.awt classes (both are used for graphical displays).

If you're planning on using Java for performing editing tasks (parsing files, manipulating text), you might as well shoot yourself in the foot. Yeah, there might be a good API written for it, but text manipulation is SO much easier with Perl (BASIC has pretty good text manipulation tools, too).

So, my final word is, if you need to learn Java, get an O'Reilly book or two, if you want to learn it for personal use, I suggest you dismiss Java, and pick a different language to learn.

EDIT: Java is nice for portability, but nothing else: if you're sticking to POSIX-system (UNIX, Linux, BSD, etc.) programming, get comfy with Perl, C & C++, BASH scripting, and perhaps even Python.

...oh, and BASIC...don't forget about BASIC. =)

Last edited by indienick; 05-31-2006 at 02:48 PM.
 
Old 06-01-2006, 04:20 AM   #13
Randux
Senior Member
 
Registered: Feb 2006
Location: Siberia
Distribution: Slackware & Slamd64. What else is there?
Posts: 1,705

Rep: Reputation: 54
Indienick I was also thinking about Python, now that you mention it I guess I will say something.

I guess as much as I agree with you that BASIC is really (was really) a good starter language (I think it was the first one I learned) it's just too platform dependent to be useful nowadays. There are too many versions with too many weird flavors to make it something you can carry with you.

And that brings us to Python...I think Python is the BASIC of the 2000s on steroids. Python has many good characteristics, you can write simple or complicated programs, you can do object-oriented design, and the documentation is amazing. It's a scripting language that looks and acts like a compiled language. It has rich libraries, it has good enough performance for most tasks, and it's interpreted and has a nice interactive mode for people to try statements and get feedback immediately, sortof like the old BASIC did (if I can remember).

Why would we say Python is good when it's interpreted, and Java is bad for the same reasons? It's mostly the way these are positioned and used. Python was never supposed to be an Enterprise solution. It's supposed to be a versatile scripting and prototyping environment, and it really is. Java is positioned as "THE ANSWER" to enterprise application development and claims good performance, but it's a mess and I think it wasted a lot of peoples time. I won't even run Java on my machines. Java seems to want everyone to believe it's a language (it's not) and that it frees programmers from typical errors (it may to some degree). I say if you can't code so you manage resources properly, you shouldn't be coding. If you create memory leaks, if you overrun your buffers, you shouldn't be coding. All that protection that Java provides comes at a significant cost of performance overhead and making developers insensitive to the realities of programming. Java has created a lot of poor coders who will not be able to survive in an environment that doesn't coddle them. It really dumbs down the development world.

People think stuff like OO and garbage collection were dreamed up by Java developers, but these concepts were implemented more than thirty years ago. There's nothing new in Java. Basically Java is just a big fat ripoff of a lot of good ideas but implemented in just an average way. And people who are just Java coders and don't know anything else are going to be in for some nasty surprises when the bubble bursts. And it will.

Don't flame me, flame Java

We let this thread degenerate into a Java-bashing, but I am personally happy that it came out that way

Since I didn't ever answer the OP's question (but he didn't ever come back so........) this is supposed to be a good book and it's free, so if you don't like it you didn't lose something.

http://www.mindviewinc.com/

Last edited by Randux; 06-01-2006 at 04:36 AM.
 
Old 06-01-2006, 09:50 AM   #14
titanium_geek
Senior Member
 
Registered: May 2002
Location: Melbourne Australia
Distribution: it died/ macosx
Posts: 2,478

Rep: Reputation: 50
what's with the java bashing?

It does have it's place in the world- we won't mention the hopelessness you feel when you have to compile a C program... and don't have the dependencies, download, extract, attempt to compile... *of course package managers fixed a lot of this* but C/C++ or any language for that matter isn't worth it.

Java is the language being taught now, I'm afraid. Something about ease of programming without losing the cool stuff you can do with it and cross-platformability. (AP computer science...)

So it's not the language people hoped it would be- but no language can be perfect. Why does Java encourage so much venom? This is a Java thread, for crying out loud. Java is better than Visual Basic (shudder).

Why when people ask for java books people jump in and suggest that they shouldn't be doing java at all?!? Do you see that in C++ book threads?

Ok. I'm done. Off my soapbox. Just, please, respect us Java programmers- we aren't dummies. Let someone ask for java books without having their language assaulted.

titanium_geek
 
Old 06-01-2006, 10:16 AM   #15
Mega Man X
Guru
 
Registered: Apr 2003
Location: ~
Distribution: Ubuntu, FreeBSD, Solaris, DSL
Posts: 5,339

Rep: Reputation: 63
I would recommend Daniel Liang's books:

http://cs.armstrong.edu/liang/

I've the fifth Edition myself and it is the most complete Java book I ever read. As a good complement, Head First Java is good... but I would not recommend Head First Java as the only book. It has far too many images (which helps you to memorize stuff) and it does not go as deep into Java as the other books around.

And those bashing Java... well... we have already one of those threads going:

http://www.linuxquestions.org/questi...d.php?t=414812

Since we are at it though... I would not recommend you to learn C at all. It is way to arcane, easy to make mistakes while coding and besides Linux nuts and kernel nerds, very few care to learn it today. And Python is pretty much a toy (from Enterprises point of view) and IMHO... overrated, just like MacOSX and Sony Playstation (pun intended)

Last edited by Mega Man X; 06-01-2006 at 10:18 AM.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting 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 Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Books for learning Solaris 9/10 basketkase999 Solaris / OpenSolaris 2 07-16-2005 07:28 AM
Recommend a few Newbie Books schteelhead Slackware 10 08-31-2004 10:26 PM
Can anyone recommend C and C++ books for linux??? CruelEssence Linux - Newbie 4 02-07-2004 09:27 PM
Can you recommend books on the following topics: vous Linux - Networking 1 03-13-2003 08:25 PM
Which books do you recommend ? rhodan Linux - Newbie 5 08-28-2001 05:24 AM


All times are GMT -5. The time now is 12:22 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration