Today i was given the task of writing up a test for a couple of new developers applying for a front-end development role. Usually ( most of the times i've been tested ) it has been a boring 'cut up this PSD and include sprinkles some $ on it. However I feel like this is in no way a useful representation of the a front-end developer's skillset and they don't really take away anything from it either. ( if anything it may deter them from the work ). So i wrote up a purely javascript/basic DOM manipulation test that goes as follows:<p>---------------------<p>Make a blank html page with a single text input and an empty list.<p>While you type into this input, every time a user writes an operation<i>, add it to an object called 'OperationHistory' where the operation</i> is the Property Name and the result of the operation is the property. Then clear the input. If there is a syntax error or maths error; the property must be 'error'.<p>*operation = any basic arithmetic followed by '#end#'. Limit character input to only accept integers and operators.<p>Every 1000 milliseconds, run a function that will determine the highest result in 'OperationHistory' and append this outcome and the operation itself to the list in the following format:<p>"the following maths problem :" + operation + " = " + outcome + " yielded the highest result so far."<p>------------------<p>...<p>I guess it's not a great test but i'm purely interested in the javascript ability of the candidates and i couldn't find anything on google quickly that couldn't be solved quickly by looking it up or SO-ing the problem.<p>Which brings me to my main issue;<p>Where is a resource of cool nonsense tests that I could give to a budding developer and adequately measure their 'real-world' front-end ability?<p>OR<p>Are there any great resources that help out with this sort of thing?
As a front-end developer who has been in the game for about 7 years now and completely self-taught, I think you're not asking straightforward questions. Sometimes it's the simple stuff that can paint an accurate picture. These 10 questions should weed out those who aren't proficient in Javascript.<p>Here is what I would ask:<p>1. How do you query an element with the ID of "amazingelement" in conventional Javascript without the use of any framework?<p>2. Write a simple loop that increments a counter from 1 to 50 (bonus points if you can show 2 different ways of doing this), you need to show a conventional pure Javascript implementation of this and any other examples can be framework dependent.<p>3. How do you add an element to an array in pure Javascript?<p>4. How would you round 6.42 in pure Javascript?<p>5. What's the difference between ECMAScript and JavaScript?<p>6. What is JSON?<p>7. What's the name of that guy who wrote jQuery?<p>8. Show me an example of Javascript that replaces all occurrences of the word "test" to "quiz" in a string.<p>9. What does an anonymous function in Javascript look like? (bonus points for accounting for jQuery as the framework in use)<p>10. How can you accurately test if a variable is defined in Javascript?
Hmm. I've always wondered if giving a candidate a computer (with anything the candidate would need) and telling them to make something would work. It'd give the interviewer a good idea of their thinking process and what they feel their strengths are.