Archive for April, 2006

Some questions to ask when recruiting Java programmers

I had the fortune to participate in interviews for some contract Java candidates recently for my client. These were, as the market goes, between average and high daily rate people – typically 5+ years Java experience, 10 years in the IT at least.

I set them a few Java questions just to see what level of competence they have, and what their OO skills are like, as these transcend a specific language and somebody with a solid grounding programming will typical shine on these irrespective of their current language mindset. However all were presented in a Java context for these Java candidates.

The correct answer was not so important as the actual answer and explanation given. This gave an insight into mindset and attitude, and willingness to learn.
The questions were:

  1. What is the primary performance difference between Vector and ArrayList
  2. How do you avoid deadlock with synchronized blocks when you need to acquire multiple lock objects?
  3. What issues if any are there with calling virtual methods from a constructor?
  4. What is the quickest way to divide an integer by 8?

To my amazement not a single person got them all right, in fact the highest score was one, and the only question anybody got right was the first. This was after me proferring some decent hints in many cases – I don’t like to make people sweat.

To be frank I wasn’t expecting anything like such poor responses. I’ve been tested previously in interviews on 68000 assembly language constructs I haven’t used for 10 years when going for a Windows C++ job, and had no problem. I am by no means a genius in this industry – there are a great many people smarter than I!

The interview environment certainly caters for some lack of mental clarity, and I will certainly allow for that. Also the wording of some questions could present people with problems. However it is just amazing that experienced programmers cannot instantly answer question 4 without hesitation, and pretty surprising if a Java developer can’t get question 1 right – it’s basic stuff.

Question 4, the answer being a simple logical shift of 3 (n >> 3), is such a fundamental concept of computer programming you have to worry about people who can’t grasp it. “I never had to use it” is not an excuse – this betrays the way you have learned about computer programming. It implies that you may not fully understand bytes, memory addressing, binary operators and so on.

Questions 2 and 3 are certainly more advanced. 2 is interesting because it reveals any insights they might have into concurrency. 3 is obscure but shows OO skills for people that pick it up. When you get responses like “What is a virtual method” or just blank looks you know that you’ve an “IDE Wizard Jockey” on your hands and not a true OO developer.

The ultimate outcome of the experience was personal dismay and a feeling of inevitability with regard to the often poor quality of many large IT efforts. It’s amazing that some people are getting jobs that pay circa £400-£600 per day and they don’t even have some fundamental programming knowledge.

It reminds me to go and re-read the “Beware the Evil Wizards” chapter in The Pragmatic Programmer.

  • Twitter
  • Slashdot
  • Delicious
  • Evernote
  • Share/Bookmark

13

04 2006

Productivity and Getting Things Done

I’ve caught the GTD bug and I’m currently reading David Allen’s “Getting Things Done” book while also ploughing into using kGTD (an enhancement for OmniOutliner Pro) to try to control the maelstrom of tasks that enter my inbox.

It’s going very well so far, and now I’ve just plugged my brain in and got WordPressDash installed so that I can blog entries without having to fire up Firefox to use the WordPress interface. WordPress still plays funny with Safari :(

  • Twitter
  • Slashdot
  • Delicious
  • Evernote
  • Share/Bookmark

05

04 2006

AnyWare is now an authorised JIRA reseller

We’re pleased to announce that we are now authorised resellers of Atlassian’s excellent JIRA issue tracker. Based in the UK, we are able to provide localized JIRA advice, consultancy, customization and support.

This is rather exciting because we have been ardent JIRA admirers for several years now, and we’ve seen how it has been able to turn around the QA and productivity of companies who don’t yet have satisfactory issue tracking infrastructure.

JIRA is an extremely flexible web-based issue tracker that has an overriding simplicity to its use, but with great statistics and reporting features for managers. While many web-based applications are clunky and slow, by comparison JIRA is a wonderful pleasurable experience! JIRA licenses are server based, not by number of users, and prices start from £680 plus VAT.

We have already deployed JIRA with three clients, two for software development issue tracking, and another for general customer service enquiry handling for a high street soft drinks brand.

Please contact us for further details.

  • Twitter
  • Slashdot
  • Delicious
  • Evernote
  • Share/Bookmark

05

04 2006