I am trying to get a job as Java developer.

I have been developing web pages with Java for a while, but now trying to go to another path and develop server-client solutions.

In this specific company they are using these technologies for web developing: Spring, Hibernate, Ant, Velocity etc. All of the hot techs for Java.

Now before applying for job as server-client developer, which technologies should I get familiar with. Which would be adequate technologies?


3 Answers 3


You should get familiar with the languages, technologies, and techniques that you need right now to get the job done or that are called out in a job posting. There's no one, ultimate technology stack that you should learn to, in your case, develop client/server applications in Java. You should also learn the underlying concepts of developing distributed systems that are applicable across languages, frameworks, and technologies.

You should never tie yourself to a particular technology. Those change all the time. Instead, focus on learning, continuous improvement and development, and problem solving techniques that can be applied to any situation or job. The act of learning new technology is, by itself, an improvement, even if it's not immediately relevant. I've found that by learning something, I get better at learning in general and can more rapidly pick up and use new technologies.

The easiest way to learn something new is to read, practice, and do. First, read the documentation and find out where to go for information. Then, practice with the tutorials or simple problems to get your feet wet. Finally, do something of a meaningful scale, such as implement (or reimplement) a personal project or contribute to an open-source project. Ask questions along the way and never take anything for granted.


Quote from Wikipedia:

Middleware makes it easier for software developers to perform communication and input/output, so they can focus on the specific purpose of their application.

And this is exactly where Spring Framework comes handy.

It provides a lot of pre-built ( out-of-the-box or whatever you call it ) APIs and well working default Implementations to handle all kinds of operations so a developer could focus on the business logic rather than the frameworks.

Its hard to tell in details before you tell what exactly you're talking about, but I'll try to cover a few.

Spring MVC - provides a good front-to-back-end data model mapping to UI and back to services, invoking actions & etc.

Spring Web Flow gives you a flow transition describing framework and binding flow actions to UI. Also a "scope" to where you can create your backing beans and Spring will take care of destroying them.

Spring Persistence gives an easy way to get access to database connection and transactions over JPA so you don't have to worry of creating connections and start transaction, commit and rollback operations.

And so far and so on as there are many sub-projects under Spring framework every one does it's job well.

Hope this helps :)


Spring is what you should really concentrate on.

Hibernate is pretty straightforward if you are already familiar with databases and SQL. Ant scripts are usually set up early and the project and not touched until deployment, Velocity you may use occasionally.

But Spring is what you will be using all day every day as a developer. Its a pretty massive collection of frameworks and utility classes. Start by getting to grips with Spring MVC.

Not the answer you're looking for? Browse other questions tagged or ask your own question.