coding for job interview
i'm trying to break into web developing but at job interview, they may give you a coding test to gauge your proficiency on what ever language the job requires. i'm a beginning developer but even for veterans, if they give you a test involving aspects of the language that you're not familiar with but you have lots of experience in other areas of the language, you will not be able to complete the test successfully, which makes you look like you don't know the language and therefore, you're not considered for the position.
how do people get around this problem? i think even for veteran coders, they still need reference materials to code correctly, no?
Hi, actually there are few coding tests that are in use nowadays.
1.) Home tests
These ones are for building a small application, or a part of the application. You generally have some small spec that you need to follow and you have few days to complete it. I must admit I hate these kind of tests, it requires quite some time from the candidate and often the participants just cannot investment enough time into it and so they end up eliminating some great candidates.
Also because the spec is usually kept simple candidates need to make various choices themselves, like will they supply unit tests, use some 3rd parties, etc. and the problem is that different companies will have a different opinion on this...
2.) Whiteboard or paper tests
I presume you encountered these ones, well these tests are usually crafted in a way that they refer to some common problem or a common requirement. I really did not encounter any that refers to some highly specific aspect that cannot be expected from a developer to resolve it.
Also most of the time these tests are more about estimating your way of thing and thus showing your problem solving skills.
You see when you get this kind of a test, they are expecting from you to first have a good grasp of the problem and this actually can require from you to ask some additional questions to them.
Second you start by drafting some ideas of the problem and of the problem's solution, the important thing here is that you should speak out loud so that they can see how you approach the problem and its solution.
After that you write the implementation itself in the required language and you double check the code.
I should point out that I once had a very nasty task that unfortunately I did not end up resolving, but I was hired anyway because I demonstrated my problem solving skills to be on the effective level.
I'm not sure what kind a problem you got and what issue you had with resolving it, but I believe that you are maybe experiencing the same issue that I once had. Without an IDE I had some troubles in writing a code, to me this was understandable because after all you use and will continue to use tools in your development process. But because this sort of tests are common, at one point I decided to practice my 'whiteboard' skills. The good news is that you just need few tries and you will get the hang of it and also you will be astounded with how much we that the IDE for granted.
Also I believe that these sort of tests are great at detecting the developers that are a pure copy-and-paste programmers. Note that researching for an existing solution is of course a common and natural thing in a development process (after all we do not want to reinvent a wheel and possibly end up with a worse implementation then it already exists).
But if the developer is only capable to do this then I'm afraid I cannot classify that person as a programmer, I mean all that that person can do is search for a solution and tweak it for his requirements. One of the most important developer's skill is a problem solving which copy-and-paste programmer will lack.
What if the solution cannot be found, what will he do then?
Also how much time will this take from him if he needs to search for each and every one of the implementation that he is writing?
Also how will the resulting code look? I mean the code will probably come from the various sources and various developers so it will definitely not have the consistent naming convention and will definitely not be intuitive, readable and maintainable.
3.) Online tests
These ones I prefer the most, they are similar to a 'whiteboard' test, but I feel they have many advantages:
- You can take them whenever you have time for them.
- You do not feel the pressure because you are taking them in the comfort of your home.
- You have a time limitation so they do not require much time like 'Home tests'.
Anyway if you want to talk more about the difficulties you experienced in the interview post some details here (if you are allowed to... I'm not sure if that sort of information is classified). Also I would recommend you to visit the following site:
They have a collection of publicly available coding tests, you could try solving some of them, but instead of solving them inside an IDE try solving them on a piece of paper.
thanks for your detailed reply. this is really useful information. yeah, i agree with you on problem solving skills that a programmer needs to possess. i think the most important skill that a programmer can have is the ability to understand the problem and able to figure out an automated solution that can be coded into the required language. if anything, the test should be done in pseudo code and not actual code. that way, the test is less about how well the job candidate is able to memorize the syntax and more about how well he can solve problems.
also, i think that if writing a small program is required for the test, then they should provide you with reference materials for the language you will be coding in. it's impossible to know every function and all their possible arguments for any language.
btw, thanks for letting me know about the site testdome.com, this is exactly what i was looking for.
Oscar pointed out:
If you have to "study" you probably aren't ready for the job.
Also most of the time these tests are more about estimating your way of thinking and thus showing your problem solving skills.
"Life is unpredictable, eat dessert first."
if you know you'll be expected to write some code for the job interview, do you have any advice on how to prepare for it then?
You can Google things like-> tests for php developer
And find exams and such...
Hi, first I would like to say that I completely agree with you, the test should be done in pseudo code.
Unfortunately pseudo coding in the interview is done on very rare occasions and I'm not sure why... there is really no point in writing a full code if the candidate demonstrated that he can handle the problem with an appropriate solution.
Now regarding your question, well the first thing I would do is investigate the company.
What do they do, do they have some products/services or do they provide custom solutions?
Can you figure out what development environment they could potentially have, where are they focused the most?
Can you find any of their previous work, but that is not to old?
With this and together with a job requirements I believe you could roughly estimate what the test will be like.
But in general there are only two types of problems that they could give:
1.) Some common algorithm or a structure implementation, like Fibonacci, Quick Sort, Linked List, etc. But I feel that these kind of problems are more presented to a C, C++, C#, Java developers rather than a script language developers.
2.) Some common task in their environment.
For example if they provide some Saas then they could ask you to write a code that will consume one of their APIs and could probably ask you to do some additional result processing (aka the manipulation with the returned JSON or XML).
If they provide some specific custom solutions then they will probably ask something specific in their field.
If they are more general then they could just ask you to create a submission form with the specific fields and you would need to validate the inputs and process it and return something, or they could ask you to consume some database and render the data (or some other CRUD operation).
Whatever is the case I believe that you should invest some time (cca 1h) in the company investigation, and also do consider the "optional" requirements that are listed for that job because those "optional" are often the frameworks, tools, etc. that they are using constantly. For example is a knowledge of some specific JS framework listed as an advantage, like angular, backbone, ember? If it is then they could give you a brief introduction to it and ask you to show them its usage in some example.
investigating the company is a really good advice. like you said, you can potentially estimate what will be on the test. i'm gonna be doing that from now on.
i'm more of a scripting language developer but in regards to point #2, do you think they should be expecting you to do that without providing you with reference materials to the languages that you'll be coding in?
how do experienced coders handle issues like this? any advice will be helpful
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)