- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
This happened to me in high school. I was part of an advanced program which required you to spend a year working on a project. Then, three judges were to judge, and their grades averaged to come to the final mark. The project I initially was going to take was to write a report on Japanese culture and history. I was asked to make my project something a bit less monotonous, so after discussing it a bit, we agreed I should make a manga.
Well this was a year long project, so, focused as I was, I logged about 400 hours into it. I went from having no clue of how to draw to being pretty good. I completed the 32 page full colour manga, and submitted it and defended it in front of the judges. I even had 500+ hand drawings showing my progress as I taught myself how to draw.
Thing is, in high school, even in advanced programs, kids are lazy. Most people didn't start their project until the last week before it was due. I found a lot of these people got 80s and such, while I got a 70. I thought maybe what I did wasn't really of much interest until graduation day, when one of the judges approached me.
"I should tell you, you really didn't deserve the mark you got. Me and the principal", who was also a judge, "gave you 100%, but [[insert name here]] failed you for forgery because she was convinced no one could improve that much in a year."
I think there was something going on there, involving more than just the disbelief in my skill (she has historically hated me for bigoting reasons), but still, I feel good knowing it was the best 70 I've ever received.
Admin
wow, what a useless article.
was this written by "Peter" in order to show how smart he is?
Admin
Oh look, a troll. A stupid one too by looks of it. Go back to your bridge little troll, there's no place for you here.
CAPTCHA: kungfu (kick that troll in the teeth)
Admin
Peter answer is not what they were looking for. From Peters answer I would get the impression that he would be an in effective worker. Sometimes the straight answer is the best.
Keep it simple stupid.
This world needs more funtional programmers.
Admin
If they had a clue, they wouldn't be in HR.
M.
Admin
roflmao, certainly is a good thing that they don't want "good developers"
-- http://free-iphone-apple.blogspot.com/
Admin
Yeah, I really hate that quality in an applicant too!
Admin
To all of you individuals who have stated "if I were a screener, I would have come to the same conclusions", let us review and then do a basic analysis.
You have just asked a potential candidate for a job, someone seeking a new job and hoping to impress the potential employer, to answer a three part question.
How you could possibly hope to get less than what Peter had given and expect a good candidate for the position, I am not to sure. A screener that recommended a vague two to three sentence response from this would have been fired by my boss for incompetency. I have had the advantage of seeing applications and hearing interviews in my position and knowing how they turned out as an employee in the end. Someone who is not willing to put forth the effort for this screening question, which due to its simplicity is the only reason I can think it would be used, is not someone that I would want working on projects with me, or as part of my team. Being a written statement, I'd expect more, not less. And anyone who is qualified in their field can write a response like the one given in the OP. Businesses wishing to compete and gain economic profit have to be picky, look for highly qualified people, willing to work within the bounds of the salary alloted to that position by the executives who can bring methods of increased efficiency. Peter would have gotten a call for an interview from me to see exactly what he knew. Probably been one of the more hopeful applications too.
On a more aggressive note: remember this is programming, once the company has the efficient code and the employee becomes to hard to handle, they still have the code and can find someone else.
Admin
My god.... he submitted one of the most causes of SQL Injection attacks as a code sample!
There may be nothing wrong with PHP as a language, but as far as I can tell 90% of PHP developers and lazy and braindead.
Admin
Doesn't look like he plagarized then :) The company should try something more than email though...
Admin
"most causes" > "most common causes"
Seems I should work on my English before I critique other's PHP.
Admin
Yes, it does. Has done for a while.
Admin
Yeah but just returning @_ isn't really concatenation, since it just returns the list back. You mean one of these:
sub semiUnnecessarySub { join '', @_ } sub semiUnnecessarySub { local $" = undef; "@_" }
Admin
Not quite dead. I know and worked on a system (I think in English it's an ERP system - managing buying/storing/selling wares) programmed in M.
Additionally, I understand that it's still not uncommon in medical and financial institutions. Examples, taken from wikipedia, include the US Veteran Administration or large parts of the US DoD CHCS hospital system.
Nowadays it's usually not plain M anymore but its successor which is named Cache. Cf http://en.wikipedia.org/wiki/Caché_(software), but where I once worked this came after my time there ended.
Admin
... and damn, I forgot, but - yes, it is a rather simple language. The 'single letter command' style was standard for the system mentioned above. Made for short lines :)
Admin
A computer science professor once told me that if you have to put "science" in the name, it ain't really science.
Admin
I would have answered it to the best of my ability too. And if it were detailed like his, I too, would not have even considered the response he was given. Don't worry Peter, it's their loss... you can do better!
Always do the best in everything you do -- someday, you may get rewarded for it.
Admin
Thorough answer, but I would have been wary of the SQL example you used in every web app you have coded. A technical reviewer might have been suspicious of plagiarism because that kind of example is the kind you find in a beginners book, not what you would hope to find in the real world, i.e. a complete book understanding, but not a practical understanding probably raised some flags.
Admin
I think Ryan here is the only one who gets it. There is such thing as a "too good" answer. An A+ candidate is a threat to most employers. Someone who knows your job beter than you do is a potential embarrasment and probably incongruent with the wage you're offering. That means they're perceived as likely to leave as soon as they get a better offer. To put it bluntly, a large number of people working in high positions in IT these days are fucking idiots. One of the greatest challenges for smart people is knowing how to dumb themselves down to an acceptable level. Ryan gets it because Ryan is one of them, part of the malingering incompetent fat that blocks up the arteries of our businesses and government departments. Too proud to step aside and let the better man through, too afraid of being exposed, the only recourse they have is to keep the good people down.
Admin
hehe, I AM Not suprised///
--> you may ask why ? because it happend to me all the time during my last 134 interviews. they ask me stupid question and I answer them with a quality answer, and yet they refuse to give you the position, i think most the managers are arrogant selfish dogs, they don't understand the concept of being smart
Admin
Just wanted to say that this was a very awesome and heart-warming story. :) Sucks about the 70% (I remember lazy-arsed people getting high marks in highschool as well when I'd put in tonnes of time for either the same or lower mark) but it wound up paying off in university where it was a lot more difficult to pull that off.
On the same vein of the topic discussion, I had signed myself up with a temp company while I was between jobs a few years ago. I signed up for anything technical, but also included secretarial work (hey, I was getting desperate for any sort of job to keep the mortgage paid). I had ample experience in secretarial work from the jobs I had prior to university, plus my computer experience meant that 99% of any office software thrown at me wasn't an issue... something most offices are very happy to see.
I got a call from my temp manager who said a place was looking at hiring me for 2 months to do office management. It was the best lead I'd had so far and I was excited about it. She just had to fax my resume over. I sent her an updated copy of my "secretarial" version. A week later, she called to say the company had changed their mind... I was far too over-qualified. Based on my modified secretarial version of my resume. And they couldn't deal with that for only 2 months. WTF??
Needless to say, it was another blow to my ego at the time... I was already having an extremely difficult time finding employment as my programming skills were out-of-date and my specialization was a very niche-market that usually doesn't have a lot of openings. Under-qualified as a programmer, over-qualified as a secretary, and few jobs in my specialization.... yeah, it was a pretty rough summer.
-- Seejay
Admin
They could have 'googled' a phrase in that answer to see if it returned any hits. If not, then the odds that he plagarized it are probably pretty long.
Enjoy.
Admin
Good comment on page 2: "Email questions is begging for plagiarism".
But WTF: SQL-Injection, too qualified, answer too long, ...
Why should the company hide their real reason behind an offending insult? "Sorry - we found another candidate which matched better", "you didn't focus on security which is an important ...", "we guess you're overqualified", "we don't comment on refusal" - those would be appropriate answers.
The story is a classic WTF, while my first thought was indeed "SQL-Injection".
Here is my own story: Live interview at the company, Java programming. Talked about this and that. Then the manager asked questions about performance improvements. I mentioned common mistakes and general ideas (performance by design, use profilers instead of speculation, 80:20 rule, and so on). He wanted to hear something else, and presented 3 obscure techniques: some obscure bitmask thing, one thing which I have forgotten, and reverse-itering through a for-loop: instead of: for (int i = 0; i < x.size (); ++i) he suggested: for (int i = x.size () - 1; i >= 0; --i)
Well - I argued, that you should really test, whether there is a penalty in the first approach, which is better readable. If there is some real work inside the loop, the improvemennt will not matter, and nowadays compiler and jit-compiler being very good in optimisation themselfes.
Well - I couldn't convince him, and my salary expectations didn't fit. On my way home I bought the newest Java magazine, and found an article: Performance improvements, explaining all his lousy tricks.
At home I tested them and found none of them working - everything was antic voodoo art, working with java-1.1.8 or something - not with java-1.4.
Lesson learnt: Be sure to read the newest Language magazine before your interview. :)
Admin
How do we know he didn't fake it?
Go to AnusJuice.com for webcams.
Admin
Dont you hate when you need to dumb stuff down for idiots!
Thanks for the chuckle from your friends over at http://www.askTheAdmin.com
Admin
my guess is, the guy from the company evaluating the answers is also a PHP programmer, and doesn't want somebody smarter than him taking over his job.
Admin
Has no one realized he had to have typed all that in 30 seconds per the email instructions?
Admin
agree,
got totally kicked sideways by a guy asking java questions i'd never heard about.
ugh.....
Admin
Those Guys are Assholes
Admin
I hate to burst your bubble but it sounds like the job was being hired through a recruiter (subcontracter perhaps) Someone like a TekSystems or a Mantech Professional Service that make money in finding folks. Its likely that Company which told him he didn't get the job. Funny how so many folks missed that.
Admin
How cute is your ass?
Admin
Yeah, but the way I originally put it would return it as an array, which is definitely not what was asked for...not sure what I was thinking. You'd actually want to set $" to "" and then return "@_"
Admin
[quote user="Cloak"]Why not use a decent program in VB or Delphi which has quite good GUI editors (again: Java, aarrrrgh!!!)[/quote] I take it you've never used Netbeans to create a GUI before.[/quote]
Admin
i think this story is BS.
Admin
I think almost every pedantic programmer has gotten this kind of response ("must have plagiarized it") at some point in their life, whether on a term paper or whatever. Even if the powers that be never tell you, they think it when the answer's too formal, too grammatical. Also, if the company told the recruiter that they thought it was plagiarized, that's definitely slanderous, but maybe not actionable. Maybe the recruiter was lost in the anonymizing process?
Admin
Assuming a von Neumann system architecture, well, of course. But to what degree? If the DBMS is embedded (I use embedded Firebird for instance), no network transmission is necessary, no serialization will occur and the degree of mingling is certainly less when you use parameterized queries.
Even if network transmission is involved, so it will probably be necessary to serialize SQL code and data into the same stream (rsp. datagram), they will likely still be separated to the extent of not being encoded in the same string, greatly diminishing the chance that some of the data will accidentally get executed as SQL.
And even if the DBMS or the driver actually does not support parameterized queries directly, so it has to generate an SQL string that contains the actual, escaped data, it is still better to let the low-level driver routines take care of this for at least two reasons: Forward compatibility (If they fix this deficiency, you will benefit from this fix without rewriting your code) and separation of concerns. SQL string escaping, even if it is necessary at all, is a serialization issue and simply does not belong in program modules that use SQL queries to store and retrieve data. These should neither care nor have to care about network serialization. It's simply not their business and will only complicate code reuse and maintenance as well as encourage bug proliferation.
If you use open source database drivers, then, no, they're not a magical black box. Anyone can download the source code to the client libraries of PostgreSQL, MySQL, Firebird and others. The way they handle parameterized queries is no more "black box" than PHP's mysql_real_escape_string.
If you use closed source drivers and distrust their ability to do their job correctly, then I wonder why you would use them at all in a production system.
Admin
"[...]plagiarized it[...]"
Wow.
The company may as well have said, "Coud you pweeze tell it to us in Engrish? This too techy, you can't be dat smart." WTF indeed.
Lesson learned: find out who your audience is, and tailor your communication accordingly. You don't want them to refuse to hire you because of THEIR misunderstoods.
Admin
You should know something about life: when writing fiction, the story has to be BELIEVABLE. Truth has no such requirement.
This does not alter the fact that we do not know for certain if the story is BS or not - I am simply reinforcing that fact.
Admin
I think you miss the point. This is an email. It's the first email he's ever had with this person. It's not a phone conversation where you can gauge someone's reaction as you speak to them. On a phone call, all these criticisms are all completely valid. But the first time you email someone, you don't know WTF they want from you! Just look at these comments. Half of them say that this was a really good answer, the other half say that his answer was way too long and they wouldn't hire him. He has a 50% chance of answering the question the way you want thanks to the format.
The SMART people say, "this should have been done over the phone". The DUMB people say, "this answer was too long and I wouldn't have hired him".
Admin
The CONCATENATION operator?
Wow, it makes me wonder what kind of monkey got the job?
Remind me to never, ever use a web app. that company makes.
Bonus points for pointing out a better way than the concatenation operator for joining bits on an echo line.
Honestly, you are better off in a job that actually challenges your skill set.
I program PHP daily but I don't consider myself an expert. I consider this screening question to be ludicrous. Why not ask people how to avoid cross-site scripting vulnerabilities or SQL injections?
Hahah... all in all, this is just too funny.
Admin
Oh man, this brings back memories- in grade 4 I got an F on an essay on chimpanzees because the teacher thought I copied it from a book. Turns out I just had above average writing skills and I actually researched, and filled my essay with facts instead of the "I like chimpanzees because they are cute" stuff my classmates wrote.
My Mom stormed into the school and showed the teacher our books on animals we had in the house and demonstrated where I got the info from and how I put it into my own words as we were instructed. Bam, A+. A five minute conversation with me by the teacher would have shown her that I knew the topic.
Ok, I'm rambling... but the other commenters who pointed out that the company lost a strong candidate because they were too lazy to talk to the guy are all exactly right. I hate it when people jump to conclusions.
Captcha: stinky
Admin
Holy shit...
puts("Hello, World!\n") in C (GCC 4.1, default compile options): 7021 bytes.
Same source code compiled with C++: 7486 bytes.
std::cout << "Hello, World!\n" in C++: 8477 bytes.
Statically linked: 495K, 557K, and 1186K, respectively.
Recompile in C++ with coverage analysis, profiling, debugging, inline functions, exceptions, RTTI, and unrolled loops: 1234K.
Delphi produces a 5MB executable. Presumably you're not building Delphi apps with options intentionally chosen to produce the largest possible exe, so we're comparing the 8K executable with a just-less-than-5MB one.
WTF is the just less than 5 MB for?
Admin
And don't forget, valid email addresses can contain SQL injections, mismatched HTML tags, shell commands, and Javascript, depending on what part of the system you want to inject code into.
Admin
Somewhere, there is a bank with an accounts database that has an account with the number "; drop database" or whatever. It probably has very interesting monthly statements. ;-)
Admin
Parameterization can be slower than concatenation:
Sometimes an extra round-trip to the server is required to generate the parameterized query handle, so if you are only going to execute the query once it is probably faster to concatenate strings (unless the string is huge and full of escape characters, or your RDBMS's query parser is extremely slow).
Some RDBMS query optimizers only optimize the parameterized query, and lose opportunities to optimize for specific constant values. For example if a CHECK constraint on a table makes a particular parameter value impossible, then the optimizer may figure out that specific parameter values are impossible and optimize the entire query out of existence--but it can't do that if it doesn't know what the parameter value is.
Some client toolkits implement parameterized queries in O(n^2) time on the number of parameters. String concatenation, if done correctly, runs in O(n) time. If there are many parameters and they're mostly small integer or short strings, the parameterization and data marshalling cost can exceed the benefit, especially in cases like multi-row INSERTs.
Some (evil or broken) client toolkits implement parameterized queries by client-side escaping and concatenation. If you can't upgrade the client toolkit, and you're not trying to be portable, it's probably going to be faster to do the escaping and concatenation yourself.
Admin
If the someone is a lawyer, then it's certainly possible. It would depend on which word was missing.
My lawyer: "My client pleads guilty, your honor." Me: "Missing word! You're fired!" My lawyer: "I only missed out one word! I really hope I never have to work for you again." Me: "NOT guilty! I want to plead NOT guilty!" Judge: "Too late." <strikes gavel> "Ha ha." Me: "Crap!"
Admin
Admin
Something similar happened to me with a Calculus final exam.
They couldn't believe I could compute simple third order definite integrals in my head, presumed I was cheating, and disqualified my test.
Only the professor could change the exam results, and since he was on vacation this ridiculous result was permanent.
I dropped out after that, and never regretted it.
Admin
Goodness! An educated programmer gives a quality response and is shut down. That's pathetic. Makes me then wonder why they would ask via e-mail...
Admin
That is one pitiful, uncommitted recruiter. If I had a client hit me with a concern like that about one of my candidates, my reaction would be "okay, here's his phone number, call him and ask him another question!"