Welcome!

Adobe Flex Authors: Matthew Lobas, PR.com Newswire, Shelly Palmer, Kevin Benedict

Related Topics: Adobe Flex, Java IoT, Open Source Cloud, Eclipse, Machine Learning

Adobe Flex: Blog Post

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

More Stories By 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

Comments (37) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
pkumar 10/14/09 04:47:00 PM EDT

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 08/13/09 12:11:00 PM EDT

@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 08/06/09 06:12:27 AM EDT

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.

miketheprogrammer 08/03/09 10:20:14 PM EDT

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 08/03/09 09:01:37 PM EDT

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!

Jiml521 08/03/09 01:02:49 PM EDT

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

Jiml521 08/03/09 11:33:14 AM EDT

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.

adamlee 08/01/09 08:42:02 AM EDT

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 07/25/09 07:13:00 PM EDT

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

gwlucas 07/24/09 11:03:07 PM EDT

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 07/24/09 03:52:00 AM EDT

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

tahoekid 07/24/09 12:03:00 AM EDT

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.

dreese 07/22/09 08:25:34 AM EDT

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.

JavaServedHot 07/21/09 12:57:21 PM EDT

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 07/21/09 05:13:00 AM EDT

@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 07/21/09 04:25:00 AM EDT

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 accelerate.

There is little room for them to learn new skills in doing this, nor are we in the position to afford vanity projects. It is really the same work that COBOL programmers did. But that doesn't mean they are bad developers, more that the industry doesn't really have large numbers of positions that can develop 'deep skilled' developers.

A couple of months back we drew up a list of 'what new developers have to learn to be productive' and it's amazing what it looks like compared to the early 90s. And to a degree I am suspicious of someone who goes to far the other way (who knows many languages and frameworks) as I would question whether they have the practical knowledge that comes from working for years with something.

visionary1usa 07/20/09 11:19:00 PM EDT

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 question sometimes wants to be - "I get paid $XX/hr to answer that question; check my references; and quit pretending you are competent as an interviewer."

visionary1usa 07/20/09 11:04:00 PM EDT

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.

Commodity java - even expert java - five at a time - means slow wits in the analysis & design world. Think iPhone - not basic palm or pocketpc - quit rushing to code - find simplicity, create leverage, and quit with all the superfluous KLOCs; If it is written already, then re-use... that is the point of objects and java. Your customers and shareholders will thank you. Spewing code comes slowly and only after you have run out of ideas. I will take the Z80 guy... because I bet he knows the meaning of economy.

deejay 07/20/09 11:04:00 PM EDT

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.

golimpio 07/20/09 10:34:18 PM EDT

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 the job ? I don't think so, I'll not take more then one minute to find the javadoc on "google" or in a book. I just started to think different: instead of memorize all the syntaxes, I started to learn how to search for it (in a efficient way). This also make it easy to learn/apply other languages and technologies.

My point is: I still know how to developer great software, so, how can I prove it on an interview ?

Sorry by the long post.

UncheckedException 07/20/09 10:24:40 PM EDT

I think a lot of the posters here are quite correct when they point out it's not necessarily the candidates themselves that are the issue, but the expectations of those candidates given their level of expertise and, most importantly, the amount of money being offered for those positions. You can't leave the latter out of the question given people who are really good at what they do often won't work for less than what they perceive to be top dollar. `Competitive` when applied to salary level is a synonym for `average`, and for average money the best you can hope for is `average` candidates. I'm not excusing people who fudge their resumes to get interviews they shouldn't, but it takes a fair amount of time to come up to speed on any of the frameworks (Spring, Hibernate, Flex) let alone all of them in addition to the Java language and the J(2)EE framework.

hell2009 07/20/09 09:56:37 PM EDT

@ajainy

What is wrong with this code ? Could you elaborate

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

visionary1usa 07/20/09 08:54:31 PM EDT

