ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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.
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...
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.
Distribution: Slackware & Slamd64. What else is there?
Posts: 1,705
Rep:
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
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.
Distribution: Slackware & Slamd64. What else is there?
Posts: 1,705
Rep:
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.
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.
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:
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 09:18 AM.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.