Viewing 40 posts - 1 through 40 (of 46 total)
  • Java tech tests seem to have got harder over the years?
  • flanagaj
    Free Member

    I have been a java programmer for over 16 years. The last 9 years were trader aligned in a fixed income finance role. I did my job as a programmer and was well regarded.

    The issue I am facing now is that every time I go for a front office java dev job in London I end up being given an algorithmic based test. These range from traversing a red/black tree through to writing a bubble sort for a linkedlist.

    In the whole time I have been programming, I have never had to do this stuff and having done Chemistry at uni and not CS it’s all rather alien.

    is this becoming the norm as it’s frustrating to be rejected on the basis of a tech test performed by having to write code on paper, when you know that your previous experience will easily enable you to do the role.

    keen to hear from others as to whether this is common across all industries or just investment banking jobs in London.

    Thanks

    molgrips
    Free Member

    Tell me about it. I’ve had some bastard hard tests on paper. One place, I thought I did pretty well but didn’t get it – I told the agent and he sighed and told me not to worry – he’d sent dozens of candidates and they’d all failed.

    I also sat a test once that was meant to be open book – without books or internet access.

    Read up on some computer science, and keep trying – eventually you’ll learn all the things they use for tests 🙂

    allthegear
    Free Member

    In the last three years as a freelancer, I’ve never been asked to do a coding test.

    Rachel

    poly
    Free Member

    We test our devs. The complexity of the test depends on the level of the job they are applying for. You wouldn’t get asked to do those tasks for a “graduate” position, but you might if algorithm design was key to the role you were applying for.

    They are not “on paper” (we use Hackerank) and people can google as much as they need to etc. I was a bit sceptical when we started doing it. I now wouldn’t employ anyone for a development role without seeing what they produce, its clear there are (i) CS graduates who can’t do even basic problem solving code; (ii) Experienced developers with many years experience in a narrow niche who can’t do much else (I’d see it as particularly important for someone who doesn’t have a formal qualification in CS.); (iii) Several people who have become “out of date” with modern approaches/techniques, or who claim to be proficient in a language but actually are just using generic approaches not optimal for that language.

    Its also a good way of seeing how much someone actually wants the job – up to 2 hrs doing a test is a reasonable commitment!

    Now it could be that these are crazy companies to work for with weird recruitment approaches – or it could be that they know exactly what they need and you don’t fit the bill.

    butcher
    Full Member

    Its also a good way of seeing how much someone actually wants the job – up to 2 hrs doing a test is a reasonable commitment!

    I’ve been given a few tests to do at home. Wayyyy longer than 2 hours. OK, the better you are the quicker you’re gonna get through them, but they’ve been in depth, to say the least.

    flanagaj
    Free Member

    I just find the practice of getting a candidate to write code on paper without internet access or an IDE really strange. It has no relevance to how you work in a real dev environment. The role was a BAU risk and p&l dev one, so not algorithm based as all of that is done using quant models.

    The job spec just stated a very good grasp of multi threading was required. The test regarding writing a blocking queue algo was relevant, but a bubble sort algo just seemed a little random.

    JulianA
    Free Member

    allthegear – Member
    In the last three years as a freelancer, I’ve never been asked to do a coding test.

    Rachel

    Lucky you!

    My last test was Christmas Eve and the one before that was a .Net 1.1 test which I aced. Horrible company and role, though.

    prettygreenparrot
    Full Member

    A bubble sort isn’t a normal day to day need. But it’s a pretty common ‘play with the language’ thing. Almost a next step from ‘hello world’.

    The paper test sound odd to me. Partly because it’d be tedious reviewing it. Maybe that was the purpose of the bubble sort: if that wasn’t done right you needn’t look any further.

    Hope you find the perfect job soon.

    molgrips
    Free Member

    I’d just like to add that I have also secured jobs by aceing tests 🙂

    footflaps
    Full Member

    Oddly enough, I’m only an occasional hacker but I’ve written loads of bubble sorts for linked lists over the years, first time was sorting high score tables in a game in 6502 assembler circa 1982…

    IA
    Full Member

    I tend to test folk by showing them code in an IDE and asking them to tell me what it does, then tell me what’s wrong/could be better, work through it with me.

    Seems a bit easier/fairer than asking them to code on the spot and you can tell if they know their way around code or not. Not a very in depth test of course mind.

    jca
    Full Member

    Similarly to IA, we prefer to give people some flaky code which has some obvious and some rather subtle bugs in it, and get the candidates to talk through what it does and suggest improvements and see if they can see what is broken with it. Also like to hear how they would write the code themselves if starting from scratch, where the ‘correct’ approach would typically involve using various library functions etc rather than cooking your own half-backed solution. This tends to give us a much better feel for the candidates knowledge of the language than traditional ‘write some code that does x’ tests.

    We’ve tried giving coding tests in the past (including bubble sorts, when we were after an algorithm developer with a CS degree – scarily most candidates did not know what a bubble sort was despite having the degree…). Overall candidates tend to either ace them, or fail abysmally, with no middle ground. Not sure they actually told us much though…

    molgrips
    Free Member

    I invented the bubble sort algorithm when I was a kid, before I’d read about it.. 🙂

    IA
    Full Member

    After seeing some crazy C++ code I’m thinking about giving tricky template questions to candidates and do ?*not* hire if they can solve them

    Saw the above as a tweet the other day and it amuses me, seems appropriate here 😉

    thecaptain
    Free Member

    Do people actually use bubble sort in real life? Maybe the way to pass the test was to politely suggest a better alternative.

    flanagaj
    Free Member

    Do people actually use bubble sort in real life? Maybe the way to pass the test was to politely suggest a better alternative.

    That too was my thought. What I am trying to deduce is how as a non CS grad do I ensure that I understand these CS principals without having to do a CS MSc?

    My experience in finance has been very much about having a very good understanding of concurrency and how to utilise the api without writing your own code.

    If I needed to be able to have a linked list impl that I could reverse I’d use the api as follows.

    package linkedlist;

    import java.util.Collections;
    import java.util.LinkedList;
    import java.util.List;

    public class LinkedListReverse {

    public static void main(String[] args) {
    List<Node> list = new LinkedList<>();
    list.add(new Node(1));
    list.add(new Node(2));
    list.add(new Node(3));
    list.add(new Node(4));
    list.add(new Node(5));
    list.add(new Node(6));

    list.stream().forEach(node -> System.out.println(node.getId()));

    //reverse
    Collections.reverse(list);

    list.stream().forEach(node -> System.out.println(node.getId()));
    }

    private static class Node {
    private final int id;

    public Node(int id) {
    super();
    this.id = id;
    }

    public int getId() {
    return id;
    }

    }

    }

    Maybe I missing something here?

    Cowman
    Full Member

    On the flip side, the new A level computing course states that all sorts of algorithms will be tested. Bubble sort, linear search, binary search, insertion sort etc. In 2 years time it’ll be on the GCSE spec.

    If your applying for a job that I’d expect to test that A level and in some cases GCSE knowledge can be recalled and applied.

    ade9933
    Free Member

    think they will become more not less frequent…

    http://www.wired.com/2015/04/hire-like-google/

    you could google Lazlo Bock too.

    flanagaj
    Free Member

    think they will become more not less frequent…

    http://www.wired.com/2015/04/hire-like-google/

    you could google Lazlo Bock too.

    That was what a friend of mine said to me earlier. He says the banks have basically started using the same type of questions being used by Facebook and Google when hiring.

    MrBlond
    Free Member

    I understand from the PhD quant developer sat next to me that this book is good reading for that kind of test

    http://www.amazon.co.uk/gp/product/098478280X

    flanagaj
    Free Member

    I understand from the PhD quant developer sat next to me that this book is good reading for that kind of test

    http://www.amazon.co.uk/gp/product/098478280X

    That’s reassuring as I ordered that earlier today 🙂

    Thanks

    footflaps
    Full Member

    Interesting, I’ve just ordered a copy…

    IA
    Full Member

    I’m not a quant but I do have a PhD (and have interviewed for google, odd process) – TopCoder has a lot of good exercises of the sort you might get to try, and is quite good in that it forces you to do them against the clock/in a stressful situation.

    footflaps
    Full Member

    and have interviewed for google

    Did you get the reject T-shirt?

    One of our Devs had one…

    molgrips
    Free Member

    What annoys me is the idea that knowing all this complex geeky stuff off the top of your head is important. It’s not. The job’s about analysing the problem clearly enough so that the implementation is simple.

    I was once asked what bit of code I was most proud of – and to show it if possible. The project I shared was extremely simple, nothing fancy in it at all. I explained that it was simple because of the way I’d analysed it removed the complexity. Got the job.

    molgrips
    Free Member

    I’d use the api

    I think the point of a test is to see how you solve a problem – and the api is actually someone else’s solution to the problem, not yours!

    bensales
    Free Member

    I think the point of a test is to see how you solve a problem – and the api is actually someone else’s solution to the problem, not yours!

    I’d expect my developers to be able to recognise when they need to use a specific algorithm (such as a bubble sort), and go find a tried and tested API for one. I’d be more annoyed if they spent time and effort re-inventing the wheel on standard stuff, and increasing the potential for more bugs in business code.

    Algorithm based tests are appropriate for development jobs that may require creation of new algorithms (cf Facebook backend, Google search, quants, etc) or for new grad hires, but not for most experienced business developer jobs. I’d rather set a business problem and have the developer talk to me about their processes for designing, developing, and most importantly, testing the software to solve that problem. I’d also ask to see examples for code they have worked on and have them talk to me about that code with authority.

    lemonysam
    Free Member

    The job’s about analysing the problem clearly enough so that the implementation is simple that you get the right results on Stack Overflow.

    buzz-lightyear
    Free Member

    The answer shouldn’t matter. Realizing and explaining how the problem is solvable does. If you can express this quickly in Java, that it also shows a strong language competence too.

    molgrips
    Free Member

    I’d be more annoyed if they spent time and effort re-inventing the wheel on standard stuff,

    Depends on the question. If it’s ‘solve this example business problem’ then yeah, using the API is dead right. If it’s ‘implement a bubble sort’ and you just use the api, that’s dead wrong 🙂

    ade9933
    Free Member

    Thing is the cost of recruiting the wrong person in contract or perm is high in wasted / time / effort / delays etc.

    With the tests, you do sometimes miss out on good (really good) guys, but the ones that you do get, usually are good too so it does cut out the guys who don’t know their eggs as well as some good guys.

    ..so they are not perfect but they do help.

    There has to be a balance though and some tests are overly long. One of my DevOps guys came up with an awesome test but it was the best part of a day’s work and the candidates just didn’t need to do it and walked in to roles down the road. We trimmed the test and it helps both of us.

    It is seriously amazing how many candidates are not up to the mark though (not just java devs) and with agents not being able to weed them out the tests help.

    Good luck!

    kcal
    Full Member

    I got made redundant from a long time programming job, a bit over 10 years ago. Went for a couple of interviews, one asked me to bring some of my work which was awkward; the other asked me to undertake a test both on site and multiple choice. Another one had an on site test (which I now recall was the Newton Raphson method, couldn’t recall it at the time).

    I don’t think I got any of the jobs ( 🙁 ) – maybe too long in the same environment didn’t help, maybe I just wasn’t quick witted enough. Probably true. Eventually moved locations, and only then got a job freelance working in town, with folk that knew and trusted me..

    scholarsgate
    Free Member

    Come and work at our place. Seems we’ll take anyone as long as they can spell jaba.

    flanagaj
    Free Member

    I’d be more annoyed if they spent time and effort re-inventing the wheel on standard stuff, and increasing the potential for more bugs in business code.

    That has been my argument for years now. I have seen smart devs implementing their own solutions when there is a perfectly good open source api that does the same thing.

    The whole point of an api is so you don’t go reinventing the wheel.

    I also think that too much emphasis is put on the tech test. I have seen really smart guys join an org, only to then embark on a one man mission refactoring code to how they think it should be done. Most then get bored half way down the line, leave and then the place is left with 2 different solutions to support.

    My theory is if you need a rocket scientist, then hire one, if you need someone to do BAU on a legacy system then you hire accordingly.

    molgrips
    Free Member

    I have seen smart devs implementing their own solutions when there is a perfectly good open source api that does the same thing.

    That’s the meaning of the phrase “a good programmer is a lazy programmer”.

    I also think that too much emphasis is put on the tech test. I have seen really smart guys join an org, only to then embark on a one man mission refactoring code to how they think it should be done

    Yeah.. a lot of geeks focus on the ideal technical solution, when what businesses need is the ideal business solution. Now, there are a lot of reasons why they very often overlap – but there are times when they don’t.

    Being able to spot this is why I am enjoying being a consultant at the moment.

    Klunk
    Free Member
    flanagaj
    Free Member

    “a good programmer is a lazy programmer”.

    That is freaky!! That is my mantra and I have never ever heard anyone else saying it. Such a true saying, but so few people actually get it.

    molgrips
    Free Member

    I didn’t invent it, I thought it was a well known phrase. It means you often spend twice the effort saving the effort, but the effort stays saved for the next ten years.

    bensales
    Free Member
    flanagaj
    Free Member

    the reddit interview question thread

    Thanks, but in all my years coding I have pretty much never needed to use any of that stuff. I know that’s no excuse, but all seems to bloody pointless!

Viewing 40 posts - 1 through 40 (of 46 total)

The topic ‘Java tech tests seem to have got harder over the years?’ is closed to new replies.