Let's see... All those things designed to make life easier(e.g. Spring)... we now have to feel bad for using them? These are signs of language and domain maturity - that people can generate useful code without spending their lives in the language is good news, not bad. Companies want productivity - understanding all layers of the stack is certainly being an expert - but companies want to get solid features out the door - period. Understanding the stack is the booby prize fought over by people with no lives. To think all practitioners need to squander their precious lives chasing this one language with unwavering zeal - what about python, perl, php, c, c#, ruby, ... ? Who anymore is paying to train anyone? We bury our practitioners with a complete lack of covergence on anything... how many ORM tools should we be expert on? We want to buy and are unwilling to build. And even when you are good, the industry pays poorly for your efforts - ours is the fastest learning curve among all - doctors, lawyers, accountants - no one has to pedal as fast as us. To ask candidates simple conformance - to expect no effort in the interviewing process - sorry; Life is always hard when you need an expert. If you want an EJB star - you should have started queuing him up years ago. To need 5 of anything specialized in a hurry means someone planned poorly. WHich part of any of this is the interviewer ready to own? Perhaps the industry needs to figure out how to stop mushrooming the complexity and converge instead on some common foundations again. Before the web - if you wrote C well - you had a job; You were a unix guy, a microsoft guy, or an embedded guy - and you wrote system code or high-level... you had a good job fresh out of school. Have we made things better for ourselves - or are we just inventing incessantly new treadmills to jump on?

andyjnsn 07/20/09 05:39:04 PM EDT

Unfortunately, if you look carefully at most of the postings for Java developers, they aren't really looking for Java developers at all. They are really looking for people who have skills in a very particular framework in a very particular vertical market. They aren't really looking for developers at all. They are looking for people who can "plug and play".

jayesh_nazre 07/20/09 05:17:37 PM EDT

I think it’s easy to judge others especially when you are in the world of writing books. Do not take my comments in the wrong way. But by just interviewing five people; it would not be wise to come to any conclusion (unless the objective of the author is to create a sensational blog/article to get good ratings).

Well if you believe that there are smarter people out there than you then; I can ask you questions which could result in you not answering some of them; although I agree there are some questions that are pretty basic; my first critical comment on your blog is fire the HR people who brought that resume to you in the first place; as the root cause of the problem lies not in those guys but those HR guys who do a word search and rely on individuals who talk about the baseball score / football score……...). I have worked in this industry for 15+ years and I have witnessed the deterioration in IT industry across board. When there is demand there is supply (quality goes for a toss, quantity matters more bodies more billing; its so bad; and do not pretend to be a holy cow; I am assuming when you provide estimates to your customer what do you say; it can be done in 40 hours or create a project plan with all those testing cycles and management overhead to charge 200 hours; just to squeeze profit; oops I forgot there is a new term in use management reserves; or much better unknown unknowns……:).

Long story short, if you were doing system programming and working on low level programming languages like C and remembered your engineering days - Data Structure books then you know things haven’t changed a lot whether its iBatis (really the fight between ORM and writing stored procedures and iBatis is a compromise) , Hibernate (really ORM concept), Spring (really a “mini-me” version of Enterprise application Server containers) etc the list goes on and on…….So even some of the java specifications are evolving, Remember EJB3 is completely new from EJB 2.1 and where do you think EJB 3 learned from (hibernate). I am not including Microsoft’s attempted effort of LINQ and now Entity Framework into this mix as they are special or at least they claim to be (remember its service pack in their world not bugs)

Bottom line is those guys did what their HR guys told them to do so that their resumes could be picked from the 1000’s your HR gets every day, so here is another suggestion not only fire the HR from your company; remove the company those guys you interviewed; from the preferred vendor list (if you have any)

polydectes 07/20/09 04:50:04 PM EDT

I've been an interviewer for a number of years and just recently had the tables turned on me as I completed a new job search for a high-level development position.

I agree with you 100% that a candidate must absolutely have the skills necessary to do the job. I also agree with you that Googling for an answer is not a replacement; however, Googling is an important skill that can serve its purpose in the (hopefully) rare situation, but being able to find the page with details on Mark-Sweep Garbage Collection or when to use Spin-Lock -vs- Semaphore doesn't mean the candidate understands it.

In my opinion, it is more important to understand what you are doing than it is to know the syntax of how to do it within the language, because if you know the what, then you can work in multiple environments, but if you only know the how you are limited to the language itself.

