views:

139

answers:

5

I have known Java for quite some time now but have not produced much quality software. Tools in Eclipse like autocomplete, refactoring, Mylyn, etc make things much less of a burden.

I'm asking you guys, who are in java all day, what helped you become more productive? Reusing your work? Keyboard bindings? Planning philosophy?

A: 

First of all, get familiar with common design patterns.

tob
A: 

Don't try to be smarter than you are.

Esko
Well, I don't think thats the best way to put it. Sounds like your advocating Darwinism
TheLQ
I could elaborate this a million ways but the end result would still be this same thing. My point really is that don't try to impress others with stuff you can unmangle yourself later on.
Esko
OK. I will maintain or exceed my current level of dumbness.
emory
+4  A: 

You're asking the wrong question. Code skills alone will only get you so far. Concentrate instead on understanding

  • object oriented design and construction
  • design patterns
  • the advantages and disadvantages of inheritance, composition, and interfaces
  • knowledge of the available libraries and classes
  • higher-level abstractions, like JEE (and ligher-weight approaches like Hibernate and Spring-based applications), aspect-oriented programming, and service oriented architecture
  • learn how to use test-driven design and the various testing tools like jUnit, "mocking" packages, and so on
Charlie Martin
+4  A: 

IMHO there are several aspects to become better in Java, assuming that you are already able to code proper and know your way around in OO:

Tooling

  • Know your tools: Learn the shortcuts of your IDE, and use them.
  • Look for proper tool support: There are lots of plugins available for Eclipse and IDEA.
  • Static Code Analysis, e.g. Checkstyle, PMD, Findbugs, helps you avoid common errors. Given time you will not make them any more. (Use these tools on the build server or IDE plugin).

Language

  • Read the proper books: JVM specification, Effective Java, Java Generics and Collections, Java Puzzlers (in that order)
  • Check out the API doc of the most common classes: System, wrapper classes, collections, etc.
  • Browse the API doc to get a feeling what's there at all: io, nio, security, xml etc.
  • Knowing the right libraries is essential, as it shortens many tasks.
  • So have a look into Apache Commons as well (maybe read Jakarta Commons Cookbook).

Practice

  • Create yourself cheat-sheets.
  • Keep a (personal) collection of nice utility classes and use them in your project. This collection will evolve.
  • Get involved in a larger Java project.
  • Try some open source.
Peter Kofler
A: 

Using Continuous Integration to build our applications when the source repository changes.

Thorbjørn Ravn Andersen