Comments
yourfanat wrote: I am using another tool for Oracle developers - dbForge Studio for Oracle. This IDE has lots of usefull features, among them: oracle designer, code competion and formatter, query builder, debugger, profiler, erxport/import, reports and many others. The latest version supports Oracle 12C. More information here.
Cloud Computing
Conference & Expo
November 2-4, 2009 NYC
Register Today and SAVE !..

2008 West
DIAMOND SPONSOR:
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
GOLD SPONSORS:
Appsense
User Environment Management – The Third Layer of the Desktop
Cordys
Cloud Computing for Business Agility
EMC
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Intel
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Sensedia
Return on Assests: Bringing Visibility to your SOA Strategy
Symantec
Managing Hybrid Endpoint Environments
VMWare
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
PLATINUM SPONSORS:
Appcelerator
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
GOLD SPONSORS:
ICEsoft
How Can AJAX Improve Homeland Security?
Isomorphic
Beyond Widgets: What a RIA Platform Should Offer
Oracle
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
In many cases, the end of the year gives you time to step back and take stock of the last 12 months. This is when many of us take a hard look at what worked and what did not, complete performance reviews, and formulate plans for the coming year. For me, it is all of those things plus a time when I u...
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 1 of 3

Dear Sir,
Please kindly post the answer to your last question.
I am not finding the answer on google and yahoo.
Thanks you very much,
Sincerely yours
Patel Kumar

@rdgflex - I think you miss the point completely. While breadth is important, lack of depth shows itself in 'smelly' code, bad design and maintenance nightmares, sooner or later.

I think it is the attitude who work with.
Also we all work for money in the first,but as we work,we should have enough knowledge to solve any problem.With google any guy can search, can fill the answer in all blank space.Any guy know how to find the answer,but not why the answer is.

I think that who know why will like programming more than the money.

I like coding.

I've heard the same comments from people who used to code in C, Basic, and then on bare metal. Despite the legitimacy of their claims at the time, the market for people who can understand the intricacies of 'malloc' had dried up within a few years. I agree with the suggestion that 'good' developer a rare, but that's not really news. Just make sure that you don't get so caught up in technical trivia that you loos the capability to code faster than two guys working for half the price.

And what makes things funny, that there are people who are leaving comments stating that by asking the basic questions like how to stop a thread or explain a standard HTML-servlet-JDBC data flow I wanted to show off and prove that I'm smarter than others...

And what really disappoints me that one of these "Java developers" who's hiding by meaningless nick will filter out my name from the technical book searches. I'm sure, he knows how to configure Google search to do this.

Happy coding!

BTW ... remind me to filter out "Yakov Fain" from technical book searches.

Wow. Your arrogance is a bit much here. You hire people that are smart and can come up to speed quickly, especially with newer technologies.

I actually had an interview with someone a few years ago that has a very similar style to yours. He liked to show how much more he knew about Java than I or anyone else did, until I blew him away with a question of my own (related to threads and JDBC). After that, I thanked him for his time and informed him I would not be interested in the position. The look on his face was priceless.

I believe that java developer must be good enough with java but the most important too in my vision is how much he love java .. if he like it too much he can learn more and more not depending on his Job and it's related technologies.

If you don't mind Sir , Could You plz tell us the 10 levels of skills with flex developers because I have good knowledge with adobe flex and certified java programmer too and now I making integration between them and I love to know all requirements to get good work with those 2 wonderful technologies.

thanks
M.Adam

I think the author has an outdated paradigm for what software development as become. It's no longer about being a "Java developer" or "C/C++ Developer" anymore. Now, the demands of the web required developers to be jack of many languages, which implicitly means master of none.

Let's face it. To be a "Java developer", per the author's standards, that alone requires years and years of experience. Today, as a typical web developer, the breadth of knowledge required of me is staggering. Again, analogous to my statement above, increased breadth is inversely proportional to depth. As a web developer, I must know HTML, CSS, Javascript, Flex, Flash, Actionscript, XML, XSLT, Java, Spring and Apache CXF frameworks, MySQL, DB2, Sybase, Oracle, RPG, CLP, DDS, JBoss, Tomcat, iSeries, Linux. Oh, and, of course, my employer doesn't want the expense of a graphic artist, and so I must know quite a bit about UI, Adobe CS4 (Photoshop, Fireworks, Illustrator).

