The No.1 i-Technology Magazine in the World !
   
 

      ES no BS
       My son's animations and music            training         Twitter            No BS IT podcast

Archives

««Mar 2010»»
SMTWTFS
  123456
78
9
10
11
12
13
14
1516
17
181920
21222324252627
28293031

RSS Feed








Subscribe to these blogs

Interviewing Java developers with tears in my eyes

posted Saturday, 18 July 2009

During the last week I had to interview five developers for a position that required the following skills: Flex, Java, Spring, and Hibernate.  Most of these guys had demonstrated the 3 out of 10 level of Flex skills even though each of them claimed a practical experience on at least two projects. But this didn’t surprise me – Flex is still pretty new and there is only a small number of developers on the market who can really get Flex things done.

What surprised me the most is a low level of Java skills of most of these people. They have 5-8 years of Java EE project behind their belts, but they were not Java developers. They were species that I can call Robot-Configurator.  Each of them knew how to configure XML files for Spring, they knew how to hook up Spring and Hibernate and how to map a Java class to a database entity. Some of them even knew how to configure lazy loading in Hibernate even though not all understood why it’s needed.

Two out of five developers who claimed seniority in Java proved to have a mid-level understanding of this programming language. The other three really disappointed me.  They didn’t even know the basics of Java…One of them had no idea of what the interfaces are for. The other one was still killing a thread by calling a deprecated 10 years ago method  stop(), the third guy had issues explaining the data flow of a standard Web application built with Servlets and JDBC.

Next time you’ll be interviewing a Java guru, ask him/her the following question, “There is an HTML form with a button Submit, a servlet and a relational database with the table Customers.  The users enters a First and Last names of the customer, presses the button Submit, and you need to write the code that would return the detailed data about this customer. Explain IN DETAILS the entire data flow and the HTML/Java processing you’d need to perform.”

Do not forget to repeat that the candidate is not allowed to use neither Spring, nor Hibernate.  You might be surprised...

I like Java, and it’s sad to see these herds of creatures who truly believe that they are Java developers.  They aren’t

Update. This blog has been also published as an article in Java Developer's Journal. It has ignited an interesting discussion: http://flex.sys-con.com/node/1040135

tags:          

links: digg this    del.icio.us    technorati    




1. itschinmay left...
Saturday, 18 July 2009 9:09 am

Damm....this really brings tears in eyes. I m still nt able to get that they couldnt explain such a simple thing without using spring/hibernate...it is basic things.n integration of Flex n java is not tough at all...


2. Yakov Fain left...
Saturday, 18 July 2009 9:25 am

Almost nothing is tough if you care to learn it. But if you are just one of the blue collar workers standing by the Spring-Hibernate assembly line, why bother? Bud light and the TV dinner is all you care about. Actually, in this case it was rice and curry dinner.


3. Ben left...
Saturday, 18 July 2009 10:10 am

It is not surprsing, considering some facts: 1. Most job candidates bumped up their "seniority level". In fact, most recruiters asked them to put that on their resume or market them as such...

2. J2EE(EJB)/Spring/Hibernate These are all just "frameworks". The idea is to make you a "configurator guru", not to understand it works internally. I'm guessing that Spring/Hibernate will take the same path as J2EE(EJB). Time will tell. This is exacerbated by the requirement of quick turnaround time for Web-development. So, what better than to use a canned-solution framework?.


4. Ben left...
Saturday, 25 July 2009 3:25 pm

Here's an example of what a great resume an actress fudged up to get ahead: http://www.cnn.com/video/#/video/showbiz/2009/07/24/dcl.coolidge.intv.short .cnn

So maybe, the "senior Java developers" haven't got the stuff you were looking for, like old soldiers fought in World World I trenches.


5. Valery left...
Tuesday, 28 July 2009 6:11 pm

My own list of questions that candidates failed to answer during recent interviews:

