Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am a software professional with about 1.6 years of experience in Java. Due to personal reasons, I had to quit my job, and now after 5 to 6 months, I am about start my career again. I am planning to attempt to take the SCJP exam, but some of my seniors suggested that I should learn Spring and Hibernate. I am totally new to Spring and Hibernate, but I am good in core Java concepts, servlets, and JSPs to some extent.

Which option would help me securing a job fast? Do software companies not use Java and JDBC alone, without advanced concepts like EJBs, Struts, Spring, Hibernate, servlets, JSPs, etc? Is it enough for an individual to possess skills in Java alone by attempting to obtain the SCJP certification, or do you need advanced Java skills to secure a job?

share|improve this question

closed as primarily opinion-based by Ixrec, MichaelT, durron597, Yannis Jun 5 '15 at 7:33

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

In addition to the answers above, what ever you do, please don't just go and learn the framework!!

  • Hibernate is the most popular implementation of the Java Persistence Architecture (JPA) standard. However, it is not the only one and so understanding JPA before tackling Hibernate is recommended. With Hibernate, learn how it works under the hood so that you don't make mistakes like trying to call delete() on 1 million objects on a limited resource server.

  • Spring is a vast framework with many tentacles, but at its heart is the concept of Dependency Injection (DI). You want to make sure that you understand that concept first, so you can apply it to Spring, Guice, Pico Container or any of the other Inversion of Control (IoC) containers out there.

Frameworks go in and out of fashion, the underlying principles last much longer :-)

share|improve this answer
Yes. If you learn the framework for the sake of learning it, you will never understand why it was built in the first place. I know some programmers that just don't care about those stuff, they just learn the "syntax" and follow the "paste-copy methodology". I believe that you will not be able to build a career doing just that =/ – wleao Sep 16 '11 at 13:56
@wleao, I love your comment because you point out the danger in being a copy-paste programmer. If a junior level programmer is able to convince me of a framework, WHY it exists and HOW it can solve my problems, then that person is FAR MORE valuable on my team than a copy-paste programmer with 10 years experience. – maple_shaft Sep 16 '11 at 14:09
+1 for both the comments - I'm saddened every time a 'Hibernate developer' gets stuck because they couldn't read the underlying SQL it produces - grrrrr. – Martijn Verburg Sep 16 '11 at 16:23

At this point, you should probably learn Spring and Hibernate. If you were just graduating, SCJP could have more value, but your 1.6 years Java experience gives you credibility as a Java programmer.

Yes, most Java shops use frameworks like Spring and Hibernate, EJB, Struts 2, or a combination of these, based on my experience.

The problem with learning Spring/Hibernate on your own is that many employers don't give much consideration to experience that is not work experience.

How to learn Spring/Hibernate is another large question. The short version is: build something, understand and use Dependency Injection, use Spring DAO's along with Hibernate for your DB access. If you can get that much working, add Spring MVC for the front end.

If you like books, the "In Action" books are good. (Spring in Action, Hibernate in Action)

If you accomplish that much, you should be able to decide for yourself what to do next.

share|improve this answer

You don't have much experience so not much should be expected of you other than a willingness to work hard and a strong desire to learn and pick up new concepts quickly.

For 1.5 years experience I would expect some exposure to JSP, Struts or Spring, Hibernate or any other ORM tool, and servlets. Can the applicant explain Spring to me? Struts? What are the benefits of these tools? Can they explain what an ORM mapper is and the benefits. Can they demonstrate any experience in any of this?

The SCJP is a VERY basic certification and all it tells me is a basic level of Java programming competency. I would skip basic Java knowledge questions if I notice it on a resume but I would still ask typical OO knowledge questions and it certainly wouldn't influence my decision in any way.

You don't need to be an expert or have developed a large distributed system using these technologies to be considered at your experience level.

share|improve this answer

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