Re: Shortage of qualified Java programmers
- From: Bjorn Borud <borud-news@xxxxxxxx>
- Date: 13 Jun 2005 03:39:00 +0200
[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
.
- Follow-Ups:
- References:
- Shortage of qualified Java programmers
- From: eglato
- Shortage of qualified Java programmers
- Prev by Date: Re: display the form values from view page
- Next by Date: Re: Indentation (Re: finally block does not complete normally - Eclipse)
- Previous by thread: Re: Shortage of qualified Java programmers
- Next by thread: Re: Shortage of qualified Java programmers
- Index(es):
Relevant Pages
|