Ask Slashdot: Are Timed Coding Tests Valuable?
First time accepted submitter xkrebstarx writes "A buddy of mine recently applied to a large tech company. Before setting up a phone interview with him, the unnamed company issued a timed coding test to gauge his coding prowess. He was allotted 45 minutes to complete an undergraduate level coding assignment. I would like to ask the Slashdotters of the world if they find value in these speed-programming tests. Does coding quickly really indicate a better programmer? A better employee?"
I dunno...but it will weed out the pretenders/bullshitters.
No sig today...
If asked for simple answer, here it is.
Emphatically NO
They are extremely valuable - they let you know which potential employers don't have a clue about programmer productivity / expertise.
Bogtha Bogtha Bogtha
I personally discard any company that tests undergraduate-level stuff.
This kind of thing is completely irrelevant to the skills of a senior engineer.
they are as valuable as speed writing tests
Took the GRE a year ago, and got a 0 on the writing portion since I decided to write an essay about how useless speed writing is.
Real writing, is a very useful skill- that's when you have access to a piece of writing software that can do simple things like spell check!
Similarly, knowing how to spit out code is not nearly as useful of a skill as knowing how to break a problem down, and decide what tools would be best for it.
We use Fizzbuzz and a short SQL test that take a total of 30 minutes for the first part of the test. If they fail this, we can them and don't give them an interview.
A surprising number of people fail this test.
We then have a larger problem with much more time allotted. Here we're looking for style and quality of construction.
That said, even with this longer test, the people we hire tend to get the same distance through the test. They're at least within the same half of an order of magnitude.
At the end of the day, in a paid position you can and do have a deadline to work to. You can't take forever building something. You have to produce the goods!
So yes, they are valid.
I heard of one respected hi-tech company giving a 3 hour C programming task. I scribbled my solution on the back of a beermat in about 3 minutes. Were I to have been able to do it in a functional language, it would have been a 1-liner.
I can only imagine that a 45 minute test would be "write a program which says 'hello' to the world".
Also FatPhil on SoylentNews, id 863
Let me guess, is the company in question Facebook?
I think the coding test + phone interview + on-site interviews are solid combo. They ensure you hire coders that are smart and can complete assignments quickly without too much room for error.
Is the test indicative of the actual job? Well it depends on the project and I think that for quick iterating projects it's a good fit.
That being said, I wouldn't use the same approach to hiring people to build a rocket...
No. If you need an explanation then your a crappy ass programmer, manager, etc.
My karma is not a Chameleon.
A lot of companies use coding tests as part of the interview process and pretty much there will be some time limit, whether stated or not. They are not going to let you sit there for two days to answer 20 questions or complete a 10 line routine.
As to the value of rigid timing, then that is a bit dubious.Do you want fast and sloppy or slow and accurate? Does this tell you something about the organisation and whether or not you want to work there? I feel it really depends on how they treat the results WRT the timing.
Art is the mathematics of emotion
coding quickly does NOT indicate a better programmer - for an undergraduate level coding assignment, it only indicates that you've been programming for a while and that it does not take you long to complete simple logic tasks.
If the people performing the test are any good.
First of all it will weed out the anti authority programmers. (There is a lot of people who will refuse to do this - the door is right there...)
Next, it will test if you can handle stress - quality of the code (should be) is irrelevant in these kind of tests. But you learn a lot about how people act under stress.
Personal experience, during an interview I was asked to implement a hash map on a whiteboard. What they where looking for was not an actual shiny working example (hands up, those who don't need to go look in a book to find a proper hashing function (or the interwebs)) - they wanted to see how I handled myself in a stressful situation.
on the problem difficulty. In order _not_ to eliminate potentially good candidates, the time allocated to the interview problem should be - say - twice what it usually is for that kind of problem. The problem has to be timed, in order for the candidate to feel really involved in its solving ; it's an interview, not a school.
Slashdot, fix the reply notifications... You won't get away with it...
It is very useful, as it show a programmers real programming style under pressure. For instance, if 40 mins you produce a solid working solution, that has things like clear variable, function and object names and with good comments, then your likely to be a very productive member of the team. If you produces a working solution but the way you have written means no one else can figure out how it works, then they can not bother interviewing and move on.
To find completed code for that assignment online.
Somebody with a complete education must be able to solve an undergrad problem without thinking much, just sytematically applying knowledfge and understanding.
In the same way in which anybody can expect that I (Phd in physics) will solve a decay equation correctly without trying aroung for hours or set up a equation of motion for a dynamical system without looking up for hours in textbooks (i am at least supposed to know where to find the solution), i expect that a self-announced programmer is able to write down somthing which applies a simple algorithmic principle to a small problem.
If a job requires a skill that is easy to test, it should be obvious that you want to test it. Programming is such a skill. Sure there are tasks within programming that can't be tested in 45 minutes, but there are also tasks that can. I'd feel I knew more about a programmer's skills having seen a couple dozen lines of code she's written than for instance hearing her last employer's opinion, which may be biased by all sorts of interests, or reading the list of projects she'd worked on, where you don't know how she contributed. College grades in programming courses might provide the same kind of information, but courses may not be standardized and the candidate might have developed her skills since college.
The basic rule of programming interviews is that you should demand that they actually program. It doesn't necessarily have to be a difficult problem: I've handed somebody a standard Fizzbuzz in an interview, and the competent candidates will solve it in 2-5 minutes, while the incompetent candidates won't solve it in 15 minutes.
The reason this is necessary is that on paper, the incompetent candidates can look identical to the competent candidates.
I am officially gone from
When I was at RIM, we used a broken quick sort method that the candidate was asked to fix. We didn't time how long it took the candidate to implement the fix, but it generally required the candidate to do some research as to what was wrong. One of the team leads created a simple app that tested the performance (ie speed) of the fix.
What was really interesting to me was the number of candidates who refused to do the test (50-60%) because they said it was "beneath them". The big problem was, RIM's HR (OD) that insisted we interview the candidatest that refused to do the test because we were losing potentially half the candidates that were responding to the job applications (this was when RIM was The Place To Be).
The best candidates were the ones that did the test and asked if we had any more. These candidates also tended to produce code that ran sort the fastest.
myke
Mimetics Inc. Twitter
I would say a highly time-constrained exercise is not so useful since it will disqualify some candidates who might otherwise turn out to be valuable developers. That said, I think a non-highly-time-constrained coding exercise could be a very valuable tool. If you give a guy four hours to code up something that should take about two and it still has terrible bugs or the code is complete spaghetti (or he doesn't finish in the first place) then you can be pretty sure he's not someone you want to hire. This strikes me as infinitely more useful than "write binary sort on the whiteboard while I stare at your back".
.
It shouldn't take any competent programmer more than a few minutes to google some fitting example code, rename a few variables and update the comments :)
----------------------------------- My Other Sig Is Hilarious -----------------------------------
It does not in and off itself measure how good a programmer is, but then again; what is a good programmer?
In here we tend to think a good programmer is measured in technical excellence, but to people running companies, a good programmer is just as much a person that can get something working as fast as possible. In the latter view, a speed-coding test is definately valuable.
I lean towards thinking that any test is both meaningfull in the sense that it will give you a glimpse of the person being tested, and meaningless in it's ability to give an accurate picture of that persons skills and ability to apply them under the circumstances prevailing in your working environment. You can prune out some candidates with tests of various sorts, but at the end of the day, hiring someone is still a leap of faith that may or may not end up showing that your gut-feeling about the person at the interview(s) was right.
Read subject.
Unless the problem is so easy, or the time limit so relaxed as to be irrelevant, testing speed definitely tests some sort of skill(it sure as hell isn't joe codemonkey who wins those speed-coding competitions); but whether it tests a relevant skill is somewhat less clear and more job-dependent.
If you are hiring people to program something of any significant size, you will have time/deadline issues; but they will be less of the "Bob can't get a bubble sort written in less than 40 minutes!" and more of the 'as our morass of legacy complexity grows, the time needed to make any significant change approaches infinity because changing anything potentially changes almost anything else in unpredictable ways' type problem. There are people who are more and less skilled in the art of designing complex systems such that they don't(to the degree possible) turn into spaghetti, and such that you can change just one thing without discovering surprise changes everywhere; but that is a very different kind of 'speed', and probably a more valuable one.
Timed tests would only stress me out to the point where I would probably code poorly due to worrying about the clock. I suppose it depends on the difficulty of the project of course. If it's say a few hundred lines of code I could do that maybe an hour or so. If it's less than that then I could do it even quicker.
How many lines of code? How complicated are we talking about? What language is it in? If it's something like Python I could for sure write a web browser or some kind of bot in 100 lines of code in an hour. It will be sloppy, it will have bugs, it wont have a graphical user interface, but it would work.
If I'm judged on quality too then I'd fail. If I'm judged on bugs then I'd fail. In an hour you'd get whatever I could pull together into working code.
Ask my wife.
I recently interviewed at a few companies that administered programming tests like this. I thought I would have performed better on the test as a sophomore or junior undergraduate than I would now with a graduate CS degree and several years of experience. Implementing breadth first search in Java (and all the required tree data structures) with minimal syntax errors in under 10 minutes is a lot like the BJ scene in Swordfish. It's no more than a puzzle with some added drama.
Companies that use tests like this will wind up hiring only people who can solve them, usually to the detriment of being able to solve large scale system design problems as well as being able to work as part of a team. Being able to solve problems that can't be figured out in an hour is one of the major differences between school and the real world. A CV of academic publications or a project portfolio will go a lot farther in my book when judging capability.
Ask Slashdot: Are You Confident You Could Ace a Timed Coding Test?
and suggest reading comments with that in mind.
I once applied for a PHP web developer position and was asked to WRITE ON PAPER a piece of code that would count how many 1 there are in a made up 32 bit binary.
Why would you ever do that sort of thing with PHP and especially in a website code?
I've worked with PHP developing web apps and such for over 10 years and I never had to do such a thing. Obviously I failed to write the "proper" code!
Thou the interview was so mindnumbingly stupid, that I would of probably declined the job anyway.
What, do you mean Swordfish *wasn't* accurate?
http://www.youtube.com/watch?v=rUY8HysBzsE
If you have maybe an hour to find out whether or not someone is a decent programmer, I can't think of too many things better then asking them to program.
The text of the question asked about programing FAST. Generally, programing quickly is programming poorly, so hopefully they gave him 45 minutes to do a 30 minute task and they are mostly interested in looking at the code, not at the time. Hopefully, they just didn't want to give him three days to post the assignment on one of the help boards and get other people to do most of the code for him.
I often have to perform emergency tasks in less than 45 minutes, so it's fine, we give timed tests to candidates too. It just gives you a rough idea of their skills and how they cope with stress. It's just one part of the interview process.
People lie. I have interviewed people for System Engineer positions that claimed they were developers... they couldn't tell me what an array was or code hello world on a white board in any language.
And if you say you know C++ you better know cin and cout.
If a web based test is timed, it keeps them from looking everything up online or in a book. Or tries too.
Personally I doubt this test is measuring coding speed.
45 minutes is probably plenty of time. They've probably structured it so anyone competant for the position will probably be able to do it with time to spare. The goal then I suspect is to weed out non or bad programmers prior to doing the proper interview where actual skills will be assessed. This feels like an initial "you must be this good to enter" test more than a "how many SLOCS an hour are you going to give us" test.
Like all tests like this in the interview process, it isn't that the candidate gets the work done per se, but the insights you get into his work style, problem solving skills, and how he functions under pressure.
If you are saying "complete this or you fail the interview", then you are definitely missing out. However if you are simply using it as a tool to get access to the above information about the candidate, it can be quite useful.
While on one hand I see it from the big company point of view not wanting to waste their time and money on someone who sucks, but then you do risk the chance of missing out on someone who actually is good, just not in a timed no prep situation.
I've been on both sides of the table, giving the tests and taking the tests. I know I sucked on a couple curve balls being thrown my way, just wasn't in the right mind set for those questions, ended up not getting any of those jobs.
On the other side, I've given some curve balls questions earlier in my career to potential employees, but I've since switched going line by line on their resume. Seeing how how low level they can explain what they did, asking key questions along the way. For instance, a programmer says they built a ASP.Net Web Application as their most recent project. A good question I'd ask, explain the architecture. If they say they called out to their Entity Framework from the code-behind, no master pages, no caching etc. I know the level of programmer I'm dealing with.
Another thing is passion, if they aren't passionate about their job and are just looking for a paycheck, that's not the type of programmer I'd look for. Do they read up and better their craft in their free time with little programming projects on the side? For me, that's a key element in the industry today. There is a huge gap between those that are devoted to our craft and those who aren't, you can see it in their work.
To me all of those elements far out way one's ability to handle a curve ball timed programming test in evaluating someone.
I've been programming for about 14 years. I have seen this conversation come up plenty of times. Many people come up with good reasons why such programming tests and other programming job interview techniques unfairly weed people out. I've been a victim of it myself at some interviews and have gone on to do STELLAR work at OTHER places. The bottom line is that employers feel that they need SOMETHING, even something crappy, so... these interview tests are a fact of life.
However misguided, if you are a programmer and you want a new job, you have to deal with this reality.
Fortunately, in 2013 there are a plethora of programming interview prep books out there so at least you have a chance if somebody throws a pop quiz at you about the tower of hanoi, asks you to write a script to print out only prime numbers or asks you to write a script to reverse a string using no speciality functions though you have not thought about such mishigas in years.
In 2009, i.e. the depths of the Great Recession, we tried to hire a couple C++ developers. HR must have sent us 100 resumes, we winnowed it down to about 10. Despite all claiming to be senior level C++ developers, not a single one could explain simple subclassing concepts, and I wager none of them could have even managed to compile with gcc if we'd handed them an already written program.
So I'd say at an easyish timed write-and-compile test would have some value.
Insulting but necessary; recently I a friend who is an awesome coder walked out of an interview when they handed him an final exam like coding quiz. He felt that it was too impersonal a way to assess for a position as the lead senior developer for a company. But at the same time I would say that the vast bulk of people I have encountered in the programming world were shockingly short of programming skills. A few years ago I developed a system for a company that then was handing it over to a company with whom they had a maintenance contract. So the two top programmers for the company with many years of programming experience and one of whom had graduated from one of Canada's "Top" CS programs began asking me interesting questions about my code; the most critical question was "What are those odd arrays that you are using?" The odd arrays were associative arrays. So I just thought they used a different word so I began thinking of anything even slightly synonymous, hashtable? Lookup table, map, key/value pair? In the end I gave a more than one hour tutorial on the value of a using keys to find values and how the hashing and use of trees could make the underlying algorithm wicked fast even on massive data sets.
The questions went on and on. Won't that waste too much memory (it was a single purpose server with 8G and a data set well under 500M)? Won't scanning through that huge array take forever(I had explained the whole look up tree and showed that a typical lookup only took a tiny handful of steps and that it didn't matter as the system was wicked fast even with a test load many times the system growing far beyond the company's wildest dreams.)
But these two who I now refer to as the Hash Twins could talk the talk. They would blah blah about log files and in-line assembly and wanted to argue about commenting style but had massive gaps in fairly basic bits of programming. So these two would have interviewed quite well unless your interview was basically a coding test. A timed coding test also makes sense in that if you gave me the weekend to pass a basic test in a language that I am very unfamiliar with like Haskell I could probably pass but I would have to look up nearly every bit as I not only don't use Haskell and am unfamiliar with functional programming so I would not be able to step into a complicated Haskell project as the technical lead. I shouldn't pass.
But even after years of C++ I would fail if you gave me a test full of pedantic questions such as "List all the different basic ways you can use the keywords static and const, define the following keywords: explicit, compl, noexcept, and decltype." (I had to look those up)
So I would think that a basic filter test should be quite understandable where you give a person a machine and say, "In the language of your choice code me a function that takes an integer and returns and integer of that Fibonacci number." or for a database person say "Given this trio of tables(users, products, and product sales) cough up an SQL statement that pulls up a list of all the Canadian users and a count of product X that they bought and include those Canadian users who bought nothing." If you couldn't do something that simple in less than 20 minutes (assuming job relevant questions) then an interview would be a waste of everyone's time. I am also willing to bet that the two above questions would kill more than 80% of applicants around these parts. Also questions like the above allow the user to show their thinking; do they put in error conditions? Do they use stupid variables? Do they do it in 10 seconds really well or do they sweat out the whole 20 minutes and produce marginal crap? Do they show a lack of Mathematical ability by asking what the Fibonacci is (Not a deadly strike but a test to see how broad their knowledge is as great CS does use math. Plus if they don't know Fibonacci it only takes a few seconds to explain)
This is just a variant on how to address the problem of having too many people apply for a position that too little time has been allocated to fill properly. Nobody can be arsed to talk properly anymore. Whatever your view on the validity of the test and its appropriateness - you are decreasing the risk of hiring an absolute numpty and increasing the risk that someone really useful or valuable to your company might be missed. 25years ago I sat a load of tests involving ticking boxes and drawing things. The very prestigious banking institution in question said I had an aptitude for 1) working in the computer centre or 2) working in the trade floor as a runner. Because I liked computers and knew almost nothing about the trade floor I chose option 1. Had I chosen option 2) I would have ended up undoubtedly financially better off (in a big way). I left the Bank after 18months and joined an outsourcing outfit. Who did this test serve best? Had someone with experience and who cared explained (i.e. spoken properly) to me about these choices then my career and arguable my value to the bank could have been much improved.
My point is: these test are just filters and probably offer very little value in terms of what your woking life will be like.
Are you telling us that you have never heard of job deadlines before?
Troll is not a replacement for I disagree.
If you hire someone fresh from college, this test is of quite limited value in predicting future performance. If you hire someone with (self-claimed?) long experience on the job, it will give a rather good impression of how well his claimed skill set holds up to reality. If you hire someone for a research position, it is much more important how he deals with stuff he is not prepared for rather than otherwise. However, an oral examination is in this case much better suited for keeping the candidate on the brink of failure and seeing how he fares there.
The problem with doing it offline is that if he does not know where to start or does not know where to stop, you don't really get the information you were after.
With product liability lawyers dragging more and more people into court in product suits, they are looking deeper and deeper into a company's processes for developing those products, right down to hiring practices and whether a company was negligent in hiring the "best and brightest," arguing that failing to hire the "best" engineers amounts to negligence when the products they design fail.
Juries eat that shit up, too.
See subject-line above - You're NOT going to do that in 45 minutes on anything of complexity, or unfamiliar territory (be that in data, it's schema, or processing it for input to the required outputs - especially since, as I've seen in my case, NOBODY PROCESSES THEIR DATA EXACTLY THE SAME AS THE NEXT GUY, or has the same exact data either... it's just NOT happening (usually)).
* A 45-minute test WILL, however, probably show how well you know the particular language tool, & perhaps, how fast you can solve a problem with it... which is, again, NEGATED (somewhat) by the above.
(Tests like these are NOT the "end-all/be-all/do-all" in other words & don't tell the entire story - they're just another 'metric' which has SOME uses of course, but imperfect overall!).
That's my take on it, coming from nearly 18 yrs. total time professionally (& long before that academically) with the titles of software-engineer, programmer-analyst, & programmer...
This is why data-processing jobs (business programming) are SO prevalent, & the 'steady-eddy' part of the trade since nobody does the job exactly the same as the next guy, & things like data conversions, for example, are necessary (even between softwares used, let alone when you send or receive data from others).
APK
P.S.=> If we could solve every problem in the world in 45 minutes, there wouldn't BE any, in other words...
... apk
One thing in moving to the US from UK I've noticed is how relatively low quality everything seems to be made in the US. Everything is designed cheap and weak and falls apart quickly.
This apparently also extends to software development. All the US companies I've worked at have been completely happy with very crap code as long as its done fast. I've not really seen anything like it in my previous 25 years of software contracting all over the EU. In fact the mentality there is the direct opposite. The mantra I'm more used to is that rework costs about 10X the cost of getting it right the first time so work smart.
I still can't believe this incredibly short term 'get it out quick' view in the US really pays off more, but as everyone over here seems to do it, I guess it must, at least for US markets.
I would be nice to have more insights as to the content of the test and the medium used.
If it is a complex algorithm (for instance I don't know, writing a compression method, an digital filter etc.) these kind of questions are better suited for pen&paper where the candidate will mostly spill out pseudo code, ideas and comments. As others said, in such a test I would not expect the candidate to write flawless code, but it will give me an idea as to whether he knows basic concepts of programming, possibly of a particular language, and most importantly if he knows how to think.
On the other hand, if you are given 45 minutes in front of a computer, I would expect it to be a very very simple task. This could be for instance writing a form where the user inputs some values that get serialized on disk. I would more be interested to know if the candidate is as fluent as he says with the tools provided. I would expect him to finish on time and evaluate the real quality of the code. Or if he had problems this would be a base of discussion as to what happened. Of course, in such a context I don't see why this test would not be "open books" with access to the Internet and any reference documentation needed.
Both tests are valid enough I think. But mixing them (doing a pen&paper test for code that is meant to compile flawlessly or doing a seated test with a complex algorithm) is just malicious! Maybe that is what your friend encountered.
It might be better if they had a "find the bug and fix it" timed test. Not a week goes by in my SaaS organization in which I don't have a time-sensitive bug that needs to be found and fixed.
If you are testing if the person can program or not, then it's fine. But if you're looking for only the cream of super software developers, then something minor as the persons emotional state for the day can make a huge impact on the result.
For me personally, I think understanding the actual question is the most difficult part. Some people find bizarre mathematical puzzles fun. I prefer puzzles from the real world, like for example how to get two systems to talk together.
If it is Java or web language then certainly there is a call to code a routine quickly because the coding needs to be out the door much faster. Skilled web and data base coders are using higher level language and therefore do not need to think at the device level.
However if the coding is for chip level routines for things like device drivers then a speed test could be very counter productive.
If I were hiring a device programmer my thinking would be along the lines of how well does the individual understand the importance of using concise comments. More to the point how well do they incorporate sub routines in C and low level language like Assembly when called for.
The job will always get done right faster in the long run by the programmer who best understands when to slow down and think things through for device coding.
NEVER administer an objective test under controlled conditions.
Instead, give them a subjective test; for example, consider the candidate's hair and how well they are dressed and how much fun it is chatting with them.
Also, have the candidate be judged in a group discussion so each judge can influence one another as the discussion unfolds. Don't ever collect independently created data.
My first job SORT OF did this. What they did was call in a bunch of entry level programmer applicants, give them a simple COBOL program to do (keep in mind this was a few decades ago), and then graded the results. The test was open book, and started out with unlimited time. Eventually they discovered that anyone who was there more than a couple of hours never passed the test, so they shortened it to 4 hours to weed out the really bad ones quicker.
The applicants came from Computer Learning Center and the local community colleges for the most part. I was in a group of about 80-100 test takers, and out of that group, only 3 had acceptable scores, and out of those 3, two were hired. One was not hired because the interviewer couldn't understand her and vice versa.
I talked to some of the candidates from a later group, after I had been hired and working there for about 2 years. He was from a community college, and said that he was comfortable with MOST of COBOL, but he did have trouble in his PROCEDURE DIVISION. I was polite enough not to bust out laughing.
Well, whether it is writing a Fizz Buzz solution or a broken algorithm test: it's about how people solve the problem and interact.
- Is the problem beneath them?
Well, they are too good for this company and have to search an Ivory tower.
In a working situation you cannot afford arrogance, as problems don't vanish with the magic arrogance wand.
- Do they ask questions if they really need to (you might adapt your problem to make this necessary)?
If not: they won't ask questions in a working situation and waste expensive time staring at their screens.
- After finishing the problem, how do they react to other proposed solutions?
A good problem always has multiple ways to solve it: some more elegant, some more efficient or both. The candidate aparrently chooses one solution, so you propose another and ask why the candidate choose his/her solution. You should get an answer that comparis advantages and disadvantages of each solution.
If the candidate is not interested or simple states his/her solution is the best: out!
The best speed tests I have seen done are ones where the developer cannot possibly complete the assignment in the allotted time.
This puts the developer under pressure, allowing you to judge how well they handle this, it will happen at some point and you can't have developers falling apart under pressure. This also allows you to see how the developer codes, do they rush it, make it messy but have more functionality, are they slower but tidy, how fast did they grasp the requirements(did they?) etc. Depending what your company does you can then filter candidates based on the output/style.
Many programmers who can code SLOCs very quickly, but the code is unmaintainable. Code maturity happens when a piece of code no longer gets change requests. When that piece of code however is buggy and built too quickly, it may seem to work at first glance to managers and makes the managers look good, but that same undeliberate piece of code will come back to nip them in the butt for 2 reasons: not properly documented leaving unmaintainable if there is turnover(which there will be inevitably) and secondly the guy who wrote it the first time is going to waste a great deal of time looking for a bug/scenario he didn't plan for in the first place.
Code maturity demonstrates itself over time. If over the years that pass by, a piece of code doesn't get changed and the system is still running then you can confidently label that piece as mature.
A great programmer is a programmer who can write mature code the first time. The problem is managers in this era don't give a fuck because they have their heads focused on short-term gain so will probably fire mature-minded coders who aren't to keen to produce and checkin code often and quickly.
All this is to say that I don't believe in measuring a programmer by the SLOCs and time to complete a REAL-WORLD piece of code. Start your own consulting company, if you have the confidence that your skills are good enough and that you can prove it with practical REAL-WORLD solutions that nobody else has thought of creating. If you haven't yet, then at least have confidence in yourself and keep the dream alive and still start your own consulting company while doing another sideline job that doesn't eat up your whole daytime schedule.
For those of you focused solely on hiring SLOC-gods, go SLOC-off you dinosaurs.
need more real world tests (with all the tools that you get on the job) not ones cramming can ace.
Why not use scientific, evidence-based principles, like those found in "Principles of Forecasting"?
Use objective time-based tests. Use expert judgements collected independently. Blend together multiple kinds of analyses.
1) No recruitment process mirrors what is required in the job. Don't expect it to.
2) Most recruitment processes generate only a single metric in a particular way.
3) That metric may not be what you think ("What did he do in the last ten minutes of the impossible task we set? Panic? Make stuff up and waffle? Or state that the problem required further time and an interesting avenue for development seemed to be X?" - you'll probably find that your code ends up in a bin within minutes of the test after a brief "Yeah, looks reasonable" check)
4) That metric, if it IS the sole basis of the recruitment process, will result in candidates being hired who are good at that metric, not the job (e.g. managers who are good at bullshitting other managers rather than managing, coders good at churning out stuff that looks right but is horrendous to use or wrong, etc.). If that's the case, you won't get the job, and wouldn't want to work there if you did (those people would be your co-workers, and your managers would think they'd done a good job of hiring them in the first place, and wonder why you have a problem with them).
5) The bulk of the recruitment process otherwise is about weeding out the chaff so they have more time to talk to YOU and find out whether you're actually suitable. Large companies get idiots who can't turn a computer on apply for datacentre systems administrator posts, and the test is there to save them time. Cut out the chaff, get a handful of candidates worthy of interview from THOUSANDS who applied (CV's written in crayon or with spelling mistakes = first stage bin, people who don't have relevant experience / qualifications = second stage bin, people who don't turn up to interview, or turn up late or scruffy = third stage bin, people who can't pass the test = fourth stage bin, the rest are interviewed properly - it's quite easy to get to the interview stage, or to manage the applications up to the interview stage, knowing NOTHING about the job at all).
6) I would hire the guy who approaches me on the day of the test and quietly says "I don't think that's enough time, but I'll try my best, okay?" if he has one ounce of relevant experience / qualification / skill.
I agree with some of the comments here related to how the candidate reacts to the test, rather than their performance on the test per se.
Observing, or reviewing how the candidate approached the problem is in my opinion more useful than whether the "code" was correct or not.
It's a huge red flag if someone refuses to take a test.
I also like asking someone to go to a white board and explain a concept, like "diagram what a linked list is..." It's amazing to me how few candidates don't know what a linked a list is!
I was given a short test recently for a contracting position--it was a fairly trivial piece of Verilog coding just to weed out the people bluffing. I was given a couple pieces of paper and found this frustrating. I got through the test, but my brain doesn't seem to work right without a keyboard at my finger tips.
So, I'm wondering how are these tests normally given? If on a computer, are you given a choice of editors? Seems an awkward slippery slope.
I've been programming for 20 yrs. My reputation should be enough. If you can't take the time to talk with me for 10-30 minutes to see if you like me and I like you, I am not interested in working there.
If I were entry level .... like applying for a McDs job, then this sort of testing matters.
Any company looking for that level of skills is not a company that I want to work at. Back when I was entry level, the job was for world-class developers, not community college dropouts. There weren't any tests. We talked. I that team produces THE highest quality code in the world for non-trivial systems. We were SEI-5 rated - INDEPENDENTLY.
Screw your tests.
When I interview people, I ask them about their experience and give them opportunities to let me know their strengths and weaknesses. If someone says language X is their go-to language for solving simple day-to-day problems and they're an expert, a short demonstration tells me much more than they ever could. I will never ask someone to use a language they haven't already said is one of their strongest or do anything to make the problem difficult or obscure.
I tried the fizzbuzz exercise mentioned in another post and it took me 1 minute, 40 seconds from creating a scratch directory to running the completed, working program. Having never seen or thought about the requirements before, I consider that a confirmation that this isn't a bad interview question.
The programming examples I ask for are more complicated, but ones that I can do from scratch in under 3 minutes, so giving someone 45 minutes, ability to ask any questions or clarifications they need and full access to google and man pages seems perfectly reasonable. Even if the person is nervous and not good at interviewing, they should be able to complete the exercise. I want programmers who are good at collecting requirements and communicating with the computer by means of code. This is an opportunity to shine if their interviewing or communication skills are not as strong as their programming. The exercise is pass/fail and I never compare their time to complete the exercise to my own.
When I look at the code, there are several places where style and experience show. For example, if I have them run their code against 20 records, will it take exponentially longer if I later run with 200 or 20000 records? That's not part of the stated requirements, but if their code runs in linear instead of exponential time, they pass with a solid thumbs up. If their runtime would be exponential, it's an opportunity to pose that back to them and see what they would do differently given that as a new (after the fact) requirement. Understanding the difference and knowing how to fix it is also perfectly acceptable. Requirements change all the time and that's a good opportunity to understand their thought process.
I've never hired a programmer without making them write code and never would. I'm also cautious of places that would hire me without putting me in front of a computer, even though I interview well. I've interviewed far too many people who may talk the talk or hide behind English as a second language, but are actually just incompetent. Likewise, producing elegant code on the fly speaks for itself.
need more real world tests
While writing something from scratch with a 45 minutes deadline is pretty rare, what could be more real-world than a 45 minute debugging session with an angry customer on the phone, trying to figure out why your javascript errors out on a single IE8 installation (his, of course) and every other computer is OK. (Eventually tracked it down to a missing "var", which led to "s" being used from a global scope, and at that point was inexplicably set to an unidentifiable Object which had no methods we could determine from the debugger, including "s=null")
These tests are use to categorize programmers into 10 different categories. Those who understand binary notation and those who don't. Ba-da-boomDon't forget to tip your servers ladies and gentlemen. I'll be here all week.
A test which measures how much time code needs to run and how much time a coworker will need to maintain the code is very valuable indeed.
I only read TFS and assume that's what they meant by "timed".
If they're talking about something obviously useless llike how long it takes to create bad code, then I'd need to revise my response.
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
...to make the programming world go around.
Someone who would excel on a timed test such as this might already have a lot of programming knowledge and already have a hefty bag of tricks to work with but at the same time may not be so good with coming up with new and novel ideas.
A slower programmer might be more detail oriented, focused, introspective, and may come up with new technologies or techniques to old problems.
Someone who does mediocre on the test is probably a well balanced programmer that brings in a good sized bag of tricks but also is good at coming up with new solutions.
I've done one recently - it also tests memory and grace under pressure. Some people just can't perform well under the gun, and in a high-pressure workplace where you may be dealing with outages that are hitting the tech press within minutes, and the global press within an hour, being ale to not fold under pressure is a critical job skill.
Plus, as my old business computing teacher in high school said, "You will be doing tasks that make no sense on obsolete technology for inscrutable reasons. If you have a problem with any of this, you should probably drop out of this class, since you do not have what it takes to be a programmer in the business world." Dealing with arbitrary requirements is part of working for any large company, and seeing if an applicant will go through with it, or if their ego is going to get in the way, is a useful test.
Why can't I mod "-1 Idiot"?
I personally have always excelled at programming tests, but I do not use them while hiring programmers. Here are my thoughts:
1) In modern programming, research skills are more important than problem solving skills. I would rather have someone who knows how to go find a wheel than one who knows how to make it from scratch.
2) Programming tests don't duplicate real life scenarios. Programmers are 99% of the time writing pattern code -- the same basic process over and over. Because of this, I prefer to find programmers who are creative in improving their efficiency (lazy programmers) versus ones who hammer out tons of code.
3) The final attribute I find attractive is a programmer who adapts their style to project, versus adapting the project to their style.
To sum it up, I'd rather have a lazy, adaptable, practical programmer versus a workaholic, structured, genius-problem-solver programmer. I might not get the perfect program, but I will get the job done on time and on budget.
...is another question : "do you care about how fast they programme or how well they programme?"
If you have to do after the fact debugging or re-factoring this will use up far more time that you think you've saved by them writing it speedily or not.
For example for the FizzBuzz test, as a basic test it's a great idea. However, there are lots of considerations beyond just the ability to write a solution :
- Is the defined limit of 100 coded as a const / #define or is it hard-coded value in-line?
- Why do you want to generate 100 values? Shall I code in a function with top limit as a parameter?
- Are you going to generate the results live in a loop or generate a 100 element array first and print it after i.e. generate a lookup table first (and indeed if that's a solution, how does the candidate decide between static array or malloced array)
- Do you care about further optimisation for size / speed in the intended application?
- Do you want the table printed to stdout or stderr?
- What's their coding style look like? (If they're not using K&R brace style end the interview immediately)
I'd expect an experienced candidate to ask at least one even if jokingly knowing it's a mickey mouse test to start some interesting conversations about coding that are much more revealing than the ability to write one solution. The way they think about the above should tell you a lot more about how much maintenance they're going to need...!
~Pev
I'd want a candidate to ask me questions before solving such as
..that they have written and have them walk you through it.
I've always found that to be a very useful exercise because you can ask them all kinds of questions like:
"Do you always name your variables a1, a2, a3...?"
"Where are your comments?""
"Why did you do this part this way?"
Et cetera...
People who say "well, I don't really have any code to show you" I am immediately suspicious of.
It doesn't need to be anything impressive, just an example of their work.
Personally, I don't care how good a 'Programmer' someone is, I care about how good a 'Software Engineer' they are.
Loading...
I don't understand how this can be a question.
I mean.
My friend applied to a service station. They gave him a test where he was supposed to diagnose a problem with a vehicle and fix it, and they gave him an hour to do so. Is this test in any way meaningful?
Well, think about it. They want someone to fix cars. They get paid for fixing cars. They get paid more when they can fix more cars per day. Does it seem like whether someone can perform a trivial task in an hour or less might be a relevant piece of information?
Seriously, there's a lot of things about programming where wall-clock time isn't hugely important, and a really good slightly slow programmer is usually better than a crappy fast programmer.
But as someone who is, most of the time, on the very fast end of things: Yes, I think there is value in being able to get stuff done quickly. It's not the only value, and I don't necessarily think I'm a more valuable employee than someone who's slower but more reliable (which gets you like 95% of the programming population), but there's certainly utility to it.
My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
YES.
I think that particularly an observed debugging session would be a tremendous interview test. You'd need to suit it to their known technologies unless it was pretty simple, but I think someone's debugging process speaks volumes about how well they think about problems.
I retyped that as I declared them in the do/while. Pretend I set x ==5 before I mailed you my solution.
Did I loose my geekcard?
http://saveie6.com/
But the curious thing is that I've never, ever, seen them given to contractors, only permies.
Given that contracts are (IME) composed of the best and the worst, but bill you the same either way, this would be the group to which I'd mostly like to say "You want money? Show me."
If you were blocking sigs, you wouldn't have to read this.
Um, everything I write is the IP of the company I work for. So asking folks to bring code in is an incredibly awful idea -- in 90% of cases, you're essentially asking your prospective employees to break their contracts with their existing or past employers. I'm pretty sure you should recuse yourself from any interview processes, and possibly anything important in your company's operations.
One portion of our phone screens is a live coding session using a shared screen. This gives us an indication of whether the candidate can actually write code or not, how he or she approaches the problem, whether the right questions get asked if we aren't completely specific in our initial instructions, and so on.
There are a lot of candidates who list degrees and jobs but who cannot do the actual work of programming. We're not paying to put one on a plane for an on-site interview.
The thing about tests like this is they tend to be pretty good at measuring the exact thing they're measuring. Giving someone an easy coding task to complete in a tight deadline might be very good at measuring performance for a job that requires coders to complete relatively easy work under pressure with extremely tight deadlines.
But if you're looking to hire someone to complete more difficult tasks with more relaxed deadlines, then such a test might not serve you very well.
I was consulting for division of big corporation and was asked several time to help with interviews. Candidates which did well or at least not bad on my question/tests were invariably rejected by HR of the division. They were too expensive. Workers without experience/knowledge of the field were taken instead because they were cheap. Happily the are not asking me any more.Whole endeavor is depressive.
Depends what sort of programmer are you hiring, what's the actual test and how you would mark the test (or decide pass/fail).
:).
;)). You do need to get the data structures/schema right though- can't store and manipulate data if you have no place for the data or don't have a good place to put it. Often another hard part is the UI... End user: "I want to see all the data", End user's boss: "It's too cluttered and messy, and how about more charts and graphs? I like charts"... Coder thinks to self "Chart? But it's just a list of items!"
FWIW I'm a crap programmer and would probably fail most of the more difficult algorithmic tests (which tend to be popular in some companies). But at least I know I'm crap
I'd probably be able to do the simple stuff. What I've found so far writing stuff for business/commercial environments is you usually don't need fancy algorithms (and if you do there's often a library or doc for it
no, it doesn't indicate better programmer. it indicates a faster typist and someone with good memory.
good developer is not about cranking up massive amount of code quickly. it is about writing as little code as possible that does the job, and that takes time and brain.
the question reflects everything that is currently wrong with software industry. it favors coding monkeys, not engineers.
I do timed (2 hour) coding tests.
Don't care if you finish. But I do care if you don't write tests or can not follow simple instructions
Wow, I should not post when knackered.
Will have a very high turnover rate, pass
I was asked to interview a guy that my boss wanted to hire from another part of the company. I gave him FizzBuzz in the interview. He spent a long time and did not complete it - he did have stuff running and partly working. He's a young guy and was really distraught over the whole thing. I recommended we not hire him "guy can't code" but they did anyway. Turns out he's actually not bad in normal circumstances, and rather good at some other things (which is why they wanted him in the first place). So NO, you should not base a decision on a single programming task. Now had he failed FizzBuzz AND shown no other promising characteristics they would not have hired him.
BTW he sits next to me now and his nick is Fizz...
Yes, but -- as a senior programmer -- giving me a test at this level basically is insinuating that my resume is full of lies. If a potential employer is starting our potential relationship by accusing me of being a liar, then that's not a relationship that's going anywhere.
Lets turn the tables.
Lets say you worked your ass off for 10 years to save $300,000 with your buddies to start your own company. You need some help and a senior level programmer is essential to sink or float your startup.
Would you just hire someone with a resume of stuff? What if he did have those qualifications? How do you know he wont sink you, destroy your marriage, retirement, and lose your home which is in co-lateral for the business loan? No, I am not exgerating either if you ever owned a business! If you want to make it the costs are astronomically huge and risky.
The world does not revolve around the employee. If you are hot shit then you can pass the dumb test. If not then you are rejected and I do not care about your experience and I feel if you were in the others shoe you would give otu the test as well to save your assets.
Not all of it is a startup, but come one employers have a right to look after their own interests and shareholder/owners money. A bad coder cost a lot more than a bad fastfood worker to fix and fire. It is best to filter before you talk to them.
http://saveie6.com/
Spent 4 hours in a meeting today re-reviewing answers on a timed test, as the scores where significantly lower than the previous test.
The company I work at is marketing the test as the new gold standard for recruiting IT in Japan. The largest IT company in Japan uses this test in some of their hiring.
This test is done in a browser window and you get 20 minutes to do 2 of these. The original reviewer deducted 7 out of a possible 30 for missing a bracket on an if statement. The target audience is undergrads worldwide.
Here are some examples.
Write your own implementation of ArrayList without using Collections. (that means all methods of arrayList)
In Java create a zip from an inputfile (better know your imports and exceptions of util.zip by heart)
Write a method that test if any given number is an armstrong number (good luck googling that and writing the solution in time if english is not your first language)
20 sentences of japanese translated to english detailing the scoring mechanism of a ball game then requiring you to write a function to calculate score. (there are 12 rules to implement)
Create a non-blocking socket channel
And many more gems such as these. On the other hand there were people who got these two
write a bubblesort
multiply two 2x3 matrices creating a new 2x3 matrix
We still have no idea who can code and who can't. Hell it took our CTO on average 4 mins to fully understand the question.
Worthless, in my opinion. When I was project manager for several large projects, some of them had timed coding tests some did not. All the timed coding tests showed is who could code quickly, but not how well they could work together as a team. A successful project, defined as being delivered on time and under budget comes from effective team work and that is the number one requirement. It has been my experience, and I have worked with probably tens of thousands programmers over the decades, that the speediest programmers, while very good at what they do, tend to be lone rangers instead of team players (that is not always the case, but is more often than not).
The other problem with timed coding is very often when hiring a programmer, they may be excellent in one language, which is great for this project, but not the next, or vice versa. Such tests only show a snapshot at a specific moment of time and again, then you have to figure out if they are too well versed in whatever language you are testing them for, how adaptable will they be on the next project? If they are a great C programmer and now need to be on a team involved with Java (after training, of course) will they still hold on to the way they did it in C or will they embrace new (for them) ways of doing things?
Basing your hiring decisions, or even just who will make the cut, cannot answer those types of questions and is useful as saying an individual must have a computer science degree while ignoring what other experience they may have. It does make the hiring process easy, because it is something quantifiable, but it hardly guarantees the best candidate will be chosen.
The problem is: unit test is just a minor portion of testing. And, if it exists, should be done by developers, which already are the bottleneck. I'm a QA lead, and while worked for former-EDS, IBM (and now I opened my own small company), the problem is that unit tests will, most part of the time, will be a very small optimistic set of tests, and not using the interface. Real automated tests, like selenium, are really hard to do, and the focus for automation are regression tests: the ones you'll really execute more than 2 times, for stable features. Real testing starts with the QA team reading the requirements, and, UNDERSTANDING them, and finding roles, problematic and ambiguity requisites. Then, when people will code, after answer all your questions, QA team will start writing tests. So, after delivers features, testing will run. After the code done, regression will be run. The problem with this is: the most of testing guys I'm trying employe in my company, just find trivial and visual issues. Like missing punctuation, some wrong colors... the real job of QA is understand business rules, to achieve the same goal as the development team: deliver an application with few bugs as possible. And, the QA team should provide valuable feedback: short and clean description, steps to reproduce, all environment information. It's not the dev enemy, QA is the dev angel.
The best interview-test I ever had placed me, a computer with a collection of IDE's, an internet connection, and someone in the company who was already an employee in the room, and asked me to work with him as a team to write a simplified wget clone. We found some non-gpl'ed open source implementation in about 3 minutes, made the necessary changes in another 2, and finished with debugging and unit tests in under 10. It was so fast that they ended up asking us to support https connections as well to fill up the rest of the allotted hour.
I thought that was a pretty good test; it simulated what they'd actually be doing on the job - working in a team to produce output, without being artificially limited by unrealistic constraints like lack of an internet connection, auto-complete and in-line access to docs via the IDE, and re-use of preexisting code. At the same time, they could tell whether or not I was practiced with the IDE of my choice, if I had a familiarity with the language, and whether or not I was a good fit with their corporate culture.
Pity that most companies still do the 'test to see if you know how to reverse a linked list'-style quizes.
I recently did 2 rounds of all day interviews at a big tech company where they ask you to solve these kinds of problems. I can see the value of some programming tests to make sure people can actually code, but I saw some major flaws in their methodology. One major problem is conveying what it is you really want the applicant to do. I had several questions where I thought they wanted the algorithm to solve the problem, when really all they wanted was a library call. Another issue is when there's not one clear "best" solution. I had one interviewer tell me to code a problem optimizing for time and space complexity. He interrupted me 3 times because he didn't understand my algorithm, and when he announced the "correct" algorithm, it was actually worse time complexity and only slightly better space complexity. The biggest problem of all, though, is the questions where they want you to implement some sort of bit manipulation algorithm when doing so is both unreadable and a non-optimal approach to solving the problem.
In the end, I didn't get the job. I was out 4 days of vacation time and 2 weekends that I could have spent with my family. They were out about $4000 from the cost of flying me out and back twice, putting me up in a hotel, etc. In the end both of us would have been much better off if they had just called some references instead.
My job had a set of 3 coding tests with a total of 2 hour time limit. Some was just pseudo code, other was given input, and what output was required etc. After the fact I found out that my performance on the test took me from last place consideration to the front runner. I didn't have the strongest resume as I barely graduated in Neuroscience, with just a minor in CS and had been working as a sys admin through school. But showing I could do the job got me the job. I think there is more value in that. 'Senior' programmers should blow straight through it, but I was told after that several of those with "Senior programmer" in their title couldn't even figure out some basic regular expressions.
On that note, at my previous sys admin job we once had an interviewee who was doing quite well until very proudly exclaiming that he not know knew "regular expressions", but ALL of them. Every. single. regular expression. He was quite proud of it.
Namely because there are so many applicants.
If you are a competent coder, you should seek out companies with coding tests, because you have a far higher chance to reach the interview stage than if people go by what you have written in your application alone.
these days a lot of people would...
install wordpress
install Advanced Code Editor plugin
umm...
roi text + link to: http://interviews.slashdot.org/story/13/01/10/0216217/ask-slashdot-are-timed-coding-tests-valuable
What it does show is how someone will react under pressure. And it will show you the worst possible quality work from someone who is intentionally trying to impress you. As a general rule, I won't do these. I did one a few years ago that made it's way into production at the company I was applying for, I never got the job, and I never got paid for doing it.
I think the technique that works better is hiring the person, bringing them on site and paying them for their time, and then throwing something big and impossible to fix. That'll really show you how they think, what happens when their wheels are turning, and it'll intimidate them in the same way a coding test will. The difference? There's no false piety with it. No promises that need to be made. If they come back for a second day, you've usually got a winner.
Then again, it's also possible that the things I find valuable as a manager are different than the values of people who give you false unpaid test projects which they turn around for profit.
This signature intentionally left blank.
I personally prefer this approach with a blowjob. Time, pressure, and low amount of blood pumping to the brain. The ultimate test.
I typically don't hold a gun to the applicant's head though.
The only puzzle is what to do with women applicants...
The G
Like many who've posted, we give every developer applicant a live coding test. We allow them to select one from a list of 5 problems, to be coded in the target technology we're hiring for. For each of them, every member of my team can have working in under 15 minutes. I'm the manager over several teams, haven't written any production code in probably 2 years, and can whip them out of my posterior in a variety of languages. We provide the environment, compilation scripts/commands (if appropriate), and Google. We do ask that they not Google the actual problem. We give them an hour, and they can extend by another hour if they ask.
About 60% of applicants abjectly fail. I don't mean they have a bug, or misunderstand the problem so implement incorrectly, or are inelegant. I mean they fail to produce code the compiles or runs (depending upon technology). C++ "experts" who, in a fit of frustration, copy/paste a HelloWorld! example out of Google into vim, miss the first '#', and it doesn't compile, and cannot figure out why. PL/SQL "experts" who can't select from a single table.
The person who did the wrong copy/paste-desperation move assured me at the end of the interview they were actually an expert, and not to let their failure "taint" my impression of them.
About another 10% or so write something that is incorrect, but does something functional. For those folks, we weigh it case-by-case. The remainder pass (and are usually surprised when we tell them how many fail). It's a sad fact, but a lot of "experts" Simply. Cannot. Code.
The worst you can do is hire someone who is a syntax dictionary but can't solve problems. They are common. They'll pass your simple test handily, and then go on to write some impressive, buzzword-compliant code for you that doesn't solve the problem you gave them, or can't be completed on a realistic budget because it has to be just so and use this and this and this technology. Or they'll exhaustively solve the problem you give them using the first approach that comes to mind, leaving you with overly complex, inefficient code that you can't afford to fix because they used up all the budget and time, plus some.
ob disc: I'm an older guy (50's) and have been writing C code for almost all my jobs in my life since my early 20's. I write code at home, I develop firmware (and hardware, also at home) and I'm extremely technical.
but I fail a lot on 'programming timed tests' and I blame my older slower mind, mostly. the last time I HAD to get inside a tree data structure and totally rewrite it: never in my life. the last time I had to implement a sort routine from scratch: never in my life. its always been a matter of consulting the standard ref models, adapting them and using them. its simply not real-world to test memory recall.
younger guys (I was one once, lol) have an advantage. its fresh in their minds, and they don't have 35+ years of 'noise' in their brains for those sort/search/traverse routines to compete with. I remember when it was trivially easy to derive those algs on the spot or recall them from memory. I passed almost every coding test back in the 80's, 90's and even 00's. but now, I'm finding I have to sit back, think, maybe search a bit and then I can get the answer.
interviewers who are in their 20's and 30's have no patience for people like me. I bet they even laugh behind my back. and yes, speed DOES definitely change as you get older.
but put me in a real life situation where I DO have net access, emacs, gcc and gdb and I'll get your answer pretty quickly and demo it to you, too, if you want.
in summary, real life is an open-book work style. testing candidates closed-book style really reflects badly on YOU, the interviewer, for not getting this detail about how young vs experienced people think and solve problems. for the new guys, you can only ask them the datastruct101 level questions. but its wrong and even insulting to ask older guys the same questions and in the same way, expecting the same speed of reply.
when I interview with older guys, they 'get it' and they aren't such hard-asses. they know what matters, there is respect and it shows. I like interviewing at places like that. they have human beings there.
but 'compare dick sizes' interviews, where the company guys are there mostly to show off and try to knock you down (I'm looking at you, google...) are a waste of everyone's time and fairly insulting, at that.
I would almost go so far as to say that its improper to have a 20something interview a 40 or 50something. they have no idea what to ask, how to gauge the reply or value it and it often comes off as a strange young/old challenge.
anyway, I will not pass any coding speed tests. but I can always solve the problem, I can learn 'on the fly' as I research the problem and I know enough to avoid the bad algs and target the efficient ones. I just don't -care- about deriving the fundamental building blocks anymore. I USE the blocks, I'm kind of tired of looking inside them. (I build electronics quite a bit but I'd never be able to answer exactly how an NPN is built, nor do I need to care to be able to effectively use it).
companies that apply speed tests have missed the point. it shows poorly on them, in fact, that they think this actually makes sense.
--
"It is now safe to switch off your computer."
that reads STDIN how?
What gets lost in tech interviews is that, most often, you don't need the next Turing to get the job done. A lot of times people do tech interviews of problems that are overly complex thinking that if they get those, they can handle the *real* work instead of figuring out if they can get the actual job done. This weeds out too many people. I'm partial to algorithm tests, but what's of value is the discussion of how they approach the problem and how they handle roadblocks in the solution more than knowing certain technical details of the top of their head. If a candidate gets stuck it's acceptable, even preferred, for them to say "I'd brainstorm with the team" or "google topic X, Y, Z for ideas." In my experience, attitude is 80% of the job, out of the box technical abilities is 20%. You can teach technical skills to a good person who wants to learn, works well with others, has a desire to solve problem easier than resolving team issues with a technical genius who can't work with others. In my mental list of worst employees I've dealt with, they've all generally been highly technical experts. So, these tests are good for conversation starters, but I don't believe they should be used to weed out people. Assuming, of course, you're looking for a long term employee.
It must effective because so many people fail it.
Wait...
The problem with these tests is that "fizz buzz" (I had to google that to figure out what it was), hanoi, etc isn't what a good programmer does all day. I haven't seen that stuff in decades since I was in college. I do real-world stuff at a very high level of abstraction using big class libraries, databases, etc. In 10 min (or whatever time), I'd have to re-learn all that stuff from scratch. If you are trying to weed out senior people who haven't been doing CS classes for a long time, that's sort of counterproductive if you want real-world problem solvers.
By the way, I have never seen any real-world production code that needed to reverse a string or array for any reason. Why is this example so common?
I was once given 3 hours to complete a web app in c# and asp.net 2.0. A little training shop in Central FL. They must not have been paying attention to the time, because they kept me waiting for an hour in the lobby, gave me a written exam that was no problem but took some time when you include reviewing it with the interviewer afterwards, then finally directed me to the full and busy programming pit to start this project. The guidance for it was relatively short; 3 pages front and back for six pages of documentation. When the realized it was 5 o'clock and time to go home they ended the interview early, started to do a review on what I had completed in an hour (Pages where there, users in the user table could authenticate, several grids available with db data, and one of them editable.) A few minutes into the review the guy gets a call from his girlfriend that goes something like this: "Yeah I'm wrapping up, I'll be done soon. yeah. ok. ok. no problem. I'm on my way."
My review is now over! I'm told thanks but they're looking for someone who can complete tasks under a tight deadline. I was just dumbfounded. I'm making 6 figures now which I think is an indicator that I'm not bullshitting my way through interviews for the last ten years, but my contract is ending and I face the prospect of more of these timed code tests. I am literally dreading this.
I get that they want to ascertain my code ability, but most developers that have been on a few interviews don't like the prospect of what I've done. Honestly, the jobs where I was the most appreciated and the client the most happy were interviews that talked about my previous projects and experiences rather than throwing some bullshit tests or obscure language syntax at me. If I say I wrote my own authentication piece, I should be able to answer questions about the tech I used, right?
A timed coding test is an excellent way to determine how a candidate performs under pressure and will invariably lead to an opportunity for the interviewers to ask many relevant and interesting questions based on their performance.
Face it, anyone can write a program given enough time and resources, but it is a valuable & rare skill to be able to maintain one's composure and complete a program rationally and calmly in a limited period of time---ie in an emergency when time is limited (such as from a bug fix, changed deadline, staffing changes, etc...)
Poster here: I'm not sure I made this clear but of the 3 hours I was told I would have, I was allowed about one hour and ten minutes to complete the code exam. Maybe I'm actually slow, but I can't write a completed, polished web app in one hour and ten minutes, with chatter about the weekend all around me, while wearing a suit and under the pressure of my new job depends on this.
I don't know, maybe I'm really not their guy. If so, I dodged a bullet. If I'd been allowed the three hours, God forbit I might have been hired at that misery-factory.
For a genius, a programming task with a tight deadline is a chance to shine. For most of us it's more like a rock climbing speed test: people with reasonable ability can still pass as long as they make no mistakes, but it tests bad habits as much as ability.
Seems to me this is really about exploiting the employee.
The good places I have worked the interview process is about whether they like the person and will this person be a good employee for the company.
The company would then train you to meet their standards.
With this sort of test it is quite plain that you don't wish to train the person and that you don't care about the quality of the code just the deadline.
Seems like a waste of the company's time to me.
I always ask if they mind if I use APL. If they will let me, I'll give them a one-line recursive solution and let them try to figure it out.
Just of thought; could this be a more enlighted version of "Crowd Sourcing?"
I see people recommending some esoteric, technical solutions to these tests to dazzle the interviewer with the scope of your knowledge. I'd avoid that since you run the risk of outsmarting your testers. In some cases, an incomprehensible correct answer is the same thing as a wrong answer.
I swear to God...I swear to God! That is NOT how you treat your human!
Timed tests are "all about" performance under pressure.
What they test is really immaterial, its whether they can perform "at all" in the time alloted.
Generally there are two favorable reponses and one unacceptable:
A. best effort and making the attempt with a good faith and good attitude
B. paralysis and or a bad attitude
C. lack of effort or complete dismissal of the requirement
In the end what matters most are (a) ability to perform at some level commensurate with expectations (filters the BS) and (b) a good attitude.
If a person shutsdown or becomes antisocial during a timed test. That person will probably be difficult to work with under pressure. And that is an important thing to know.
If however the skillset is important enough to the company, and or the position requires little teamwork or human interraction (say a position in AntiArtica during the middle of the Winter.. other than human survival issues a time test wouldn't matter so much.. especially if they are particularly difficult to get along with.
I understand that. I get to make a choice, as does the employer. I won't take a job where my first assumption would be that my employer is a liar, and they can't expect me to take a job where they accuse me of being a liar right off the bat. I'm sure they can find some folks with self-esteem issues to serve their purposes.
Forcing a freshman coding test before even granting a real interview is accusing your candidate of being a lying low-life. Even if the candidate ends up being good at what they do, you will have gotten the loyalty and dedication you've earned by insulting them before you even knew them.
Unless of course you want short-term, mindless coding automata. Which I guess most employers do.
My resume has lots of buzzwords on it so I can get past the HR department, but I also try to indicate what I'm actually good at. HR department people usually don't have complex engineering skills, and while it would be nice if they could actually identify people who do, it's tough.
And the fact that you wrote "CV" instead of "resume" implies you're not American - over here, calling the previous employer isn't going to get you anything more than a confirmation that they did work at the company, they usually won't say anything negative about work quality because they could get sued, and maybe they'll say something positive but you can't really trust it. Google might find you people with uncommon names who've done open-source work; it's much less likely to help for people with common names or people who've done their software work inside large companies.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Do you want to work for a company that values hiring its employees on whether they can write code under pressure? No properly managed tech company should ever have a culture of stressful, high pressure, time based code development.
I know a lot of people feel that in an interview they are the ones under scrutiny, but realize that there is a shortage of quality developers (but an abundance of wannabees) out there and you really should also be scrutinizing the company you are applying for. Making the mistake of only trying to be an attractive candidate without also attempting to "interview" the interviewer is the biggest rookie mistake any person makes when looking for employment.
I have been to several interviews where I basically realized within 5 minutes that the company had their heads up their asses when it comes to finding talent. If a company is unable to adequately interview for talent then you can only imagine how poor the state of the quality of their management and leadership is in the company. I know a lot of people blame HR, but poor HR only results when managers and directors are unable to adequately convey the talent and skill requirements they are looking for, so HR staff have to make up the job description and interview process.
Also, with over 12 years experience, I get really frustrated when being interviewed for a senior level position only to have to answer a bunch of junior level questions about coding. I know how to code, and it should be assumed I know how to code from my work history, how about asking me high level architecture questions, how to apply software patterns, or how to create efficient software process. I've moved away from being a code monkey and have been responsible for designing, architecting and overseeing development of entire applications, don't ask me what passing a value by reference means or how to write a recursive method, that just means you don't deserve my experience..
I haven't thought of anything clever to put here, but then again most of you haven't either.
Back in the days before my own company, I never minded coding tests like this. If they're done right the 45 minutes should be more than enough time to complete the test. I don't remember running across any where time was the actual issue.
and though IANAL I believe they have to prove that their method of screening works otherwise they could be open to lawsuits. But like the first commenter said, it obviously could weed out the fakers/people who definitely don't know anything about coding.
Remember the interview process works both ways. If I feel like I'm being jerked around in the process, I will end it. And have done so on multiple occasions.
Once I did so right off the bat one time when I was given a choice of 2 interview times, I picked one, then they came back and asked me to do something completely different, I don't need to leave one cluster F* to another.
I know that one, in a slightly different variant. Instead of fizzbuzz, write the numbers out.
for($x = 1; $x <= 100; $x++) {
$found = false;
if(!($x % 3)) {
echo "three"; // or fizz
$found = true;
}
if(!($x % 5)) {
echo "five"; // or buzz
$found = true;
}
if(!$found) { echo $x; }
echo PHP_EOL;
}
THE TRICK is in READING the case CLEARLY.
You COULD solve it in MANY different ways, how well you can READ what is being asked and do it in a minimal but correct way is the trick.
SOME people get the answer right but the code wrong ONE mistake is for instance is to use an if/else construct with a 3rd if statement checking if $x is a multiple of 3 AND 5. BUT in the above code with just 2 ifs (no else) THAT is being handled as well, test it, if $x = 15, the first if triggers printing "fizz", then the second if triggers, printing "buzz", the printing of the number does not happen because $found has been set to true, and a new line is ALWAYS added.
How you solve it (and there may be better methods, this is my level of understanding) shows how well you REALLY understand the posed problem and how well you understand coding NOT in knowing how to solve a complexe problem but in using the basic programming structures any language will support to do what is asked AND NOTHING MORE.
The LAST is important ESPECIALLY in web development, I have had to tell coders far better then me to CUT IT OUT and STOP trying to expand a project beyond its scope because producing award winning code doesn't matter if it is not on time and budget. Build what the client asked, not your interpretation of what you think they might really really want if only they could see the magnificence of your vision!
SIMPLE tests like this can work... It should take no more then 5 minutes. ANYTHING longer, POINTLESS. For web development at least. Why? Web coding is simple, all the complex stuff has been done by smarter people, probably decades ago. Most of efficient web development is coupling systems and libraries together to create what the CUSTOMER ASKED FOR, not what you want to develop because you think it looks cool.
When it comes down to it, what I want to see is how someone approaches a problem, a bug. Debug skills. And NOT, can you spot the error in this code but "a customer called: FIX THIS". What do you do?
Nowadays, I don't even bother with companies that want to see a code example of have a test that takes more then a couple of minutes. They are focusing on the wrong thing. I seen to many places that have brilliant code punchers but there projects falter because all they do is create code, not finish projects. There is a difference between a coder and a developer. It is the difference between 50k and 150k.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
Sorry, failed. On multiple levels.
The question, PRINT on NEW LINE from 1 - 100 each NUMBER but if the number is a multitude of 3 print fizz, multitude of 5 print buzz, and if both a multitude of 3 AND 5, print fizzbuzz.
EXPECTED OUTPUT:
1
2
fizz
4
buzz
...
14
fizzbuzz
16
You are missing the new lines in your CODE
You also magically came up with a non-existing requirement for modulo 15.
And didn't see that by doing
if mod(i,3) == 0 then print 'fizz';
if mod(i,5) == 0 then print 'buzz';
You would get fizzbuzz for 15 (oh you also reversed the fizz and the buzz).
Sloppy reading and sloppy understanding on how if and if/else work.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
Real programming jobs usually spend a lot more time in the requirements gathering and clarification and solution analysis phases than they do in actual coding. On the other hand, it does weed out the people who don't actually have a clue, at least if you provide enough time rather than trying to get speed. Shouldn't be necessary, but HR departments are usually run by people who understand contracts, not technology.
My department recently tried to hire a lab manager contractor to do router gruntwork and organize a lab move. We quickly found that after the candidate's contract shops and our HR department had both reformatted their resumes, we couldn't tell much except who they'd worked for (e.g. "working on CCIE" meant "didn't have CCIE", not "had CCNP, working on CCIE", and "worked on X" might mean "developed the X system from scratch" or "used the X system to enter data without understanding what it was"), and most of the people who really did know their stuff found better jobs so we didn't end up getting second interviews (good for them, we really needed somebody to do unexciting gruntwork.)
We ended up asking everybody the question "You've just typed "google.com" into your browser, tell me what happens on the wire in as much detail as you can." It should be elementary, but way too many applicants didn't understand the OSI stack enough to talk about Layer 1 vs. 2 vs. 3, much less about arp or broadcasts, or didn't get the concept that typing things into your browser makes stuff happen on a wire, and the technically competent people could talk their way through it pretty quickly.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Others have pointed it out but the third if goes wrong. Anyway, it is far easier to use a boolean to check if the value has already been printed, yes, it not as compact but it far simpler and more correct.
The above code would show to me, you can't yet code, you read the book but did not fully understand it.
Just say i = 3, what happens then? mod(3,5) is true, so print i. fizz3 THAT WAS NOT what was required.
You would get a chance for not forgetting the requirement for new line AND for putting it on its own because each value has to be on its own line regardless of its value.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
No.
They know if you give them a test they can walk to someone else who wont.
But then they have to work with a bunch of other people who couldn't pass the test.
I'd seek out employers who tested applicants, as then I'd know the chances I had to work with idiots once hired would be lower.
paintball
Take the above discussed fizzbuzz (threefive) test, it is a simple short test to see how well a person reads a simple problem and LOTS get it wrong. But it is trivial for an experienced developer who actually understand programming and takes the time to read.
I am a web developer (LAMP stack) and I have been given my fair share of tests... including the most useless, sorting algorithms. I know what a bubble sort is and NEVER had to use it. I have had to sort stuff but basically either it was so standard that default PHP functions already covered it OR a simple search found a finished tested proven library to do the job for me... so why test me on it?
Useless tests are useless. The sorting test ISN'T just not used in practice, it doesn't TEST any practical skill, such as reading, doing ONLY what is required and gives no insight how a person works in a team in a complex application.
The same problem with companies that ask for a bit of example code. USELESS. How long did the person spend on it? How much did they polish it? Who WROTE it? Most web applications are nightmares of spaghetti code. Good for you you wrote a single page script that did a simple sorting... here is a single script 5000 lines long, no documentation, no comments yet it is core to the business and it isn't working anymore and were are losing money. THAT is a real world problem. How do you fit that in a test any developer not actually insane is willing to do?
I have been given tests that would take a weekend to complete. Without pay? No way!
And slowly, over the years I have learned that the companies that asks for this kind of useless testing are not places to work at.
At most a simple test to check you actually understand some basics but for the rest, look at what they did before and then, try to judge if you can work with them as a person.
You can test a bricklayer by asking him to build a small brick wall and see if he does it well. you canNOT test a bricklayers ability to showing up each day on time OR see that there are problems with the building process and raise the alarm before it is to late. Development is really often NOT about punching in code but in managing the entire project and keep it on track. If YOU can come up with a test for that, you will a rich man. I can find a hundred coders right now easily, but good team leads? And I wouldn't employ a single on of those coders WITHOUT a good team lead to keep them on track.
I trade you ten coding wonders for ONE guy who understands the concept of deadline.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
To all those people who pooh-pooh the "simple" questions - you are missing all of the fun. If you keep up with current literature, you answer those questions with sophisticated answers that go over the interviewer's head. Here are some example:
- You can describe how to multithread across multiple cores and then coalesce the result set. Bonus points for referring to Google's MapReduce paper.
- You can use functional programming and describe why an in-place, memory-saving result is a bad idea on modern processors because it's hard to parallelize. Bonus points for discussing cache contention issues across processors.
- Many string manipulation questions can be answered in exotic ways with vector instructions like SSE (Streaming SIMD). Most interviewers say you can use any language, so picking a mixed C/assembly approach completely blows their mind. Bonus points for describing why you need a particular version of SSE for better performance.
- And if all else fails, discussing x86 L1/L2 cache locality is a sure way to go over their heads. You can use this for nearly any data structures question. Bonus points for discussing pipeline stalls due to cache misses.
So my goal is to make sure that the interviewer understands that they don't remotely understand the problem as well as I do, even for a very "simple" question. It's highly entertaining to watch the interviewers squirm by asking them questions to see if they are keeping up with you :-)
And yes, this interview strategy has worked well. It's gotten me job offers from the two best companies I've worked at.
Using [] brackets because of HTML comment filter:
Interview for a ~50K$/year web programmer job:
[!DOCTYPE html][html][body][div id="menu"][ul] ...
[li][a href="#"]First[/a][/li]
[li][a class="red" href="#"]Current[/a][/li]
[li][a href="#"]Last[/a][/li][/ul]
[/div][div id="body"]
[/div][div id="footer"]
[a class="red" href="#"]Legal Notice[/a]
[/div][/body][/html]
I want the red links to be red inside the menu in CSS ?
some people answered inline CSS like this:
[a style="color:red" ...]
when asked to do inside a .css file they answered:
a{color:red;} or did not even know how to do this
when I point out that first should not be red, some were puzzled.
some answered .red{color:red;}
in such case I point out that I might have a class="red" elsewhere in the document... like in the footer.
if the person answered correctly:
#menu a.red{color:red;}
I then ask, give me the longest, strictest CSS query for this,
html body div#menu ul li a.red{color:red;}
and then I ask the same thing but for CSS3
html > body > div#menu > ul li a.red{color:red;}
Then I ask to do this in jQuery:
$("#menu a.red").css({"color":"red"}); // or similar
then do this with a click handler, so when "click" it becomes red
$("#menu a.red").click(function(){ // or toggling
$(this).css({"color":"red"});
});
Then I ask, but I want this only when the document is ready and the jQuery fully loaded ?
if(window.$) // or toggling
$(function(){
$("#menu a.red").click(function(){
$(this).css({"color":"red"});
});
});
Other stupid questions, what is this doing:
#menu{padding:5px;}
#menu{padding:5px 10px;}
I don't expect candidate to know the 3 or 4 field format, but if they know it's a bonus.
#menu{padding:5px 10px 15px;}
#menu{padding:5px 10px 15px 20px;}
Other question, why is this a bad idea in IE:
#menu{float:left;margin:5px;} /* double margin bug in IE6 */
What is a closure in JavaScript or jQuery, give me a common example (click handler).
Why should your JavaScript variable should have a "var" declaration ? because it's global otherwise
Why is this inefficient:
$('.red').css({"color","red"});
$('.red').click(function(){alert("click");});
$('.red').blur(function(){alert("blur");});
You should use temp variable, and avoid document.getElementsByClassName() in older IE
and your page will crash in those IE, if you have an iframe or a Flash component,
since document.getElementsByTagName("*") iterator will crash your page,
because the tag content is not loaded yet, even on DOM Ready.
etc.
What is the difference between a LEFT JOIN and INNER JOIN in SQL ?
If they are not sure, then I draw to tables: Users {id | firstname | lastname} and Admins {id | priv}
and ask them to write a query to join them.
If someone is saying they know Oracle, then I ask:
how do you create a table with a string field of non-fixed length? varchar2()
If they answer varchar(), I tell them that is a fixed length in Oracle, hence a hack is needed, due to compatibility
concern with very very old Oracle code base.
If someone is saying they know MS SQL or Sybase, how do you get a date displayed in YYYY-MM-DD format ?
If they are not sure, I tell them it's a common SQL function in those databases,
If they want a hint, I say it starts with C****. CAST or CONVERT is accepted, if they know the syntax and number code even better.
If they mention only one, I ask them what's the other one.
What are Generics in Java and why it's important ?
What is MVC and why often it's a good idea to use it ?
Name me some Design Patterns and explain them ?
Then I ask in Java, how do you retrieve a GET parameter like for the fo
I enjoy these coding exercises, and use them for a sort of brain teaser. I have tried a bunch of the Java ones at codingbat.com and it is interesting to compare my results to the progress graphs of other random users.
Would that sort of minimal IDE help or hurt this type of test? Nothing else to get in the way, and you get immediate feedback on your answer. Would it be better to see a candidate initially fail the test cases and then correct them or spend the time to run through it in his brain instead?
30 minutes to complete a complicated recursion problem. The test verbiage was purposely written in very broken English and poorly explained. I was not allowed to ask questions.
I remember that in division 1 weekly on TopCoder, back in the days (I was only yellow-ranked in div 1, thin brag ; ) where you had one hour and 15 minutes to solve three problems, the top guys were *really* smart.
Smart as in: one of them had won something like 3 times some national (U.S.) Mathematics competition and one international one.
So "good coders", I don't know. But smart ones, you can nearly be sure about that.
I can you that 99.9% of the posers commenting here would not have beat these dudes.
Bug free code, self documenting code, readability, usability, ease of use, all trump development speed.
Totally worthless.
The best programmers are feet on the desk lazy types.
Who will spend a couple hours eyes closed to come up with two lines of code that solves ten problems.
The eager beaver test types writes a hindered lines an hour breaks everything but impresses the boss.
Of course the business morons cannot tolerate really good programmers.
Why actually alter the invoice table when you can do it in a table variable and keep that maintenance nightmare out of the data?
Because at the same time you add the "total" field, you also add the "payment type" (e.g. credit card, PayPal, Dwolla) and the "payment ID", so that the "total" reflects how much money was actually collected in that transaction rather than being a denormalized value. For example, when you buy something on PhilsHobbyShop.com, the grand total is stored along with the transaction ID in which that amount was billed, and each customer can look this up in his "Past orders" page.
I do most of my programming in PHP, so changing the compiler wasn't exactly an option.
Because PHP is free software, you have the option of writing a patch to add this as a parse warning, just as recent PHP warns about old # comments. It's an option, though I'd agree it might not be the most expedient option in a given case.
how often is the deadline 30 minutes? If you say often, I don't want to work there.
Then you probably don't want to develop order management software as a service. When an unforeseen peculiarity in the new orders report from a third party sales venue such as Amazon or eBay causes your import of new orders to fail, the seller wants a fix before it sends out the day's purchase orders. And sometimes this import failure isn't noticed until the import that happens half an hour before the purchasing deadline. Just today I had to work around a peculiarity in how Amazon formats FPO (Navy and Marines) addresses.
Its material is created to resist tearing, ripping, and stainingWristband Tips: All key players should have a wristband, not just the quarterback! When calling a play at the line of scrimmage, make the last number of the play the "real number" Cheap Jerseys They say: "I need to try harder!" "I need more repetitions!" "I need to spend more time in the gym, on the court, at the free throw line!" and so on A master of finding dead spots in coverage nike nfl jerseys limited and possessed of an absolutely wicked one-timer, Steve Stamkos is very reminiscent of a player by the name of Brett Hull, who feasted on opposing goalies, particularly during his time with the cheap nfl football jerseys St Long after ability fades and our bodies begin to degrade we kid ourselves into thinking we still have something leftAnd for a wholesaler, the min order is 10 pcs, you can mix order with authentic NFL jerseys, Pittsburgh Steelers jerseys, MLB jerseys, NCAA jerseys and so on "He's been able to play and do his job well even if he does miss some timeThe NFL salary cap, as negotiated by the players Union in the current collective bargaining agreement, is 62 Between the dark green qualifications shade, they put a rainbow in the chest Buyers can purchase multiple squares By the way, customers who bought Nike NFL Jerseys Cheap this NFL clothing were happy with the customer service and quick delivery Having said that, an excellentgenuine nfl cycling jerseys is notlow costeven soyou will discovernonetheless some techniquesto acquirepractical the price rangecommon nfl cycling jerseys around thewebespecially 1, the world's largest mobile rink refrigeration unit C the custom-built, 53-foot truck that houses the specialized equipment that will be used to make the rink at McMahon Stadium C began its 3,500 km journey to Calgary with a special fan event in Toronto and will continue with stops at Canadian Tire locations in Winnipeg, Regina, Saskatoon and Edmonton from Feb
However, in reality it is not so and it is a big affair Effective communication, in any team sport, is a critical component for success In these cases, the price may fluctuate some and it could be official nfl jerseys a great time to buy the jerseyHowever, players complained about the distribution of logos I won't change my way of life Athletes such as Allen Iverson, Peyton Manning Josh Beckett currently wear Reebok apparel and shoes In order to save the game President nfl jerseys from china Theodore Roosevelt invited representatives of Princeton, Harvard, and Yale to a meeting where they discussed ways to save the gamesuch as:Baltimore Ravens Joe FLACCO #5 black Youth NFL Jerseys,Chicago Bears #54 Brian nike nfl jerseys limited Urlacher youth Navy Blue NFL Jerseys,Cowboys #9 Romo Personalized NFL jerseys Cheap Throwback jersey,Dallas Cowboys Demarcus Ware #94 NAVY Blue youth NFL Jerseys,Dallas Cowboys Roy Williams #11 blue Color Jersey,Indianapolis Colts Bob Sanders #21 Blue youth NFL Jerseys,Minnesota Vikings Adrian Peterson Youth purple NFL Jerseys,New York Giants #27 Brandon Jacobs blue NFL Jerseys,Pittsburgh Steelers #7 Ben Roethlisberger youth black NFL Jerseys,Purple vikings #4 Favre Youth jersey,Ravens #27 Rice purple youth jersey,Reebok White Chicago Bears #6 Jay CutlerYouth Jersey and etc For a little while we had been part of a team again and as one teammate crowed in the lo
There are no excuses for a small test like FizzBuzz, but why do so many interviewers insist on pen & paper? It's not hard to have a barebones, unnetworked terminal with just vi, notepad, and some other basic editors available.
And if good coding style is a criteria, pen & paper is an odd way to go; mortal coders improve their code by re-writing in iterative steps.
An interview is stressful enough for introverts like myself, without having to deal with atrocious penmanship and cramped fingers.
To make you enjoy the sport world better ,we always bring the best quality sport jerseys at the lowest priceLike I said, I knew my time had come and gone long ago Just enjoy the game to your heart's content They have the conventional stroll-in retailer, but they also have an on-line browsing site as well In all, he has earned 13 All Star selections and 9Silver Slugger awards This has led to the mass production and promotion of sports wear Amazingly, as offensively gifted as he is that isn't the strongest part of nfl jerseys from china his game One more measure you might interested in is definitely which the lettering in the shirt That way many developed just about every single several or even ten years along with along with layout on the MLB JerseysNHL Network's daily flagship show, On the Fly begins their special Trade Deadline coverage at 8 p They, along with USC (14th) and the rest of the Pac 10 have to go out and prove their mettle if they want to earn respectNowadays, women can nevertheless search forward to the sports fever, and their favorite teams and players jerseys We will post information about results of this match, as soon as possibleAs Discount NFL jerseys American football evolved throughout the years, the NFL or National Football League has been transformed when it comes to the jerseys as well
It's very easy to set up satellite TV for PC, just download and watch live NHL games online straight away There was never any variationIt is very difficult to put a numeric value on exactly how much an athlete is worth to a college The materials are the same as the actual players on the field Cheap Jerseys "Red 337" would be play # 7 on the wristband But even that horrible scare didn't stop me from dreaming about it or imagining what it would be like to put the pads on for one more round8 C Daniel SedinIf anyone can challenge Nicklas Backstrom nfl jerseys wholesale and Alexander Ovechkin for the title of deadliest NHL duo it is this man and his twin brother Henrik In 1950,the Black Hawks movedfrom a barber pole visual appeal of their black NHL jerseys to your red jersey using an Indian head on entrance The Pac 10 is coming in as the hated NCAA football stepchild this year, as Oregon only managed to hit 11thRelated ArticlesObtaining Soccer Jerseys PracticalCheap NHL Jerseys an unbeatable powerBuying cheap nfl jerseys personalized nfl football jerseys on nbajerseyonline These basketball avid gamers are generally speaking about a history along with personalized nfl football jerseys anything regarding the basketball sport What's more, even if you rent an apartment or townhouse, you can also enjoy the quality offered by Dish NetworkWe totally dominated through four of the shortest quarters I have ever experienced
Watch NHL Games Live Broadcast no matter where you are you can always watch your favorite NHL teams play live online NHL bottom-shirts should personalized nfl football jerseys be positively important for collectors and rebels sweater too NFL Jerseys are always in a great demand and sells well In case you need authentic jerseys cheap one, the free ebook offered in the Author's box below includes a blank football pool sheet (plus full instructions) 19 and from Noon until game time on Feb A business deal to broadcast hockey on television is sol
"can you draw this mouse or moose or squirrel? If so, you may have an exciting career as a cartoonist?"
A timed coding test as part of a IT interview is the same thing as that famous matchbook drawing test being used as part of a cartoonist job interview.
(trouble is that the original poster just said "applied for a job at a large tech company", nothing was really stated as to the position or responsibilities, so the coding test might be pointless)
Both tests could be measuring a fundamental job skill; both are used to weed out disqualified applicants. Passing the test does not mean that a candidate gets the job; it just means that he has one of the essential skills needed for the job.
But your are an idiot, I am the one ASKING the question, not solving it.
Oh, you want to hire only liars or people who don't recognize a highly common test. Well that is your choice I am sure, doubt you ever will be in a position were you will get to make it however. Explains why you left out the important part of the newline in your posting of the case.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
I did. Then I asked yo mama.
Not everything that can be measured matters; Not everything that matters can be measured.
I'm all for having applicants perform joint coding exercises but the fact they're timing you is a hint of the type of environment you're potentially going into. Engineering software is not trivial but in general, coding exercises can be. I don't have all the facts, but assessing an applicants skills within temporal bounds is not in itself outrageous. However, the approach itself indicates they are looking for more of a code cranker and less of an engineer which prolly says they're the type of outfit that considers development an overhead instead of an investment.
Ultimately, we all need to pay the bills. Second to achieving this; be careful in finding a culture that embraces the culture of technology versus those who view it as a necessary evil. Be sure that those who hold such views never perceive themselves as such and will always be polishing their hatchet and planning their stroke in your direction.
I would refuse to take the test. Its not a real life situation(writing great debuggable, maintainable, documented code). It leaves out the real life situation of dealing with bosses who want death marches with more code but less of the above quality, Tests tell you only one thing: That you can pass or fail the test. Nothing else. They are completely worthless otherwise.
perl -E 'say # print ."\n" # add LF to result ... for 1 to 100
map # do the block...
{(
(Fizz)[$_%3]. # Fizz every 3
(Buzz)[$_%5] # Buzz every 5
||$_) # if we're not Fizzing or Buzzing, print the number
} 1..100' #
Simples
Donte Alistair Anderson Roberts - hi son!
Karma: Chameleon
http://lmgtfy.com/?q=fizzbuzz+test
So you'd be fine if the candidate asked to see the balance in the company's bank account?
In the old days, we used to call the candidate's references and ask if he was full of shit. Not in so many words, of course.
My business partner could code something in a day that would take me a week, but it would take him as much as a month to debug it while I could debug mine in a few days. His "elegant" code often left us with subtle bugs that were impossible to simulate.
An employee who could code just about as quickly as he did, left us with maintenance nightmares, poor structure, inadequate documentation, very little error checking, no failsafe, and no failover. He had very little empathy or concern for users who were not as tech savy as he was and no compassion for naive users, and his code was so hastily lashed together, it was hard to modify it to accommodate the users who were paying for the product.
My best employees were slower but methodical, didn't understand their code in one thought, so they had to document for their own understanding, and cared about format, structure, and presentation enough that someone else could take over if their code needed to be modified or updated.
My experience has been that slower coding allows for more thorough attention to details that make the software bullet proof, reliable, maintainable, and easy to upgrade. Thinking rather than typing. Understanding and creating documentation, rather than spewing code. Creating a quality product rather than a big one in a hurry. Those are what make a good programmer.
if you are a competent coder, companies should seek you out
There are also many online nfl jerseys from china stores while they are stocking Football League Nowadays people love to wear with the autographs of their favorite stars and then wear Cheap Jerseys them in public2 During his NHL career, Orr also helped to launch the NHL Players Association Not only every available designs of nfl jerseys that you can get from online shopping, but also all original custom youth nfl jerseys colors of the jerseys Further, NHL Network will provide hourly reports from the On The Fly team from 2 p Now if your website has been ranked quiet high on the SEO page then you can earn good profit from your sales, you may get thousands of visitors visiting your website that are quiet interested in buying your books What you say to yourself and how you say it will determine how you feel and where your brain focuses Athletes would almost always choose the "money schools" over other colleges6 C Duncan KeithAs key as Toews is to his team's success I would argue that it is blueliner Duncan Keith that is the Blackhawks' most valuable asset Not only will you save money but you can choose from a wide variety of sports team products Several of the well-known NFL jerseys which are currently becoming purchased by many folks include:#9 Tony Romo - Dallas Cowboys#28 Adrian Peterson - Minnesota Vikings#43 Troy Polamalu - Pittsburgh Steelers#28 Chris Johnson - Tennessee Titans#18 Peyton Manning - Indianapolis Colts#9 Drew Brees - New Orleans Saints#17 Philip Rivers - San Diego Chargers#4 Brett Favre - Minnesota Vikings#15 Tim Tebow - Denver Broncos#85 Chad Ochocinco - Cincinnati Bengals#7 Michael Vick - Philadelphia EaglesThis really is a very brief list in terms of NFL players that have jerseys accessible at most retailers Even professional European hockey jerseys are gaining fast in popularity
Gretzky mastered his skating skills on Cheap NFL Jerseys his personal ice rink Who currently is approximately in store the university upon June, this individual nfl jerseys wholesale china party favors taking part in the Cheap NFL Jerseys game regarding baseball, nevertheless should spend close to 12 considerable time carrying this custom baby nfl jerseys out classes, definitely doesn't need time that may play it just about all That is exactly nfl jerseys wholesale why cheap NFL jerseys are perfect for the NFL football fan whether youth or adult Several of personalized nfl football jerseys those jerseys are hugely wanted than other people but even although you are not just a frequent shopper you may lose out just one of the extremely best option Common individuals may take satisfaction in the NHLMeaning, after you are pondering how we're able to locate beneath wholesale cheaper American footbal nhl jerseys, you'll want to also take into consideration top-quality good quality, often the make and design as well as in a lot of circumstances considering the elements place to utilize in which help it become A business deal to broadcast hockey on television is solidifiedRelated ArticlesCheap MLB JerseysFans Go Online Now to Buy Soccer JerseyFind Your Favourite Jersey StoreFrugal Guide To Buying A Tebow Broncos JerseyNCAA football is definitely one of the m
Nowadays people love to nfl jerseys from china wear with the autographs of their favorite stars and then wear them in public Rodriguez was the youngest player ever to break the 499home run mark Yet the highest paid player for 2008 was quarterback Ben Roethlisberger Stamkos has more weapons in his arsenal than just his incredible shot thoughSome authentic jerseys are really expensive but with great quality and style so that is good to make the most of your money The variety of sports channels include ESPN, Euro sports and other extreme sports not shown on normal TV like raw Thailand kickboxing and othersNCAA has some of the most competitive and elite college teams in basketball, football, nfl jerseys from china and baseballScom/tradetracker4Football memorabilia really hinges on the distinctive shirts that different teams wear for different matches Go to opt for the style of lettering, color choice, in addition to whether you're looking for these individuals sewed for and also computer screen produced This is considered to be an investment As we know, football fans tend to play football, and they want to do it in their favorite player's apparel, so this clothing is made to ensure a lot of stress I was a bit taken aback by the Cheap sports Jerseys lack of respect, but mustered up my dignity and walked away declaring that they would respect Discount NFL jerseys me after the game
The United States time on Wednesday, the university of Kentucky (Kentucky) manager John Calipari (John Calipari) said he won't go to the knicks or other NBA team coach But before you decide to purchase a MBL jersey online or at a store, there are a few things you should know Whether it's red, white, or blue, stripes, sashes or denim, you'll see below that the designs are all over place And the shade appeared to be as well girlish and cheap nfl jerseys from china not challenging adequateDown and dirty enthusiasts constantly ideal changes within their avid gamers dress and therefore MLB and also to match the wants belonging to the fans and therefore the nfl jerseys wholesale china online players prepared adjustments inside the jerseys together with offered for sale your jerseys on increased rates throughout the summer together with within inexpensive as well as economical costs in the out couple of years while clearance purchase in that way enjoyable the handbags enthusiast everywhere What beer is it? 6 They can purchase these jerseys in larger quantity enough for cheap nfl jerseys from china everybody in the group or family to have a jersey they can wear when they watch the game of their favorite team Their career stats have been eerily similar over the years, and they almost seem to share a brain when they are tap-dancing on opposing d-men Datsyuk is the three-time defending Frank J Restricted to, lettering within the masturbator sleeves if you go for Get instant access of all NHL events using the software carrying the largest collection of sports TV channels All you need is one time registration fee to download our software load and play almost unlimited channels help you to convert you PC into real entertainment center Top rated Jerseys, This site offers hundreds of fake, various, throwback, tailor-made, devices plus reliable jerseys to get FOOTBALL admirers Top rated Jerseys includes low-priced cheap FOOTBALL Jerseys profit around number with shapes plus colorations
They should get the points only if they mentions the origin of the code and the license under which it is distributed and that licence is effectively allows redistribution.