So, sorry if I come to your condescending interview and you expect me to have the exact set of skills that you possess. Maybe a bright interviewer would look at it this way. How flexible is this candidate? How quickly does s/he pick up new technologies? How clean and well structured is the code that they write? If the answers to these questions are positive, they can probably come up to speed on doing things your way within a matter of weeks.

Let's face it. The number of permutations possible for constructing a web architecture is phenomenal. Most of us are lucky to find enough on-the-job time, coupled with tons of personal time, to acquire sufficient knowledge to exercise the skill set demanded within our given architecture.

So, to come to an interview that is conducted like a college oral exam says far more about the narrow-mindedness of the interviewer, who probably has a subconcious alternate purpose for the interview: to show how smart he is and how dumb everyone else is because their focus of knowledge hasn't been identical to his own.

R. Grimes

I have a thought about the majority of the posters here: if your coding is as bad as your grammar, it is a wonder any of you have jobs. I'll make an allowance for those with English as a second language, but you native speakers should be ashamed.

They make these tools - word processors - that come with amazing tool subsets such as spelling and grammar checkers. Consider checking those things out. Perhaps you would appear less illiterate online. The points of your posts are completely obscured by your inarticulate use of the English language.

Hi Yakov,

I really take into consideration what Joel Spolsky says about job interviewing: hire only "smart and get things done" people.

If you are smart enough, gaining new skills will only be a matter of weeks. If you get things done (gtd) you will be productive.

This is also our approach in hiring people. Well, to be honest my company is very small and actually we only hired one person.

He didn't know anything about Flex, had only some old fashioned PHP coding skills but we mentored him a lot and within a few weeks he became productive.

Even if he is very young and never had the chance to program in assembly on 8 bit machines as we did.
But he is smart and get things done.

Smart/gtd people are hard to find on the job market, usually they are all hired or aren't on the job market because they are young students (we offered our employee to work with us before he finished his studies and waited for him).

Best regards and good luck!
Alessandro Ronchi

I've been a professional software engineer for over 25 years. Oracle, Borland, Novell. A handful of unknowns. I find it curious how the software interview has changed over the years. You write code on a whiteboard to solve some mini puzzle. Software Engineering is the only profession that does this. If you are an architect, I don't think they ask you to design a bridge during the interview. If you're a fireman, they don't set the trash can on fire and see if you can put it out.

What should matter is what you have already accomplished, and what your design was. Then do a full background check on references to make sure it is not B.S. If you ask a whiteboard question, instead of having that person write code from scratch, have a pre-written piece of code and ask, "what does this do?", and "How would you improve it?". You will learn a lot more about the interviewee than having them write some code to reverse a string.

This problem is not unique to Java. Try to find programmers who can hand craft simple html code, or who have a working knowledge of databases beyond how to create a table in Access. They are out there, but they are a small minority. And, you certainly cannot tell who they are from a resume or interview. Sit them down and have them create something that actually works.

Concerning comments by JavaServedHot, I could not disagree with you more. I have interviewed a lot of people with your background, and even hired a few. That's how I learned that the only way to hire people is to sit them down and have them demonstrate they can do what they say they can do.

Very Interesting debate. Here is my input. Confession time. I have made a career out of fibbing about of java skills.I switched from mainframes to java to content management to portal to the next hot technology. Like they say proof is in the pudding. I have been a consultant all my life. Not to blow my own horn but I have never had a gap between my umpteen gigs I have done so far. I wouldn't call myself an expert at any of the technologies I have worked in but I have written decent code and never had any complaints about my code. Google has been my friend in my quest to learn new technologies on the job. So in my experience if you can ace a Java interview just by reading up on the technology and can learn it on the job go for it. This is the classic chicken and egg situation and this in my opinion is one way to break the deadlock.(Cant finish the post without throwing a techie term)

