0

I had a job interview last month and I was unsuccessful. I was told in advance that they will test my technical knowledge. So I prepared by best. The test was on piece of paper asking couple of questions and write a code. Bearing in mind software developer could be new path for me and it is new to me.

After the interview I did a little bit of Google research and found those same technical questions on the net. What is the expectation from those technical tests? Workable code? Is there right or wrong answer, for example I used for loop and writing it on piece of paper is not something I will ever get it right. I say this because during the education period, when we did our end of term exams were allowed to use our notes. Perhaps different companies from different countries the process/thinking may be different.

Thanks

closed as too broad by Telastyn, scaaahu, gnat, David K, IDrinkandIKnowThings Aug 12 '15 at 15:26

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 8
    Sounds as if you may not be ready for that job. – keshlam Aug 12 '15 at 13:20
  • 11
    I don't think they expect compilable code, but not being able to write a for loop would be a red flag... – Patrick N Aug 12 '15 at 13:22
  • 7
    When you say that a position as software developer would be a new path for you, does that mean that you have no programming experience? If so, the short answer is that that test is designed to filter out candidates like you. Note that these tests don't expect you to write code in a particular language that will actually compile if digitalised, you're meant to use pseudocode. If you had to click that link then I agree with the other comments that this was not a good fit for your experience. – Lilienthal Aug 12 '15 at 13:33
  • 3
    re "Fair enough not able to write for loop" there is no way anyone who could write a for loop would pass a technical test. This is sort of day one level of programming in any form OOP, structured, functional - if you fail that I suspect any interviewer would end the interview as a waste of time – user151019 Aug 12 '15 at 14:04
  • 2
    "when we did our end of term exams were allowed to use our notes". I hear people often complain how such no-notes, no-Internet tests being unrealistic. 'In the real world we'll have on-line help available, etc.'. But you should get some experience in doing this kind of "pencil and paper" programming sessions. It can actually be quite useful in practice to just sit down with your ideas being reflected on a sheet of paper before going to the machine to try and implement it. – Brandin Aug 12 '15 at 18:56
10

The goal of simple on-paper coding tests is to evaluate whether a candidate's programming experience meets a certain threshold. The difficulty of that test will depend on the level of the position and how technical it is. Unless otherwise specified, it's assumed that you'll write out your solution in pseudocode.

You could categorize these tests as follows:

  • Basic competence: a Fizz buzz test involves simple looping and tracking of variable state. Any student should be able to ace this a few weeks into a a programming course (but a surprising number of developers can't).
  • Practical working experience: slightly more advanced tests that you'd expect a graduate to have no trouble with. Examples are simple CRUD or IO logic or rough sketches of board game implementations.
  • Theoretical experience or insight: writing a linked-list or sorting algorithm implementation and similar high-level programming and data constructs. These are still popular to evaluate entry-level candidates straight out of college. Their merit has always been a subject of debate.
  • Technology-specific: any test that is designed to identify basic competency with a particular technology (Perl, C++) or framework (MVC, OOP design principles). In practice these kinds of tests shouldn't be done on paper as they can be difficult to work out in basic pseudocode. Ideally this kind of knowledge would instead be checked by having the candidate create a simple demo application with access to a real IDE and reference material.

In all cases, the goal is not to produce workable code, even if you were to translate it to an actual language and correct the syntax. It's to demonstrate that you meet the baseline experience and skill requirements for the position the company is hoping to fill. In general, it's more important that you explain what you're doing as you're writing down your implementation. Usually the hiring manager is also looking at your communication and reasoning skills in these kinds of tests.

Managers that hire graduates for instance expect that they'll require significant adjustment time and training before they can work independently as their programming knowledge is mainly academic but they do not want to hire candidates who interview well but have no actual programming experience. If a manager is instead hiring a mid-level full-stack developer he wants to be sure that the candidate has experience with the languages or frameworks that he'll be using daily.

Note to hiring managers: don't subject experienced developers to these kinds of tests. Their track record should speak to their experience and skill and really good developers will usually balk at being subjected to these kinds of tests.

  • I think you share knowledge and everyone else and my experience I hope I can be successful elsewhere. Thanks for your answer. – Person Aug 12 '15 at 14:31
  • @Person You're quite welcome. You should of course be realistic about your own experience but that doesn't mean you should let one interview discourage you. Best of luck with your job search! – Lilienthal Aug 12 '15 at 14:53
  • Yes that is right. When I applied for jobs I was invited to those numerical reasoning tests and I was awful. I invested on materials & time then I saw improvement on score. – Person Aug 12 '15 at 16:29
2

I have these kind of test often at my university, usually in assembly (x86) related topics. We were expected to write a runnable code in most cases, except the tests in regard to some algorithmic complexity, then writing just a pseudocode was fine.

Their purpose is to check your knowledge about how the compiler and debugger work, how you design the code to run without compiling it every 30 seconds to make sure everything is ok.

If you type it on a paper with a pen you can't simply rewrite it - so the pressure on writing it well in the first try is high.

  • I've had the same experience during assembler courses but these are not the kinds of tests that software companies are using in their hiring process. – Lilienthal Aug 12 '15 at 14:18

Not the answer you're looking for? Browse other questions tagged or ask your own question.