Dec 23, 2013

How to get an entry level Java developer job?

Entry level Java developers and career changers get caught in the vicious cycle where "you can't get a job without some hands-on experience, but the employers are not keen to hire you without some experience". Employers are looking for entry level developers who can start contributing from the day they join. This does not mean that employers are not going to provide you training and support, but rather looking for skills outside academic qualifications like -- working independently, quick learner, passion for the chosen profession, understanding of the industry, ability to communicate your thoughts/capabilities and some much needed  "hands-on experience". There is no other magic formula. Most employers don't care where you got that experience from.

So, if you are stuck in this vicious cycle, the key is to get some experience to break this cycle via self-taught projects, open-source contribution, and volunteer work in Java (e.g. charity organizations and local community projects).  It does not matter what avenue you take, and every experience counts. You need to demonstrate your passion & understanding of the chosen profession, and ability to work independently and as a team. Here are some step by step guide to get the ball rolling.

Things that do not make a real difference in securing a job:
  1. Thinking that piling up of your certifications can help.
  2. Thinking that a post-graduate qualification can increase your chances.
  3. Thinking that reading a Java book from cover to cover can help. It is very important to learn the fundamentals, but mix learning the fundamentals with gaining the much needed hands-on experience. Can you drive a car by just learning how the controls work?
Things you should do to make a break as a Java developer:
Only way to learn to drive a car is by getting behind the wheels. So, 3 things you should do in a nutshell.
  1. Invest in improving your job hunting skills encompassing interviewing, networking, and resume writing skills.
  2. Keep applying for jobs via both published & hidden job markets.
  3. Follow the tips outlined below to enhance your hands-on experience while keeping at points 1 & 2.
All the above 3 points should go hand-in-hand. That is your full-time or part-time job of "finding a job"
Getting the much needed hands-on experience

Tip #1: Java is very accessible and all the following are available for free. The steps you take may slightly vary depending on your familiarity with Java and its tools.
  1. A computer -- desk top or lap top.
  2. Download latest version of Java (JDK and JRE).
  3. Download latest version of eclipse IDE.
  4. Dowload Tomcat or JBoss to deploy your applications.
  5. Download and install MySQL database. All non trivial applications need information to be persisted to a database.
  6. Set up Maven as a build and dependency management tool so that you can download sought after frameworks like Spring and Hibernate.

Google search, good blogs and online tutorials are your friends in setting up the above 6 items. Even with 13+ year experience in Java, researching on is integral part of getting my job done as a Java developer. As an experienced Java developer, I can research things much faster. You will improve your researching skills with time. You will know what key words to search on. If you are stuck, ask your mentor or go to popular forums like to ask your fellow Java developers.

Tip #2: Start with the basics first. Enterprise Java has hundreds of frameworks and libraries and it is easy for the beginners to get confused. Once you get to a certain point, you will get a better handle on them, but to get started, stick to the following basic steps. Feel free to make changes as you see fit.
  1. Core Java fundamentals. Write simple stand alone Java programs using OO concepts. Write unit tests with JUnit.
  2. Learn SQL and write stand alone Java programs that connect to MySQL database via JDBC.
  3. Write simple web applications using Servelts and JSPs using enterprise Java. The application needs to persist data to the MySQL database. Deploy your application to Tomcat or JBoss server and run them as an enterprise application. Use Maven for build and dependency management. 
  4. Expand your project created with JSPs, Servlets, and JDBC to use sought after frameworks. Learn the concept of "dependency injection". Start wiring up sought after frameworks like Spring. Spring is very vast, and start with spring core and spring jdbc. Spring core is used for dependency injection and Spring jdbc is to connect to databases and to execute SQL queries. 
  5. Learn the MVC (Model View Controller) design pattern for web development. Convert your JSPs and Servelts to Spring-mvc based web application.
  6. Write RESTFul web services using Spring MVC. 
  7. Get a working knowledge in HTML, JavaScript/jQuery/JSON, ajax, and CSS. This is imperative as more and more organizations are moving towards JavaScript based MVC frameworks like angularjs or backbone. These frameworks make RESTFul web service calls to get data in JSON format and populate the front end. It will be handy to learn node.js as well if time permits.
  8. Make sure that you write unit tests for your code with JUnit and mocking frameworks like Mockito.

Tip #3: Once you have some familiarity and experience with developing enterprise applications with Java, try contributing to open source projects or if your self-taught project is non trivial, try to opensource your self-taught project. You can learn a lot by looking at others' code.  

Tip #4: Look for volunteer work to enhance your hands-on experience. Don't over commit yourself. Allocate say 2 to 3 days to build a website for a charity or community organization.

Tip #5: Share your hands-on experience gained via tips 1-4 in your resume and through blogging (can be kept private initially). It is vital to capture your experience via blogging.  Improve your resume writing and interviewing skills via many handy posts found in this blog or elseware on the internet. It is essential that while you are working on the tips 1-5, keep applying for the paid jobs as well.

Tip #6: Voluntary work and other networking opportunities via Java User Groups (JUGs) and graduate trade fairs can put you in touch with the professionals in the industry and open more doors for you. The tips 1-5 will also differentiate you from the other entry level developers. My books and blog has covered lots of Java interview questions and answers. Practice those questions and answers as many employers have initial phone screening and technical tests to ascertain your Java knowledge, mainly in core Java and web development (e.g. stateless HTTP protocol, sessions, cookies, etc). All it takes is to learn 10 Q&A each day while gaining hands-on experience and applying for entry level jobs. Top 20 Java technical interview questions and answers for experienced Java developers.

