Digital Edition

SYS-CON.TV
Interviewing Java Developers With Tears in My Eyes
Do you call yourself a Java developer?

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 projects 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 interfaces are for. The other one was still killing a thread by calling a deprecated ten 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

About Yakov Fain
Yakov Fain is a Java Champion and a co-founder of the IT consultancy Farata Systems and the product company SuranceBay. He wrote a thousand blogs (http://yakovfain.com) and several books about software development. Yakov authored and co-authored such books as "Angular 2 Development with TypeScript", "Java 24-Hour Trainer", and "Enterprise Web Development". His Twitter tag is @yfain

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 3 of 3

When I am interviewing candidates I ask them to tell about one of their java projects from a strict technical point of view. That quickly reveal their skill level. People that know their stuff, starts with the architecture goes down to usage of the main desing/tool artefacts and asks me if I got it or if they have to elaborate further. The other candidates, are rambling about the business, revenue and a lot of other things I never asked for.

The inherent problem with software development (exaggerate by Java) is that there are no clear compentence differentiators, as there are in many other engineering/science professional areas.

For example, nobody would even think about letting a person that just got their medical degree perform advanced eye surgery. However, in our business this happens all the time.

Why, this is the case; is the topic of a PhD thesis on its own. One part of the explanation is the (rapid) pace of the technical evolution. Another part is the focus on paid-by-hour instead of paid-by-task. The latter rewards working smarter and faster and the former the opposite.

Recently in my new job, i was asked to review code, written by their best java programmer. First thing i noticed was this ->

private void debug(String msg) {
if (log.isDebugEnabled()) {
log.debug(msg);
}
}

Not sure, how to tell my tech lead, he is good programmer, but not experienced enough.

@jondcruz I'm looking for programmers of type 2 as you put it. I'm not interested in Google monkeys who say I don't read tech. books as I can find everything on Google. The problem is that those who don't read book don't know what to look for on Google other than a code snippet that they immediately need (a bubble sort in Java).
The biggest issue with the interviewees that disappointed me is that they don't fking care! Can a normal person spent years configuring Spring/Hibernate without thinking of how things work under the hood? Not deep under the hood, but under the surface?
As to questions on Flex, send out your resumes nationwide just for the sake of getting phone screened in Flex. One day I'll publish a set of Flex questions, but for now get intimately familiar with item renderers, custom components and how they talk to each other and Flex/Java workflow using BlazeDS.

@davidnwd You are very conservative. You'd need to fire 2/3 of the team.

On a large project for a media conglomerate, I was asked to oversee development in the middle of the project. After 1 week I went to my manager and said, "I can reduce cost by 30% and improve our productivity 50% in one day." He replied to do it, but then I said, "you don't understand. I need to fire 1/3 of the team."

This got his attention, and, long story short, we did just that. One "15 year" Java developer almost came across the table and hit me. What was true, however, was that these contractors were hired with little of the vetting you did to these interviewees. They simply didn't know Java. I think many outright lied about their skills, and hoped they could pick J2EE up fast enough to not be found out.

Since I'm currently in the interviewing stage, (just laid off June 2nd), this post sorta struck a nerve. After reading it a few times, and then again a few more times, I can see where you're coming from. And it sounds like you at least gave them worthwhile/practical questions that truly tested their java level.

There's a big difference between a programmer who solely uses Google to solve his coding problems or write his code, and doesn't care to learn. There are other programmers who try to solve it themselves, consult their stack of books, ask their peers, and -- if those don't work -- go to Google. Then there are those programmers who were lucky enough to have started using Java since the beginning of Time. They not only know the ins and outs due to a decade-and-a-half of experience, but they might also be the founding developers of a framework or other open source project.

I guess my point is, if you're that third type of programmer, make sure you ask the interviewee practical questions that pertain to either the job in question, or their project background.

I've been in interviews where after a few of what I call "architect" questions, it was deemed that I didn't know Java. Ok. Put a machine with an IDE, or hell -- TextPad and a compiler -- in front of me, and I'll show you I know it. During those types of "architect" question interviews, I've never been asked about my past experiences and how I actually achieved my coding goals.

Sorry, Yakov, as this is not directed at you, (since it appears you gave them questions that had practical usage.) It's more toward those interviewers out there that are reading this blog. Please ask those who you consider not as knowledgeable as you in the ways of Java a chance and ask some practical/hands-on coding questions. Make these practical questions about either the job they're trying out for, or their past experiences.

Also, I'm really curious as to what type of questions you'd ask a Flex developer, Yakov. I've been using Flex for the frontend since Aug 2008, using BlazeDS to talk to a JEE service layer, (which then talks to a Hibernate layer). (Heh. I'm not a Robot-configurator, as I tend to want to learn what I'm configuring and why it works. Cyborg-configurator? Part robot, part human?)

@jriddler

So I must be an "old fashioned programmer" too, btw, a happy one :)

During my career I have meet many developers who had no clue about what was going on under the hood. Usually they get desperate when something go wrong.

IMHO, a developer must have solid knowledge of all technologies used in their projects (at least this have proved to be invaluable for me).

Today's programmers don't need to actually know anything outside of having good googling skills. It is debatable that a given knowledgeable programmer will be more productive than a google hacker. You are simply an old fashioned programmer dude.


Feedback Pages:




ADS BY GOOGLE
Subscribe to the World's Most Powerful Newsletters

ADS BY GOOGLE

ChatOps is an emerging topic that has led to the wide availability of integrations between group cha...
As DevOps methodologies expand their reach across the enterprise, organizations face the daunting ch...
As Marc Andreessen says software is eating the world. Everything is rapidly moving toward being soft...
You know you need the cloud, but you’re hesitant to simply dump everything at Amazon since you know ...
Is advanced scheduling in Kubernetes achievable?Yes, however, how do you properly accommodate every ...
The cloud era has reached the stage where it is no longer a question of whether a company should mig...
The need for greater agility and scalability necessitated the digital transformation in the form of ...
In his keynote at 18th Cloud Expo, Andrew Keys, Co-Founder of ConsenSys Enterprise, provided an over...
Coca-Cola’s Google powered digital signage system lays the groundwork for a more valuable connection...
In his session at 21st Cloud Expo, Raju Shreewastava, founder of Big Data Trunk, provided a fun and ...
While some developers care passionately about how data centers and clouds are architected, for most,...
"Since we launched LinuxONE we learned a lot from our customers. More than anything what they respon...
DevOps is under attack because developers don’t want to mess with infrastructure. They will happily ...
"As we've gone out into the public cloud we've seen that over time we may have lost a few things - w...
In his session at 21st Cloud Expo, Michael Burley, a Senior Business Development Executive in IT Ser...
Sanjeev Sharma Joins June 5-7, 2018 @DevOpsSummit at @Cloud Expo New York Faculty. Sanjeev Sharma is...
We are given a desktop platform with Java 8 or Java 9 installed and seek to find a way to deploy hig...
"I focus on what we are calling CAST Highlight, which is our SaaS application portfolio analysis too...
"Cloud4U builds software services that help people build DevOps platforms for cloud-based software a...
The question before companies today is not whether to become intelligent, it’s a question of how and...