1. You have a table in SQL database, Table A with fields A and B. Write SQL statement that returns all unique values of A. A candidate failed to provide an answer at all, though there are 2 possible ways.

2. What is a difference in behavior of HashSet and LinkedHashSet? Two candidates don't even know that LinkedHashSet exists...

3. You have a java.util.List of String objects. Please write code that removes from original list all elements containing "Xyz" substring.

I were interviewing Java developers of quite large and long-running outsourcing development company. Some of them have (drum roll) 5+ years of Java/J2EE experience, but fail to answer all(!) questions from the list above... As far as I know, the company uses Brainbench tests during evaluation of candidates for software developer position. So either the testing results are completely ignored, or there is a phenomena that developers degrade when using too much frameworks in projects =)))


6. Yakov Fain left...
Tuesday, 28 July 2009 6:29 pm :: http://yakovfain.javadevelopersjournal.c

@Valery Asking the second and third questions may not be quite right. The answers to these questions can be googled up in under 2 min if needed on the real projects. Questions have to be more open ended.

I'm sure you unnecessary "killed" lots of good candidates. And I'm sure, that after the interview they have told their friends that they ran into a guy who wanted to show off rather than checking their skills.

I don't care about brainbench.

Recently, I was interviewed in a company that did not know about all the noise that I make in the blogosphere and instead of just putting up a red carpet for me, they put me through the tech interview ran by two young Java kids. If the first one asked reasonable questions, the second guy just announced that he'll be asking me on Data structures. Surprisingly, I managed to answer his questions, but this is nuts. I'm out of college for about a 100 years, and trust me, if I need to find an answer to a specific data structure qst in a minute...


7. Valery left...
Tuesday, 28 July 2009 6:42 pm

I would strongly disagree regarding Q3. This is a fundamental type in Java API, and knowing how to work with it is a must for any Java developers. Hey, using for-loop + Iterator, what question should be simpler that this one?

Probably you are right regarding Q2. But... They don't know well Java Collections. And this is ok. But they don't know how to work with dates in Java either. They fail to answer many of questions related to java.io. And I don't even asked them about generics, java.util.concurrent and java.nio. Now my point -- what JAVA they are experienced with if they don't know anything about basic API-s? How much time should be allocated for googling in project plan, if developers don't know fundamentals?


8. Anatole Tartakovsky left...
Tuesday, 28 July 2009 7:47 pm

Valery, Yakov,

  • First, I have to admit I would not know the answer to #2 unless I google it. I do not feel bad about it as I rarely need to go to that level. I would not qualify as expert coder but would easily pass as hands-on developer by american standards Yakov is imposing.

  • You are talking about the same thing, but from different perspectives. Yakov is trying to check if the person claiming 8-10 years in Java touched it in the last 5 on the code level or at least will be capable to contribute at coding capacity. Valera's questions are more of what you expect to ask person with 2-3 years of hands-on experience to rate if he is in top 20% that would qualify him to work in expert environment. Then you need to find out if he grasped the best practices and understands innerworking/differences between different approaches.

Valera, I have 2 stories to share when I "failed" the tests. 1. About 15 years ago I was asked to write code similar to what Valera is asking in C. When I showed my code to reviewer, we both were very surprised to find that it was written in C++ and evaded the problematic area in the algorithms due to unexpected knowledge of math. As a result I was not offered the position due to lack of compliance with conditions of test and turned result in 50 lines/0 mins instead of 120 lines/2 hours.

2. About the same time I was interviewed by a small consultancy working as brain bank for Wall Street firms. They asked the questions on products that were too specific (on the level of product developer), definitely undocumented and available only by experience for solving very esoteric problems. After answering about 10 of such questions they said I was the first person to pass. They asked if I had any questions. I asked 3 questins on the same level on the same products - they did not know answers nor could come up with ideas. So I failed them.

I personally prefer candidates to send me examples of their code. After all it is creative work like any other writing, and it will tell you much more then timed test - including the fact if it was original or googled.

Regards Anatole Tartakovsky