Getting a good handle on  the 16 technical key areas and handy tools to improve your productivity as a Java developer are other handy links on the RHS panel of this blog.

Do you want to become a front-end developer, and confused about where to start?

The new trend is to use JavaScript based frameworks like AngularJS. So, learning JavaScript, HTML(5), and CSS is a must. AngularJS is growing fast. The current JEE standard is JSF. Newer projects are moving towards client side MVW (Model View Whatever) frameworks using AngularJS, Backbone, ExtJs, etc. If you end up enhancing an existing application, you have a good chance of working on one of the following Web frameworks JSF, Spring MVC, Struts(2), and GWT.

For learning purpose, stick to JavaScript, jQuery, CSS, HTML(5), Spring MVC and JSF.

Finding an entry level Java developer job itself a full-time job

You have the 8 hour+ work cut out for you. Regularly review your progress, and fine tune your approach. Sometimes you may require 360 degree turn (e.g. shift from piling up certifications to gaining much needed hands-on experience, shift from reading Java books from cover to cover to taking up a volunteer work, turning your job hunting from 2 hours a day to a 8 hour a day, etc ) to your approach. It is really important to do variety of things to keep it interesting and keep you motivated. It is easy to lose motivation. Share your experience with your fellow entry level Java developers. It is vital that you keep applying for a paid job whilst working on the above tips.

More on this  @ Handy tips to get some work experience on your Java/JEE CV. 

Labels: ,


Blogger Greg said...

Would certifications help in getting more interviews? Because I have not worked in IT before and am not getting any interviews at all.

I wanted to take OCJP and the web components certification.

1:18 AM, January 06, 2014  
Blogger Unknown said...

Certification is good for learning the concepts, but you need the 3 things I have mentioned above to get an entry level job. If certification motivates you to learn the core concepts then do just one.

1:37 AM, January 06, 2014  
Anonymous Anonymous said...

Thank you for this article, it is really helpful to me as I am still a student. When I apply for Java internships I get overwhelmed because they list so many different combinations of requirements.

I just wondered, you said to learn Java, SQL and the JDBC connection. Then later on you also said to "Get a working knowledge in HTML, JavaScript/jQuery/JSON, ajax, and CSS.". There were also some other things you mentioned such as JSP and servlets.

I ask because I want to do voluntary work to build experience. But before I do that, I want to get comfortable with a few personal projects. Any ideas of challenging projects for a beginner?

10:50 AM, January 22, 2014  
Blogger Unknown said...

JSPs and Servlets are Java Web basics. Even though JavaScript based frameworks are gathering momentum, many current applications are built with web frameworks like JSF, Spring MVC, Struts(2), etc. You need to know JSPs and Servlets to know the basics.

Web learning

1. Learn HTML and CSS
2. Learn HTTP basics and paradigms
3. Learn Servelets and JSPs
4. Learn Spring MVC framework which uses JSPs and Struts
5. Learn JSF
6. Learn JavaScript and JavaScript based frameworks.

11:35 AM, January 22, 2014  
Anonymous Anonymous said...

Thank you for this list and quick response!

11:43 AM, January 22, 2014  
Anonymous Anonymous said...

I read this and found it very interesting.

Should I be using Github as well in this list?

3:55 PM, February 26, 2014  
Blogger Unknown said...

Source Control system of your choice will be useful. You can look at Subversion (aka SVN) or Github

4:04 PM, February 26, 2014  
Blogger Unknown said...

This comment has been removed by the author.

8:52 PM, April 23, 2014  
Anonymous Anonymous said...

Hello sir i am from india,,, i am completed jAVA course past five months onwards looking for Developer job still i am not get,,, any Good sujetion for me,,

2:05 AM, May 14, 2014  
Blogger Unknown said...

I wish there is a magic formula... but there isn't. You need to apply all the career tips that I have mentioned. Your job hunting and Java skills will improve over time. Good luck.

10:47 AM, May 14, 2014  
Anonymous Anonymous said...

Thanks for the article. I'm a career charger and I find this very helpful. I wonder if I can just dive right in to Core Java without solid background in theoretical side of things(maths, algorithms). At the moment, I'm apparently aiming to get my foot in the door (for financially reason) and slowly continue my education from there. I have an electronics/electrical engineering background and just recently passed my java prog 1 certification.

2:43 AM, June 22, 2014  
Anonymous Anonymous said...

Hello sir , iam completed java course and now i have planned to do java certification , which certification is best for entry - level java developer . As iam a fresher i have not much idea about certification .....

9:08 PM, September 03, 2014  
Blogger Unknown said...

Yes, you can.

11:59 AM, September 20, 2014  
Anonymous Anonymous said...

Hello sir I've completed my college last yr n due to few circumstances I wasnt able to join any IT company but now I plan to work on a live project do u think it wud do good to me or companies will rule me out bcoz I am a last year pass out.How can I present a strong impacting resume??

11:41 AM, September 23, 2014  
Anonymous Anonymous said...

Hello Arukkumaran
My name is Rafi Ahmed Mangrio.
I am working as junior software engineer on
i want to switch to java. Do you think i need to go through all the things you have discussed above or the scenario is different for me ?? I know little about jdbc and nothing about jsp or servelets or hadoop,
And one more thing do you have any tutorial links which you think would help me to switch to JAVA

9:10 PM, October 11, 2014  
Blogger Unknown said...

You need to work your way through step by step hadoop won't be required until you get a handle on the other basic stuff.

10:24 AM, October 13, 2014  

Post a Comment

Subscribe to Post Comments [Atom]

<< Home