Advice: Rapid self-study of backend Java programming

F

fishfry

Hi all. I'm a long-time professional Unix programmer and sw engineer.
For the past few years I've been coding in Perl, mainly because there
was so much work around it was the path of least resistance.

I started learning Java in 1996 and did some paid work with it around
'98, including heavy JDBC coding. I have a pretty good grasp of OO
concepts and I've worked with databases, networks, enterprise systems,
and transaction processing systems for many years.

I would like to come up to speed as soon as possible on the Java backend
technologies. I'm thinking of a self-study path along the lines of:

* Review of basic language features.
* Servlets
* JSP
* Tomcat
* J2EE
* Buzzword compliance: XSLT, Ant, EJB, etc. All the stuff I see on job
reqs that probably isn't all that complicated once I know what it is.
* Some nodding familiarity with the popular app servers: Weblogic, etc.

My machine of choice is the Mac. I'm not a Mac programmer, in fact I've
always been a Unix programmer. But since these days Mac = Unix more or
less, that's handy for me.

Questions:

* What's the best IDE for me to use? Codewarrior, XCode, Eclipse,
something else?

* What about GUI programming? I've always been a server-side engineer
and I like it that way. So I just need enough GUI to get by. Should I
work with AWT or Swing?

* How much Mac-specific programming should I learn/avoid?

* Where do beans fit in to all this?

* What's the right sequence of topics? What else am I missing?

Any advice, suggestions ("Stick to Perl," "Forget it, just go sell real
estate," "Go back to Bulgaria," etc.), pointers, ideas, topics
appreciated.

I'm thinking of working through Bruce Eckel's book. I think I have
volume I, is volume III a lot different?
 
T

Thomas Weidenfeller

fishfry said:
* Review of basic language features.
* Servlets
* JSP
* Tomcat
* J2EE
* Buzzword compliance: XSLT, Ant, EJB, etc. All the stuff I see on job
reqs that probably isn't all that complicated once I know what it is.

EJBs are not simple. You will not master this in a few days.

Ant is a build tool, nothing to worry about.

XSLT is one of many technologies around XML. Learning XML basics first
might be a good idea. XML is e.g. used for a lot of J2EE configuration
and description files.
* What's the best IDE for me to use? Codewarrior, XCode, Eclipse,
something else?

Try a few. Tast and individual workflows vary.
* What about GUI programming?

You selected server technologies. You maybe don't need AWT/Swing GUI
stuff at all.
I've always been a server-side engineer
and I like it that way. So I just need enough GUI to get by.

Get by what? I guess many people doing server stuff never have any need
for GUI work, except web pages.
Should I
work with AWT or Swing?

If you want to spend your time with GUIs, go for Swing. Swing still uses
a lot of the platform-independent stuff from AWT, so you will pick up
AWT knowledge, too.

But your time is maybe better spent by looking at web page design,
(X)HTML, and XML technologies.
* How much Mac-specific programming should I learn/avoid?

For Java, the idea is to avoid all platform-specific programming.
However, your customers might demand features which can't be build
without using platform-specific, native functions. But I would start to
think about this later, once you know your customer's requirements.
* Where do beans fit in to all this?

The term bean is unfortunately used twice in the Java universe.

- Java beans are simple reusable Java classes, conforming to a simple
set of naming conventions for methods and a few design rules. A lot of
classes happen to fulfill the rules, and are already beans by accident.
The naming conventions make it easy for tools to identify the interfaces
of an object, and e.g. to provide the class for use in a GUI builder.

- Enterprise Java Beans (EJBs) are the core components of Sun's
component-based architecture for distributed computing. This is heavy
stuff. Many things to learn.
* What's the right sequence of topics?

It depends on your needs. Your own list is not too bad, but, as you will
find out, the order is maybe not what you want. Servlets and JSPs are
part of J2EE, so by stating with them, you are already learning one of
the many J2EE technologies ;-). Tomcat is a Servlet/JSP server. So when
you learn servlets, and if you decide to use tomcat, you will deal with
Tomcat earlier than you planed.
* What else am I missing?

J2EE is huge. It is unrealistic to learn everything at once. Pick the
things you need or which look interesting.
Any advice, suggestions ("Stick to Perl," "Forget it, just go sell real
estate," "Go back to Bulgaria," etc.), pointers, ideas, topics
appreciated.

Don't forget Perl. It is always a good idea to have a swiss army knife
in your toolbox.

I don't know about the real estate market, but there is always used car
sales :)

Bulgaria? You have nice beaches. What's wrong with that? Oh, I forgot,
all the tourists ;-)))

/Thomas
 
C

Collin VanDyck

* How much Mac-specific programming should I learn/avoid?
For server-side java development, my recommendation would be to get
comfortable with either Linux or Windows. My experience has been that
Apple's JVM is quite lacking in performance. Also, the IDE I use on
Windows (Eclipse - www.eclipse.org) is pitifully slow on the Mac (dual
G41.25 / 1.5GB Ram), even for the most simple Hello World programs.
 
J

Jon A. Cruz

Collin said:
Also, the IDE I use on
Windows (Eclipse - www.eclipse.org) is pitifully slow on the Mac (dual
G41.25 / 1.5GB Ram), even for the most simple Hello World programs.

Strange.

On my mac (Single G4 867MHz, 0.5GB RAM) Eclipse is quite sufficient for
even professional work. Have you tried since 2.1 came out?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top