Because of this, I would much rather hear someone tell me how the ActiveRecord system in Rails builds the SQL statements, or how to properly test a module in addition to, or even in lieu of having them write the code.

@ajainy -- on the debug output routine, I would ding the guy only if the code was created after 2000. log4j wasn't common until after that and java logger didn't come until later still. So it is quite possible that older code like this still exists. However, I would ding their company management for not providing sufficient time and resources to refactor the system to handle java logging properly.

polydectes 07/20/09 04:49:00 PM EDT

I've been an interviewer for a number of years and just recently had the tables turned on me as I completed a new job search for a high-level development position.

I agree with you 100% that a candidate must absolutely have the skills necessary to do the job. I also agree with you that Googling for an answer is not a replacement; however, Googling is an important skill that can serve its purpose in the (hopefully) rare situation, but being able to find the page with details on Mark-Sweep Garbage Collection or when to use Spin-Lock -vs- Semaphore doesn't mean the candidate understands it.

In my opinion, it is more important to understand what you are doing than it is to know the syntax of how to do it within the language, because if you know the what, then you can work in multiple environments, but if you only know the how you are limited to the language itself.

Because of this, I would much rather hear someone tell me how the ActiveRecord system in Rails builds the SQL statements, or how to properly test a module in addition to, or even in lieu of having them write the code.

@ajainy -- on the debug output routine, I would ding the guy only if the code was created after 2000. log4j wasn't common until after that and java logger didn't come until later still. So it is quite possible that older code like this still exists. However, I would ding their company management for not providing sufficient time and resources to refactor the system to handle java logging properly.

jeff_s 07/20/09 01:26:00 PM EDT

The problem is that the enormity of technologies and libraries and frameworks, even within just the Java world, is overwhelming for individual developers.

It's unreasonable to expect individual developers to have mastery, or even journyman level competency, over every technology on your laundry list. It's impossible.

What does a developer do? They have to pick and choose a subset of technologies to train in, or get experience in, and go from there.

But then employers expect to meet very specific, and oftentimes long, laundry lists, and then they bitch about nobody meeting all of the requirements of said laundry list.

As for a Java developer, a reasonable laundry list should include the following:

1. Understanding and productivity with the Java language itself. This much is obvious.

2. Understanding of JDBC and SQL
3. Understanding of ORM. Any ORM framework will do.
4. Understanding of managed beans - either of the EJB variety, or Spring container variety. Either will do.
5. Understanding of the web tier - JSPs and Servlets, and any framework will do. Understanding of the differences between andan Action framework (and traditional MVC), and a component framework, is a plus.
6. Understanding of GUI libraries, either Swing or SWT, a plus.
7. General understanding of OOP.
8. Build tools - Ant or Maven.
9. Understanding of unit testing JUnit, or TestNG, or other, will do.

Notice this list here is general, and not specific.

Getting into a laundry list of specific frameworks, web technologies, containers, build tools, IDEs, etc, is a strategy that is bound to fail. As an employer, if you are utilizing very specific technologies, you should very much expect to do a little training of your staff, or at least allow for learning curves, provided the candidate has proven and demonstrable qualities in the above "general" list.

In a way, it's much easier, for both developer and employer, in the Microsoft .Net world. For those candidates (and positions) the only requirements are C# or VB, Visual Studio, WinForms, ADO.Net, and ASP.Net. Other stuff, like NAnt, NHibernate, and maybe Silverlight, are gravy.

But in the Java wolrd, it gets much more complicated for both developer and employer, in terms of finding qualified candidates, and developers finding jobs where they can meet the "laundry list".

But if both employer and developer can emphasize on the "general" stuff, and expect training/learning curves on "specific" stuff, both parties would be much better off.

techie.Brandon 07/20/09 12:48:00 PM EDT

jriddler,
You can't be serious?! No amount of googling can compare to a comprehensive knowledge of the underlying fundamentals. While you are busy banging away at google I will be on to the next project, because I know the technology and what the symptoms and situations an issue can stem from. Google is a wonderful tool, but by no means a replacement for everyday knowledge. I don't understand how people can even consider themselves a programmer if they don't invest their time in understanding and practicing. You will find a stack of books next to my bed as high as my lamp... I just haven't yet put them on the shelf since reading or I reference them too much still.

