Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
nik9000
Jan 29, 2005
Some general tips:
Learn a functional programming language if you don't know one. You'll never make money from it, but you'll get a good perspective. Try Lisp or Haskelif.
Never write code when there is a good tool out there that will do the job for you.
Java is very thready so you need to learn how threading works. This is especially true if you plan on writing GUIs.
JMX is a good thing. JConsole is your friend. You'll never find deadlocks faster.
Logging is a good thing. You'll never find bugs faster.
Learn the JVM parameters, especially those about memory.
Know that 64bit JVMs need about twice the memory that 32bit JVMs need.
Plan for failures, especially around integration with remote systems. Make sure to fail as gracefully as is appropriate. Deadlock is seldom the right answer. Crashing sometime is.

Here are some tools I have found useful:
Ant is nice build tool. Its like make for java but good. If you don't know it and you plan to make money with java then you need to learn it. You'll never type javac again.

Once you learn Ant, learn Maven. Its better because its more than a build tool, its a project management tool.

Guice is a simple framework for dependency injection. Its like Spring, but very simple. If you are writing a sizable application or a reusable library then I suggest this as glue.

The google collections library has some neat tools. I just found it so I haven't used it yet, but I can see the potential.

Logback is the best logging framework I've used. You need a logging framework so you may as well use the best. Logback is fast and conventient. Any slf4j log framework is good. I'd stay away from Apache commons logging because it can have funky class loader problems.

JCS is a well thought through caching system. Its good if you really need to cache things from a database.

Speaking of databases, I've had a great time using Postgresql. Its quick and second only to Oracle in terms of features. The only real problem is that you have to tune the hell out of it when you get large databases (bigger than your ram).

Saxon is a great Swiss army knife for XML. It does Xquery and XSLT quite quickly and quite correlty. Use it if you absolutely have to do stuff with xml.

Antlr is a fun tool for text/pattern recognision. If you can't do it with regular expressions, you can do it with Antlr. Its documentation is kind of weird, but the mailing list is good. Its also stupid fast. Not yacc fast, but still.

Adbot
ADBOT LOVES YOU

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply