Skip to main content

Its Employers who need to be competent to find good Java Developers

Recently I came across lots of post trying to unlock why its difficult to find good Java Developers so I wanted to share my view on this topic. I've been training people on Java since 2007 for various consulting companies.

First lets consider the time it takes to become an expert in PHP Development. A good php developer is expected to know these technologies (PHP, HTML, CSS, Javascript, SQL, Photoshop), and in 1 month of training he can start coding in php and in an year he will have nice grip over all these technologies. So a guy with 1yr of experience is good enough to be considered for most of the php jobs.

 Now lets consider what it takes to become a good Java developer, most of the posts on job portals will look like this Java, SQL, ORM, MVC, HTML, Unit testing, Servlets, JSP, JDBC, AJAX, Design Patterns, Web Services, and IOC.

Most of the students coming straight out of the college know quite a bit of Java, They write desktop and web application using very less standard technologies, for instance.
   1. Desktop application is written using Java, Swing, JDBC, MySQL, most students don't even use JUnit, ORM or any design patterns
   2. Web Applications are written similar way using Java, Servlets, JSP. so hardly they use any standard practices, there is no SVN, Testing, MVC, AJAX, CSS, ORM or Design Patterns.

lets see how much time it needs to learn these technologies which employers expect in a good Java Developer.
Java - remember Java itself is a rich technology and it needs quite some time to master this it.
MVC framework - Spring, Struts, or JSF
ORM - JPA Hibernate, JDBC
Design Patterns - familiarity with application architecture, tiers and layers
AJAX - HTML, CSS, JQuery or similar
Web Services - XML, SOAP, REST etc
SQL - SQL and Oracle knowledge
Spring  - IOC, Transactions
Servers and Build tools

The list for Java is quite a bit lengthy and you expect Java developer to just not know any framework but also know quite a bit of details, best practices and real time work experience. Its clear that we expect more from Java developer. So employers need to do two things either be more competent to attract best with atleast 3 yrs of experience or invest on a fresher.


Popular posts from this blog

JPA 2 new feature @ElementCollection explained

@ElementCollection is new annotation introduced in JPA 2.0, This will help us get rid of One-Many and Many-One shitty syntax.

Example 1: Stores list of Strings in an Entity

public class Users implements Serializable {

    private static final long serialVersionUID = 1L;
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private List<String> certifications = new ArrayList<String>();

    public Long getId() {
        return id;

    public void setId(Long id) { = id;

    public List<String> getCertifications() {
        return certifications;

    public void setCertifications(List<String> certifications) {
        this.certifications = certifications;

        Users u = new Users();
        u.getCertifications().add("Sun Certified Java Programmer");

Generated Tables

Column --> ID
    Row             1


Validating CSV Files

What is CsvValidator ?
  A Java framework which validates any CSV files something similar to XML validation using XSD.

Why should I use this ?
  You don't have to use this and in fact its easy to write something your own and also checkout its source code for reference.

Why did I write this ?
  Some of our projects integrate with third party application which exchanges information in CSV files so I thought of writing a generic validator which can be hooked in multiple projects or can be used by QA for integration testing.

What is the license clause ?

Are there any JUnit test cases for me checkout ?
 Yes, source

How to integrate in my existing project ?

Just add the Jar which can be downloaded from here CsvValidator.jar and you are good.

Instantiate CsvValidator constructor which takes these 3 arguements

         // filename is the the file to be validated and here is a sample         // list - defines all the fields in the above csv file ( a field has index, type, isOptional, rege…