Web Development

General discussion


New to Java ...best advice?

By netforce ·
I have over 2 years of IT Desktop/lan/Network Admin support and over 4 years of general pc/desktop/laptop hardware/soft. support I have decided to take up a programming language.

I'm going to pursue Java. And I'm very open about it as of now I don't have a preferrence; web,servlet, apps etc. I don't even know where to begin!

I have downloaded NetBeans that has the Java J2SE
5.0 integrated with it.

My question is obviousely where do I as a newbie to programming start with Java? Can anyone recommend a good starter book?
What field or area in Java would be the most beneficial in terms of yielding a job?

I'm not saying I'm going to get a job of the top but I need the basics first.

I also may be going to Japan soon and know that Java is hot over there big time since it's intergrated so well into almost everything ie Desktops/servers, cell phones, PDA's, etc.

Your help is extremely appreciated.

This conversation is currently closed to new comments.

Thread display: Collapse - | Expand +

All Comments

Collapse -

More info please

by CharlieSpencer In reply to New to Java ...best advic ...

Do you have any previous programming experience? If so, what languages?

If this is your first language, you should be interested in the basic techniques that are used in all programming (use of variables, opening objects, prompting for responses, retreiving data, updating records, displaying messages, formatting output, closing objects, cleaning up, etc). You can usually find discounted books for most languages at the big chain bookstores. These are marked down because they cover previous versions of a language, but they can serve as a starting place for a beginning programmer. Most of these include a CD with a compiler or equivalent, and code examples.

Collapse -

re embedded devices.....

by Jaqui In reply to New to Java ...best advic ...

60% of the cell phones are now using linux and c / c++ for the devices, not the old java app route.
the linux kernel gives a better performance as do c and c++.

Palmetto is right,
learning the basics of programming itself will serve better than just learning the language.

here we have a discount computer book store. ( half price computer books ) if you have something like that where you are I would recommend going there and picking up a basic book on java, one designed for people with no programming knowledge.
then it will have a good core of programming basics included.

a point to concider when picking a language to write any code in:
os independant = interpreted = slow
( java, perl, vb, python )

os specific = not portable = vb = vc++

compiled languages will always give better performance, but they add a level of complexity if you need to have cross platform capability.
( c, c++, pascal, delphi, cobol, fortran, assembler )
cross platform has 2 solutions:
1) pick a widget set that supports all platforms
2) use a web app design, where it is through a webserver. [ most commonly an interpreted language ]

Collapse -


by JRod86 In reply to re embedded devices.....

Now I understand that I haven't looked at Java in a year, but at that time you could download api's for almost every major cellphone manufacturer (Motorolla, Blackberry/RIM being the ones I dabbled with), so why are you touting Linux when the app server can still be Java??

Anyway, last half of your comments I agree with entirely. It is most beneficial to pick a language that is platform independent and the larger the application the more evident it's "slowness" will be if programmed in Java/Perl (VB isn't compiled??wtf?).

Collapse -

Java would be a terrible language to

by Tony Hopkinson In reply to New to Java ...best advic ...

start learning how to program in in my opinion. It obscures all the basics. It's a bells and whistles language. C or Pascal to learn the basics then an OO environment. Seeing as Java is C/C++ based may be that would be a better start. Learn how to program first, then learn the fundamentals of OO with Java if you insist, though it would not be my default choice.
Note once you learn how to program, picking up a language is easy because you have the concepts to map the syntax to.

Collapse -

by netforce In reply to Java would be a terrible ...

I've also heard that Windows ME was programmed and compiled completely in Java.

No wonder it sucked. As I know Java is not for an intensive program like that but more for special apps, and small games.

thanks all for the advice.

Collapse -

Start programming with a Pascal-derived language

by AWolfe_II In reply to Java would be a terrible ...

The syntax of Java, C, C++ and all is a bit nasty -- not only do
you have the unreadable braces and such, you also have the
subtleties around if/then/else.

The problem is that an extra or missing brace can totally change
long stretches of code and you might miss it. Or worse, if the
compiler catches it it's easy to misinterpret which brace is
unbalance, and "correct" it incorrectly.

God help us, even Visual Basic might be better to start on than

Collapse -

