A couple of years ago I won an electric kickboard at the Javazone
conference. It happened like this. During a session, I was speaking
to an exhibitor. They were trying to find new hires, by asking us to
fill in a quiz. It was in Norwegian. I tried and despite the obvious
language challenge, managed to answer a reasonable number of
questions. When I was done, they asked me if I wanted to try again?
I said "sure, but how many times can I try?" "As many times as you
like." OK then ...
So I practiced it a few times. The next morning I saw that someone
had displaced me at the top of the leaderboard. Not only did you need
to get 100%, but the speed at which you answered was also significant.
I tried one last time, trying my best to navigate the Norwegian. In
the afternoon I went home with a very cool new toy.
I have done a few of these types of "let's find someone who can code"
quizes at conferences. What has struck me is not only how many of
these include questions on threading, but how many of the answers were
incorrect. For example: Is it possible to get a deadlock with a
single thread? I even famously commented on the Sun Certified Java
Programmer examination that I had found a question that had no correct
answer (https://www.javaspecialists.eu/archive/Issue120.html) Someone
from Sun Microsystems contacted me about this. The question was
indeed wrong and they removed it from the exam. And yes, it was *drum
roll* about threading.
Should the average Java developer know about threading? Well, um,
yes, he should. It is part of her knowledge tree, just like
networking, TCP, databases, functional programming, logic programming,
bitwise arithmetic and boolean logic. Let's not forget AI. It's part
of general education. But she will probably not use synchronized /
wait / notifyAll in his day-to-day work. What is faster: notify() or
notifyAll()?
That's not all.
When I teach my Extreme Java - Concurrency Performance Course,
I often hear students muttering that they will have to change the
answers in their interview questions. So, if you failed a job
interview because of a threading-related question, know that you did
not necessarily answer it incorrectly.
Let's fix this together and so try to make the world a better place,
in where Java programmers are evaluated on their ability to do their
job, rather than on how well they can write code that they will never
have to write.
I am doing a Heinz's Happy Hour Webinar on January 3rd at 16:00 UTC.
My topic will be: "Acing the Threading Questions At Your Next Job
Interview". And I need your help. If you are an interviewer, and
have such questions that you can share with me, please email them to
me, together with their supposed answers. Please make sure that you
have permission to make the question/answers public. I will anonymize
all the submissions, but you still need to make sure that you are
allowed to send them to me. Similarly, if you have faced difficult
questions, and would like to share them, please email them to me.
Again, only if you may.
The webinar will be free to attend, so please join:
https://www.javaspecialists.eu/webinars
Kind regards
Heinz
If you no longer wish to receive our emails, click the link below:
https://iw127.infusionsoft.com/app/optOut/8/a6ca3d5100f0d052/7569032/f30752fe45872b5f
Cretesoft Limited 77 Strovolos Ave Strovolos, Lefkosia 2018 Cyprus