Anatole Tartakovsky 07/19/09 10:10:00 PM EDT

Yakov,
I would guestimate that all five would also fail simple SQL questions. I see it even a bigger problem as for them Java ORM tool is the Database language and they do not need to know what happens under the hood there either. That in turn causes much bigger problem of application being unreliable/incorrect - and impossible to fix.
As far as googling the code - it does not work too well. You can get quite a lot of code snippets online - but almost none can be placed into production system. They are usually overly simplistic ways to approach the problem and need 200%-300% of supporting code to make it usable for business applications.
The main issue is in quantity over quality approach to the application development. We have diminishing number of professional developers driven out by decreasing compensation and increasing number of unqualified people that came from other fields driven by demands of ongoing expansion of Internet. As long as companies would settle for low quality staff we would have old recepie of "pitting out fire with gasoline".

Personally, I do not hire people to work on MY projects unless I believe they are somewhat better them me in the areas I want them to concentrate on. I might have few junior people with potential to work on direct client projects that do not afford seasoned developers - but is I see them failing to learn fast they are out regardless of the profitability - they will become a problem in no time

Sincerely
Anatole Tartakovsky

jens 07/19/09 09:53:06 AM EDT

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.

ajainy 07/19/09 09:40:12 AM EDT

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.

yakovfain 07/19/09 08:48:17 AM EDT

@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.

davidnwd 07/19/09 06:31:12 AM EDT

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.

jondcruz 07/18/09 06:58:43 PM EDT

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?)

adrianoc 07/18/09 05:31:30 PM EDT

@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).

jriddler 07/18/09 11:50:07 AM EDT

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.

