Re: Shortage of qualified Java programmers



[eglato <eglato@xxxxxxxxxxx>]
|
| * Write a program that reads strings from a text file, one per line, and
| outputs a list of the unique strings along with their frequency of
| occurrence. For example, this input:
|
| Tuesday
| Friday
| Tuesday
| Saturday
|
| results in this output:
|
| Tuesday: 2
| Friday: 1
| Saturday: 1
|
| (To do this right they need to know about FileReader, BufferedReader, and
| some collections API stuff.)

no, first and foremost the candidate needs to be able to recognize the
fundamental problem that needs to be solved and present you with a
plan for a solution. knowing the exact APIs for the standard class
library of Java is what you have computers for -- not people.

personally, I keep forgetting the exact APIs for file IO, so I check
the Javadoc or I use whatever capabilities the editor provides for
assisting me in the utterly tedious task of remembering which part of
the IO plumbing that provides me with a neatly line-based interface.

if you were to test me, I'd probably fail because I didn't remember
every detail of the API. also, if you relied on such tests, you would
fail, because it would tell me something about your company: if these
are the skills you measure and decide by, you have no idea what you
are doing and I'd be foolish to work for you.

| * Write a program to compute the number of hours in the current day,
| correctly accounting for locale-specific time changes that might make the
| current day more or less than 24 hours in length. (Simple Date/Calendar
| API test.)

oh, I'd fail that one too. spectacularly. mostly because anything
having to do with calendars or even formatting of dates in Java is
wrapped in lots and lots of tediously involved APIs.

yech!


| * Suppose I have the following class:
| public class A { public String key; }
| Write the code to sort a list of A's in ascending order by "key" attribute
| using Collections.sort(). (Basic Comparator test).

why? it takes a reasonably, un-stressed candidate less than a minute
to figure out how a Comparator works given the Javadocs. after which
it is likely that the knowledge will stay with him for a while after
that.

the intelligent question to ask would be:

"would you rather use a Comparator or implement the Comparable
interface if you wanted to sort instances of class A and why"

I would probably even introduce and explain the Comparator and
Comparable interfaces, along with the other relevant API bits before
asking the question to ensure I didn't needlessly stress out the
candidate.


this would give the candidate a chance to show you skills that are far
more relevant when writing code than merely memorizing an API.

| When I first started this process I was actually concerned that such
| questions might be too easy for programmers with 3+ years Java
| experience.

I'd fail them. I've used Java (on and off) since 1996. I use Java
every day now. I work on 3-4 different Java projects simultaneously.
I'd fail those tests miserably.

because I don't even bother to remember every bit of API. because
most of the time I have far more difficult problems to tackle than
looking something up in the J2SE Javadoc.


| In fact the opposite has turned out to be the case. Some candidates
| even seem surprised that I expect them to know the core Java API and
| be able to use it to solve actual problems.

it *is* surprising. it is *very* surprising. it wouldn't be as
surprising if you were interviewing for C++ grunts, since it has some
real ugly warts you *must* know of -- but Java? No.


| I could understand if I were asking about obscure stuff like
| reference queues, but my questions generally pertain to basic
| aspects of the Java API that I use frequently in my work.

then you can't be doing anything very difficult, because what you are
talking about here is just simple plumbing that nobody really bothers
to memorize.


| Is my experience typical?

it is what I would expect, but it is symptomatic only of your poor
interviewing questions. I recently read a piece on interviewing
programmers written by Bill Venners. most of it I thought to be
rather obvious, but apparently there are still people who struggle to
think of meaningful ways of uncovering good programmers. anyway, the
article can be found at:

http://www.artima.com/wbc/interprog.html


| I read a lot about unemployment in the IT field, but it just seems
| to me that if unemployment were a significant problem there would be
| at least somewhat competent people sending out resumes looking for
| work, and I'm just not finding that to be the case. Of course my
| experience is limited to the Java job market in the Atlanta area and
| I can't speak for other technologies or locales.

your experience is limited, full stop.

-Bjørn
.



Relevant Pages

  • Re: Shortage of qualified Java programmers
    ... candidates are very hard to come by in the Atlanta area. ... that a candidate will list every Java technology in the world on his ... API test.) ... questions might be too easy for programmers with 3+ years Java experience. ...
    (comp.lang.java.programmer)
  • Re: Shortage of qualified Java programmers
    ... Good candidates are very hard to come by in the Atlanta area. ... I don't know whether there is an actual shortage of Java programmers in the U.S., or whether the situation is unique to our metro area, or whether we are just relying on the wrong recruiting companies. ... API test.) ...
    (comp.lang.java.programmer)
  • Re: Hidden features of java
    ... used would be how many programmers used a particular class. ... case that it should be removed from the API. ... yet both are extremely useful and arguably ... Another meaningful question is how many Java programs out there ...
    (comp.lang.java.programmer)
  • Re: Shortage of qualified Java programmers
    ... > Lately I have been conducting technical interviews to fill some Java ... > candidates are very hard to come by in the Atlanta area. ... > some collections API stuff.) ... > questions might be too easy for programmers with 3+ years Java experience. ...
    (comp.lang.java.programmer)
  • Re: NullPointerException
    ... > programmers do make that assumption. ... I told them how they can prevent NullPointerExceptions. ... > public boolean hasAddress() ... It was returned from some API. ...
    (comp.lang.java.programmer)