@hell2009

I think 2 points: its a lot code for only logging messages - just write log.debug(msg); and configure your logging framework right. But writing it that style has also pros when used right - log.isDebugEnabled() should be used to prevent evaluating an expensive toString()-call on your object, so I think it would be OK to write it like

private void debug(Object msg) {
if (log.isDebugEnabled() && msg != null) {
log.debug(msg.toString());
}
}

Well thats only about the code, probably the real question is why he uses logging for debugging code (instead of a debugger) ..


Feedback Pages:


Your Feedback
pkumar wrote: Dear Sir, Please kindly post the answer to your last question. I am not finding the answer on google and yahoo. Thanks you very much, Sincerely yours Patel Kumar
talonx wrote: @rdgflex - I think you miss the point completely. While breadth is important, lack of depth shows itself in 'smelly' code, bad design and maintenance nightmares, sooner or later.
fly m wrote: I think it is the attitude who work with. Also we all work for money in the first,but as we work,we should have enough knowledge to solve any problem.With google any guy can search, can fill the answer in all blank space.Any guy know how to find the answer,but not why the answer is. I think that who know why will like programming more than the money. I like coding.
Mike Vece wrote: I've heard the same comments from people who used to code in C, Basic, and then on bare metal. Despite the legitimacy of their claims at the time, the market for people who can understand the intricacies of 'malloc' had dried up within a few years. I agree with the suggestion that 'good' developer a rare, but that's not really news. Just make sure that you don't get so caught up in technical trivia that you loos the capability to code faster than two guys working for half the price.
Yakov Fain wrote: And what makes things funny, that there are people who are leaving comments stating that by asking the basic questions like how to stop a thread or explain a standard HTML-servlet-JDBC data flow I wanted to show off and prove that I'm smarter than others... And what really disappoints me that one of these "Java developers" who's hiding by meaningless nick will filter out my name from the technical book searches. I'm sure, he knows how to configure Google search to do this. Happy coding!
Jim L wrote: BTW ... remind me to filter out "Yakov Fain" from technical book searches.
Jim L wrote: Wow. Your arrogance is a bit much here. You hire people that are smart and can come up to speed quickly, especially with newer technologies. I actually had an interview with someone a few years ago that has a very similar style to yours. He liked to show how much more he knew about Java than I or anyone else did, until I blew him away with a question of my own (related to threads and JDBC). After that, I thanked him for his time and informed him I would not be interested in the position. The look on his face was priceless.
mohamed adam wrote: I believe that java developer must be good enough with java but the most important too in my vision is how much he love java .. if he like it too much he can learn more and more not depending on his Job and it's related technologies. If you don't mind Sir , Could You plz tell us the 10 levels of skills with flex developers because I have good knowledge with adobe flex and certified java programmer too and now I making integration between them and I love to know all requirements to get good work with those 2 wonderful technologies. thanks M.Adam
rdgflex wrote: I think the author has an outdated paradigm for what software development as become. It's no longer about being a "Java developer" or "C/C++ Developer" anymore. Now, the demands of the web required developers to be jack of many languages, which implicitly means master of none. Let's face it. To be a "Java developer", per the author's standards, that alone requires years and years of experience. Today, as a typical web developer, the breadth of knowledge required of me is staggering. Again, analogous to my statement above, increased breadth is inversely proportional to depth. As a web developer, I must know HTML, CSS, Javascript, Flex, Flash, Actionscript, XML, XSLT, Java, Spring and Apache CXF frameworks, MySQL, DB2, Sybase, Oracle, RPG, CLP, DDS, JBoss, Tomcat, iSeries, Linux. Oh, and, of course, my employer doesn't want the expense of a graphic artist, and so I must know quite a bi...
Greg Lucas wrote: I have a thought about the majority of the posters here: if your coding is as bad as your grammar, it is a wonder any of you have jobs. I'll make an allowance for those with English as a second language, but you native speakers should be ashamed. They make these tools - word processors - that come with amazing tool subsets such as spelling and grammar checkers. Consider checking those things out. Perhaps you would appear less illiterate online. The points of your posts are completely obscured by your inarticulate use of the English language.
Alessandro Ronchi wrote: Hi Yakov, I really take into consideration what Joel Spolsky says about job interviewing: hire only "smart and get things done" people. If you are smart enough, gaining new skills will only be a matter of weeks. If you get things done (gtd) you will be productive. This is also our approach in hiring people. Well, to be honest my company is very small and actually we only hired one person. He didn't know anything about Flex, had only some old fashioned PHP coding skills but we mentored him a lot and within a few weeks he became productive. Even if he is very young and never had the chance to program in assembly on 8 bit machines as we did. But he is smart and get things done. Smart/gtd people are hard to find on the job market, usually they are all hired or aren't on the job market because they are young students (we offered our employee to work with us before he finis...
tahoekid wrote: I've been a professional software engineer for over 25 years. Oracle, Borland, Novell. A handful of unknowns. I find it curious how the software interview has changed over the years. You write code on a whiteboard to solve some mini puzzle. Software Engineering is the only profession that does this. If you are an architect, I don't think they ask you to design a bridge during the interview. If you're a fireman, they don't set the trash can on fire and see if you can put it out. What should matter is what you have already accomplished, and what your design was. Then do a full background check on references to make sure it is not B.S. If you ask a whiteboard question, instead of having that person write code from scratch, have a pre-written piece of code and ask, "what does this do?", and "How would you improve it?". You will learn a lot more about the interviewee than having them writ...
dr eese wrote: This problem is not unique to Java. Try to find programmers who can hand craft simple html code, or who have a working knowledge of databases beyond how to create a table in Access. They are out there, but they are a small minority. And, you certainly cannot tell who they are from a resume or interview. Sit them down and have them create something that actually works. Concerning comments by JavaServedHot, I could not disagree with you more. I have interviewed a lot of people with your background, and even hired a few. That's how I learned that the only way to hire people is to sit them down and have them demonstrate they can do what they say they can do.
wrote: Very Interesting debate. Here is my input. Confession time. I have made a career out of fibbing about of java skills.I switched from mainframes to java to content management to portal to the next hot technology. Like they say proof is in the pudding. I have been a consultant all my life. Not to blow my own horn but I have never had a gap between my umpteen gigs I have done so far. I wouldn't call myself an expert at any of the technologies I have worked in but I have written decent code and never had any complaints about my code. Google has been my friend in my quest to learn new technologies on the job. So in my experience if you can ace a Java interview just by reading up on the technology and can learn it on the job go for it. This is the classic chicken and egg situation and this in my opinion is one way to break the deadlock.(Cant finish the post without throwing a techie term)
taurec wrote: @hell2009 I think 2 points: its a lot code for only logging messages - just write log.debug(msg); and configure your logging framework right. But writing it that style has also pros when used right - log.isDebugEnabled() should be used to prevent evaluating an expensive toString()-call on your object, so I think it would be OK to write it like private void debug(Object msg) { if (log.isDebugEnabled() && msg != null) { log.debug(msg.toString()); } } Well thats only about the code, probably the real question is why he uses logging for debugging code (instead of a debugger) ..
JulesLt wrote: One problem is that you can just keep going - if you stop at the level of JDBC or JPA or even SQL, then your developers probably don't know anything about the physical side of storage - I recall an experienced developer writing tens of thousands of files into a directory and access speeds slowing at n/2. Obvious in retrospect (the OS didn't have a binary index of the file structure) - but everything is obvious in retrospect. Another problem is going to be work experience - within my team it's very hard to ensure that everyone gets a breadth of experience, simply because the work we do is largely based on customer requirements, and a lot of it basically translates down to bespoke web front ends onto existing code, and marginal tweaks - add an attribute to an object and map it to the front end and database - very much the kind of repetitive work Java frameworks are designed to acce...
visionary1usa wrote: Einstein was thought incompetent. Perhaps the interviewer here needs to humble himself a bit. I am so tired of interviewers who think java is the last word and also that the goal of an interview is to prove they are the smartest person in the room. Interviewers have the home field advantage, and most development interviewers are INTJ/ENTJ; Can you say judgemental, poor long-view thinking, and prone to ruts? No wonder some candidates have "test anxiety". I peg the IQ tests just fine... I could care less for memorizing what I can look up... I have sufficient skills and know where things are found... My code is usually elegant to the expert... And I consistently bring PRODUCTIVITY breakthroughs; It comes from thinking different - not the same. If you hear a little more contempt than you expect in these replies... MAYBE its not all the interviewees fault. My response to an egghead questi...
visionary1usa wrote: I would love to know what anyone thinks they are writing that is so new that it takes 5 experts? I think expert developers learn how to write less code - making way for less expensive coders for the light work. That's called effectiveness and efficiency - its called modern development - its called ROI. If job one is not making the work simpler - and thus reducing the project risk - I submit that the interviewer is more in love with java than results. I have seen projects where 500 man-years became 2 man-years; I have seen 10x productivity improvements along with 5x quality improvements. It did not come from knowing java or design patterns - It came from finding real leverage. I see too many developers going straight to code from requirements - ZERO analysis. Great products and companies are made with leverage - not simply execution in a known and perhaps worn programming language....
deejay wrote: There are these case that most of the IT Professionals (Developers/Programmers) do not know how to put it words when it comes to interviews, or have difficulties in expressing their answer. Just like to other mentioned here, give them an actual hands-on test sets, give them the requirements of the problem and how will they attack the problem using their prepared tools. But if you are looking for the more matured or real gurus, the scenario-based interview, just like the one given above, will separate it definitely. And it is really very true that frameworks are very overwhelming nowadays in Java world, and it also sad that some employers are looking for lots and lots of these overwhelming Java Technologies. And if you do not know a few, you might land any job at all. And this might be one of the reasons that drive the IT industry today.
Gilberto Olimpio wrote: I've been working as a software developer for more than 20 years now and I confess that I'm always having problems to sell myself on the interviews. I started with Z80 Assembly (no debugger, no compiler) and I used to write the code in a peace of paper first and translate it to hex code (good old times). Also I was a C/C++ developer for more than 10 years and I used to read dozens of tech books/magazines. When I started with Java (9 years ago) the things started to change and nowadays I don't think books are so important, and here start my "interview problems". My first Java Web application was developed using only Servlets and JDBC and I built my own multi-threaded connection pool. But if someone ask me, in an interview, to write a simple servlet... panic... I'll have a hard time to remember what class I have to extend and all its "post/get" methods...etc... Am I unqualified for t...
SOA World Latest Stories
DevOps promotes continuous improvement through a culture of collaboration. But in real terms, how do you: Integrate activities across diverse teams and services? Make objective decisions with system-wide visibility? Use feedback loops to enable learning and improvement? With technolog...
The past few years have brought a sea change in the way applications are architected, developed, and consumed—increasing both the complexity of testing and the business impact of software failures. How can software testing professionals keep pace with modern application delivery, given...
"WineSOFT is a software company making proxy server software, which is widely used in the telecommunication industry or the content delivery networks or e-commerce," explained Jonathan Ahn, COO of WineSOFT, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at ...
There is a huge demand for responsive, real-time mobile and web experiences, but current architectural patterns do not easily accommodate applications that respond to events in real time. Common solutions using message queues or HTTP long-polling quickly lead to resiliency, scalability...
SYS-CON Events announced today that Synametrics Technologies will exhibit at SYS-CON's 22nd International Cloud Expo®, which will take place on June 5-7, 2018, at the Javits Center in New York, NY. Synametrics Technologies is a privately held company based in Plainsboro, New Jersey tha...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is founda...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON Featured Whitepapers
ADS BY GOOGLE