@ThingsExpo Stories
Cloud-enabled transformation has evolved from cost saving measure to business innovation strategy -- one that combines the cloud with cognitive capabilities to drive market disruption. Learn how you can achieve the insight and agility you need to gain a competitive advantage. Industry-acclaimed CTO and cloud expert, Shankar Kalyana presents. Only the most exceptional IBMers are appointed with the rare distinction of IBM Fellow, the highest technical honor in the company. Shankar has also receive...
"We view the cloud not as a specific technology but as a way of doing business and that way of doing business is transforming the way software, infrastructure and services are being delivered to business," explained Matthew Rosen, CEO and Director at Fusion, in this SYS-CON.tv interview at 18th Cloud Expo (http://www.CloudComputingExpo.com), held June 7-9 at the Javits Center in New York City, NY.
The Founder of NostaLab and a member of the Google Health Advisory Board, John is a unique combination of strategic thinker, marketer and entrepreneur. His career was built on the "science of advertising" combining strategy, creativity and marketing for industry-leading results. Combined with his ability to communicate complicated scientific concepts in a way that consumers and scientists alike can appreciate, John is a sought-after speaker for conferences on the forefront of healthcare science,...
WebRTC is great technology to build your own communication tools. It will be even more exciting experience it with advanced devices, such as a 360 Camera, 360 microphone, and a depth sensor camera. In his session at @ThingsExpo, Masashi Ganeko, a manager at INFOCOM Corporation, introduced two experimental projects from his team and what they learned from them. "Shotoku Tamago" uses the robot audition software HARK to track speakers in 360 video of a remote party. "Virtual Teleport" uses a multip...
Data is the fuel that drives the machine learning algorithmic engines and ultimately provides the business value. In his session at Cloud Expo, Ed Featherston, a director and senior enterprise architect at Collaborative Consulting, discussed the key considerations around quality, volume, timeliness, and pedigree that must be dealt with in order to properly fuel that engine.
In his session at Cloud Expo, Alan Winters, U.S. Head of Business Development at MobiDev, presented a success story of an entrepreneur who has both suffered through and benefited from offshore development across multiple businesses: The smart choice, or how to select the right offshore development partner Warning signs, or how to minimize chances of making the wrong choice Collaboration, or how to establish the most effective work processes Budget control, or how to maximize project result...
"Akvelon is a software development company and we also provide consultancy services to folks who are looking to scale or accelerate their engineering roadmaps," explained Jeremiah Mothersell, Marketing Manager at Akvelon, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
IoT is rapidly becoming mainstream as more and more investments are made into the platforms and technology. As this movement continues to expand and gain momentum it creates a massive wall of noise that can be difficult to sift through. Unfortunately, this inevitably makes IoT less approachable for people to get started with and can hamper efforts to integrate this key technology into your own portfolio. There are so many connected products already in place today with many hundreds more on the h...
DXWorldEXPO LLC announced today that ICC-USA, a computer systems integrator and server manufacturing company focused on developing products and product appliances, will exhibit at the 22nd International CloudEXPO | DXWorldEXPO. DXWordEXPO New York 2018, colocated with CloudEXPO New York 2018 will be held November 11-13, 2018, in New York City. ICC is a computer systems integrator and server manufacturing company focused on developing products and product appliances to meet a wide range of ...
JETRO showcased Japan Digital Transformation Pavilion at SYS-CON's 21st International Cloud Expo® at the Santa Clara Convention Center in Santa Clara, CA. The Japan External Trade Organization (JETRO) is a non-profit organization that provides business support services to companies expanding to Japan. With the support of JETRO's dedicated staff, clients can incorporate their business; receive visa, immigration, and HR support; find dedicated office space; identify local government subsidies; get...
René Bostic is the Technical VP of the IBM Cloud Unit in North America. Enjoying her career with IBM during the modern millennial technological era, she is an expert in cloud computing, DevOps and emerging cloud technologies such as Blockchain. Her strengths and core competencies include a proven record of accomplishments in consensus building at all levels to assess, plan, and implement enterprise and cloud computing solutions. René is a member of the Society of Women Engineers (SWE) and a m...
Explosive growth in connected devices. Enormous amounts of data for collection and analysis. Critical use of data for split-second decision making and actionable information. All three are factors in making the Internet of Things a reality. Yet, any one factor would have an IT organization pondering its infrastructure strategy. How should your organization enhance its IT framework to enable an Internet of Things implementation? In his session at @ThingsExpo, James Kirkland, Red Hat's Chief Archi...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
Personalization has long been the holy grail of marketing. Simply stated, communicate the most relevant offer to the right person and you will increase sales. To achieve this, you must understand the individual. Consequently, digital marketers developed many ways to gather and leverage customer information to deliver targeted experiences. In his session at @ThingsExpo, Lou Casal, Founder and Principal Consultant at Practicala, discussed how the Internet of Things (IoT) has accelerated our abilit...
Organizations planning enterprise data center consolidation and modernization projects are faced with a challenging, costly reality. Requirements to deploy modern, cloud-native applications simultaneously with traditional client/server applications are almost impossible to achieve with hardware-centric enterprise infrastructure. Compute and network infrastructure are fast moving down a software-defined path, but storage has been a laggard. Until now.
Digital Transformation is much more than a buzzword. The radical shift to digital mechanisms for almost every process is evident across all industries and verticals. This is often especially true in financial services, where the legacy environment is many times unable to keep up with the rapidly shifting demands of the consumer. The constant pressure to provide complete, omnichannel delivery of customer-facing solutions to meet both regulatory and customer demands is putting enormous pressure on...
The best way to leverage your CloudEXPO | DXWorldEXPO presence as a sponsor and exhibitor is to plan your news announcements around our events. The press covering CloudEXPO | DXWorldEXPO will have access to these releases and will amplify your news announcements. More than two dozen Cloud companies either set deals at our shows or have announced their mergers and acquisitions at CloudEXPO. Product announcements during our show provide your company with the most reach through our targeted audienc...
@DevOpsSummit at Cloud Expo, taking place November 12-13 in New York City, NY, is co-located with 22nd international CloudEXPO | first international DXWorldEXPO and will feature technical sessions from a rock star conference faculty and the leading industry players in the world.
DXWorldEXPO LLC announced today that the upcoming DXWorldEXPO | CloudEXPO New York event will feature 10 companies from Poland to participate at the "Poland Digital Transformation Pavilion" on November 12-13, 2018.
22nd International Cloud Expo, taking place June 5-7, 2018, at the Javits Center in New York City, NY, and co-located with the 1st DXWorld Expo will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud ...