Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I was asked to make a table in which developers in team could use to evaluate their Java level (Maybe from 1 to 5). And then they will know what they are lacking so they could focus to learn on that technique. I think about Skill Matrix but don't know how to start. Could you please help me some hint? Thank you in advance.

As Paul commented, i would like to update some information. our software is just related to Web-Application using Core Java, JSP, JSF, Struts, Spring, Hibernate. Desktop application is using Core Java, Swing to develop

share|improve this question

migrated from stackoverflow.com Mar 29 '11 at 5:12

This question came from our site for professional and enthusiast programmers.

Probably a better for programmers on stack exchange. Also very broad. The term "Java skills" can encompass a tremendous number of facets of Java technologies. It would probably help if you narrowed the scope to particulars in use in your development shop. –  Paul Sasik Mar 29 '11 at 4:47
If this is a self-evaluation you need to be careful that your developers answer accurately. We tend to over-estimate our knowledge and understanding. –  Seth M. Jun 11 '13 at 12:38
It is probably also adviceable to clearly state what a level 1 developer would/should know version someone that is saying they are a level 5 developer (assuming a 1-5 scale). –  Seth M. Jun 11 '13 at 12:39

5 Answers 5

I would broadly come up with a few examples in these general categories and rate each individual's ability to demonstrate working knowledge in each one:

  1. Core Language: general syntax, primitive types and strings, classes and interfaces, etc.
  2. Collections APIs: core interfaces (Collection, List, Set, Map), implementations and their performance characteristics, etc.
  3. Concurrency: Thread and Runnable basics, the synchronized keyword and its semantics, the "java.util.concurrent" API, etc.
  4. Relevant APIs, Libraries, and Frameworks: Swing, J2EE (Servlets, JSP, JDBC), MVC, ORM, RMI, ImageIO, NIO, etc. Choose a couple that are important to your organization/project and see what they know.

By carefully crafting examples and assigning weights to represent the importance of each category to your organization you can categorize people by their "total point" value of successfully demonstrated knowledge.

share|improve this answer
First 3 categories are OK, but the 4th one is way to broad. Suppose one developer doesn't know any ORM and the other doesn't know Swing. They would both probably score 4 which would give false indication they are on the same knowledge level. –  Jacek Prucia Mar 29 '11 at 9:45
Yes should be more fine grained and I would move concurrent to the bottom of the list, as I think its least important for a new person. Not cause its not importatnt if used but due to the fact that even if it is being used it should be handled by a senior expert with the junior only making changes to the app level code –  tgkprog Jun 11 '13 at 12:26

To evaluate core Java skills, the SCJP certification categories should be tested. For example, here is a list taken from Kathy Sierra's study guide:

  1. Declarations and Access Control
  2. Object Orientation (overloading, overriding, reference casting)
  3. Assignments (primitives, arrays)
  4. Garbage Collection
  5. Operators
  6. Flow Control, Exceptions, Assertions
  7. Strings (immutability)
  8. I/O
  9. Generics, Collections
  10. Inner Classes (member, anonymous, static)
  11. Threads

There's also a cute little online test here.

share|improve this answer
Thanks Jonathan, i think the idea of separating by categories would be suitable. developers do not need to take a test to be able to evaluate, they just need to score some related issue to determine their knowledge about it themselves. –  Phu Nguyen Mar 30 '11 at 4:14

i think you can go for SCJP and SCJD exam. it helps you to get good knowledge in Whole Java SE. Then you can go for Java EE or Java ME. Now SCJP 7 is the latest version for that you need to take OCAJP 7. I think you can simply go for scjp 6.

For your SCJP 6 exam preparation you may refer the following materials,

SCJP Sun Certified Programmer for Java 6 Exam by Bert Bates & Kathy Sierra
SCJP 6 Training Lab by EPractize Labs

For you SCJP 6 doubts you may refer Oracle forum and Code ranch forum.

share|improve this answer

I like how Pivotal Labs interview the candidates. They invite the candidate to a peer programming session where he is going to work on a real world code that Pivotal Labs is working on.

IMHO that is awesome because you can evaluate the 'real' knowledge and experience of the candidate and it is also a good technique for the candidate him/herself because many feel stressed during an interview. This technique will help them to feel more relaxed and they might bring the best of them.

share|improve this answer

To complement the other answers you must also have logic building ability. More of a programmer skill, does not matter what the language is, but will be a good idea o collect it and when needed test on it.


  1. how would you store the state and make the snake game work (turning, body segments following head)

  2. given a table: id Person Label Qty 1 T tomatoes 23 2 B onions 33 3 T onions 34 etc Make a cross tab report

Not Phd level algorithms but things that might be needed in some applications.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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