Well Begin is bigger than {

by Tony Hopkinson In reply to Start programming with a ...

, but that's not really the problem. It's the compiler somwhow achieveing an executable from what is complete bollocks.
A Pascal compiler gets to the last line in the block and says Oy dimwit where's the begin ?
A C compiler goes hmmm interesting idea, a procedure definition inside a while loop, wonder what that does.
Say which one of you sick mother's put me to sleep and violated my access ?

Collapse -

Anything but Java

by robmcalister In reply to Java would be a terrible ...

Start anywhere but Java. It's not really set up for beginning programming. Just to do basic stuff like echo text to the screen, requires some magic that says, "Ignore this for now, we'll explain how it works later...much later."

A good system administrator can start with Perl, and become instantly more productive. But, there are so many shortcuts it can be overwhelming when you start looking at other people's code.

Nobody uses Pascal anymore although it was the language of choice for intro programming classes in the late 80's. It's excellent for understanding the logic behind the magic.

Compiled (C and the like) or byte-code (Java) languages are going to add that extra bit of complexity for beginners that might just be a deterrent to continued growth. Header files, make files, etc. are no way to start learning how to program.

The only good thing about Java is that you can start for free. But you can start with Perl, Python, Ruby...

Collapse -

Really I've been aside from a two year hiatus

by Tony Hopkinson In reply to Anything but Java

been using pascal since 1996.
Still am through Delphi, become quite valuable on the market again as good code is being valued more than that with this months flavour. Could n't agree more about java though horrible language to learn the discipline of programming in. All the habits you develop are likely to be bad.

Collapse -

best advice

by apotheon In reply to New to Java ...best advic ...

You want the best advice? Here it is:

Don't start with Java. In fact, don't bother learning it at all unless you have a specific need to do something with it (like translate something in Java to another language).

Better choices (in alphabetical order):

C or C++ will be thoroughly difficult languages to learn as a first language, but they're the languages that have been and will be the most solidly part of the IT industry for quite some time.

Pascal isn't the easiest language in the world to learn, but it's not the hardest, either. It's a compiled language, and leads easily into Object Pascal (also known as Delphi for those who use the Borland Delphi design environment) for object oriented programming. It tends to teach very good programming habits, but there aren't too many jobs out there for Pascal programmers these days.

Perl is the ubiquitous system administration language. If you're ever going to admin a unix system of any kind (AIX, Linux, *BSD, et cetera), you should learn it. It's also "the language that drives the web", as they say. It's really kind of a do-anything workhorse language, easy to use, easy to learn, and extremely flexible. Because of its flexibility, and tools like Perl's regular expressions engine, it's one of the most powerful languages around in terms of rapid, effective development. It doesn't produce executable binaries like C or Pascal, though, so if that's what you're looking for, you won't find it with Perl. Perl can do object oriented programming, but it doesn't have to.

Python is similar to Perl. It's a little more orderly to look at but, frankly, it makes my eyes bleed. Others swear by the "significant whitespace" feature of it, but I would really rather do without. It's not as ubiquitous as Perl, though it's getting closer. It's not nearly as necessary for the competent sysadmin as Perl, but it's useful. Some feel Python is much easier to learn and use than Perl, but I haven't had that experience with it. Like Perl, it does not compile to executable binaries. Python is an object oriented programming language, period.

Ruby is Perl for Python users, or Python for Perl users. It doesn't compile to executable binaries, and it is not as common/popular as Perl or Python: those two facts pretty much end the list of negatives for Ruby. Ruby is the easiest useful language to learn and use that I've ever seen. I love this language, and so does any other programmer that picks it up and plays with it for five minutes. It is a "pure" object-oriented language, more object-oriented than Python (which is in turn more object-oriented than Perl, C++, or Object Pascal). It's an extremely powerful language (similar reasons to Perl's power), and lots of fun (for programmers, at any rate).

I've made a lot of noise over executable binaries. Keep in mind that this is not a make-or-break feature of a language. For many tasks, binary compilation is important. For many tasks, binary compilation is actually a detriment -- such as the actual process of programming, because it becomes more difficult to test your code if you have to keep compiling it (for instance). Sometimes, people have sort of a bigotry about "compiled" versus "interpreted" languages, but ultimately what matters is whether the language is suited to your task.

Java, by the way, is on the wrong side of pretty much everything where the compiled-vs.-interpreted debate is concerned. It is bytecode-compiled, which means it's compiled to a sort of intermediary state that makes it less accessible than Perl or Ruby source code files, but it still requires a final compilation at runtime so that it does not get the same benefits as pre-compiled binaries like those created by C and Pascal compilers. Worse yet, Java requires a "Virtual Machine" to be running, else the bytecode won't compile and run, so there's this huge resource overhead from that slowing things down and mucking up your computer's performance in general.

If you want to get started learning programming with Ruby, I can point you at a couple of free, online resources:

Programming Ruby: The Pragmatic Programmer's Guide
This is written by one of the best programming teams available, who wrote that seminal work of good programming practice, The Pragmatic Programmer.

Daniel Carrera's Learning Ruby
It's a good starter/primer.

Why's (Poignant) Guide to Ruby
Another book online. It doesn't look bad at all, though I haven't looked at it in depth.

Learn to Program
Yet another book online. This one is great for learning the very basics of object-oriented programming, and does it with Ruby as the example language. It's not so much about Ruby as about programming, though. Come to think of it, this might be exactly the one you need to get started. You'll need more than just this to be a competent programmer, though: you also need to start writing programs.

Another one:

Another one:

I hope that helps.

Related Discussions

Related Forums