Gnarly Programming Challenges Help Recruit Coders
Hugh Pickens writes "George Anders writes that companies like Facebook are finding that old-fashioned hiring channels aren't paying off fast enough and are publishing gnarly programming challenges and inviting engineers anywhere to solve them. 'We developed this theory that occasionally there were these brilliant people out there who hadn't found their way to Silicon Valley,' says Facebook engineer Yishan Wong who volunteered to draft puzzles so hard that he couldn't solve them. The problems aren't the superficial brainteasers that some companies use, like estimating the number of basketballs sold every year or why are manhole covers round, but developing sophisticated algorithms — like ways of automatically seating a clique of people in a movie theater, given that best friends want to be side by side and rivals need to be far apart. David Eisenstat has compiled an unofficial guide to the Facebook Engineering Puzzles. Our favorite: 'Liar, Lair,' seems particularly applicable to slashdot: 'As a newbie on a particular internet discussion board, you notice a distinct trend among its veteran members; everyone seems to be either unfailingly honest or compulsively deceptive,' says the description of the problem. 'You must write a program to determine, given all the information you've collected from the discussion board members, which members have the same attitude toward telling the truth.'"
Should be: all the board members are either unfailingly honest, compulsively deceptive, or massive trolls. Might actually have real world applications.
Also, oblig xkcd.
"None can love freedom heartily, but good men; the rest love not freedom, but license." --John Milton
MemberClass = GetCurrentMember();
for Post in MemberClass.GetAllPosts():
for Reply in Post.GetAllReplies():
if "rtfa" in Reply.lower() and Reply.Poster != Member:
Member.LiarProbability = Member.LiarProbabilty + 1;
"I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)
Well maybe. And of course no one ever lies, exaggerates, or provides missleading titles on Slashdot ;-)
Given the number of comments take each post and divide by....
Got an email Hold on...
Management has now changed the comments to votes...
Given the number of votes FOR a post...
Email again, 1 sec...
We're now on a new project making a "facebook for insurance policies"?
Well, let's see here. We have the standard interview format, where they find out what you know and how you've used it (after HR subjects your resume to the most stupid and rigorous pigeonholing known to man), there's the audition format, where they give you a task and judge your results, and then there's what I like to call the goofy-as-fuck-Google-format, where they subject you to bizarre questions that don't have any particular bearing on your actual job and instead attempt to figure out how creative or conservative you are while you demonstrate a certain level of knowledge on a topic. From lowest amount of hoops to most, you are progressively demonstrating as an employer how desperate you are to find "authentic" applicants that fit your corporate culture.
Whether these are effective or not I leave up to your metrics. I don't play games, I get shit done.
read "Yishan Wong" as Yuuzhan Vong?
Quite frankly, solving these problems today should not be hard. At most a literature search should bring you the algorithmics. But what is hard is doing good, maintainable interfaces, writing high quality code, having a good design and a good architecture, having working defense-in-depth against attacks, etc. None of which a brilliant person without in-depth CS education and significant experience can do. This just keeps up the atrocious code quality responsible for so many data leaks and successful attacks. It also explains the high cost of software.
This is the wrong approach on so many levels...
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
To many HR people are focusing inordinately on candidates’ education, grade-point averages, what school they went to HR does not like tech schools.
So they end up turning away a lot of talented people whose true abilities surpassed their academic credentials.
Now for IT an apprenticeship system will be a good fit and let people work though real work place challenges and other stuff you do not get in the books.
obligatory xkcd
So that's what programmers at software companies do all day? Write novel algorithms?
Coulda fooled me, last software job I had I spent all day in meetings.
Breakfast served all day!
Which is why it's critical for IT people ti participate in user groups.
Very few jobs I ever got where through HR. HR had always been told to hire me, and that ended their involvement with the hiring process.
I have found this to be true with everyone I ever talked to about it.; however that's an anecdote, so grain of salt and all that.
The bets Process I ever went through was for a government position. I was valued on my experience, and they actually asked relevant questions.
The Kruger Dunning explains most post on
"We developed this theory that occasionally there were these brilliant people out there who hadn't found their way to Silicon Valley,' says Facebook engineer Yishan Wong...."
Seriously? This guy is an a$$. I left the valley 10 years ago and never looked back
"We developed this theory that occasionally there were these brilliant people out there who hadn't found their way to Silicon Valley"
A lot of folks don't make it to the SV. The chances of making it huge are pretty slim. Even if you work for a company like Facebook, but the time the majority of people have joined cheap stock options are claimed. So that leaves you with long days, astronomical costs of living, and the opertunity to get stuck with over priced property every time a bubble bursts. Or you could leave other places in the US that have lower costs of living that more than make up for the slightly lower pay.
"bets" huh? You just proved the point for the wrong side, friend
"When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
'We developed this theory that occasionally there were these brilliant people out there who hadn't found their way to Silicon Valley/
Douche comment of the week right there. And I want to work with someone who has *that* limited of a horizon why, exactly?
I found my way to Silicon Valley.
And discovered it's a crowded, underbuilt swordfest.
No girls, no sunshine, no warmth, crappy food.
And all the computer stuff can be done from somewhere else (which is why much of Silicon Valley moved back to India).
Seriously. Plow it under and put the fruit trees back. Silicon Valley is done.
A real code challenge would be one where the programmer had to develop, debug, document, maintain and scale a large app. For obvious reasons it doesn't make sense for a company to issue such a code challenge.
The discussion board problem is a basic twist on a puzzle from Lewis Carroll, to determine if person x and person y are in the same group you ask one what the other would say to a simple well known fact ('what color is the sky?) if both are truth tellers or both are liars they will answer correctly ('blue') so they are in the same group (but you can't determine which) if they answer badly ('red') than one is a truth teller and one is a liar, and you can't tell which.
The development of a seat selection algorithm is less gimicky, but probably a greedy algorithm will work.
I thought the same thing at "ti" and "where"...
I would just leave. I don't jump through hoops to be allowed to work someone.
Via The Order of the Stick.
http://www.giantitp.com/comics/oots0327.html
Actually, you want programmers who are good at design and reliably competent, but not overly clever, at code. "Cute" code is very '70s.
Incidentally, the "why are manhole covers round", which appeared on the 1971 Comprehensive Examination in Computer Science at Stanford and was widely copied from there, is almost always misunderstood. While it's nice to have a lid you can't drop through the hole, that's not the reason. Many modern covers are rectangular. It's because manhole covers and their matching rings are 19th century technology, from the day when casting, planing, drilling, and turning were the main metalworking operations. Those limit the shapes you can make cheaply. Look at a steam locomotive built prior to 1920. Every machined surface is circular or flat. Manhole covers were made by casting with a single clamping on a lathe to clean up the outside edge. Similarly, the matching rings were cast and got a quick trim on a lathe to true them up. This gives you a matched pair that won't rattle or clang.
Cleaning up an inside rectangular edge requires a milling machine, which was an exotic precision device until about 1930 or so.
So that's why manhole covers are round. Low manufacturing cost.
is that they expect 'real time' answers to problems that sometimes need a bit of thought. its also ageist, as younger people can think faster (I sure did 30 yrs ago when I was fresh out of school) and are more familiar with classic compsci algorithms and problems. the more time you are away from those 'classic' problems and their cute solutions, the more time it will take you to re-invent them on their on. asking for that real-time while you watch is just too much to ask, for many of us.
this does NOT mean we can't solve the problem. but it does mean that realtime 'solve whilst I watch' is pure bullshit and a really stupid way to judge programming talent and problem solving ability.
--
"It is now safe to switch off your computer."
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." -- Brian W. Kernighan
I hire programmers with a proven track record of actually "shipping" product. I could care less what mind bending interview problems you can solve or what school you may have attended.
Got Code?
A couple of interesting and related things on the subject of hiring strategies appeared this week in the Wall Street Journal.
First, a fascinating review of the book "The Rare Find" by George Anders. The review beings with this interesting anecdote and gets better after that:
Next, James Taranto theorizes that college degrees are proxy for IQ Tests, which it is illegal to use in hiring. It raises the question of whether FaceBook's Programming Challenges will not become the target of lawsuits on the basis of "differential impact" as in Griggs V. Duke Power Co.
Ceci n'est pas une signature.
Cant see the average tech company committing to a 4/5 year apprenticeship program.
'We developed this theory that occasionally there were these brilliant people out there who hadn't found their way to Silicon Valley,'
"Hadn't found their way to Silicon Valley" or "wouldn't want to live in the US"?
I can't help but think that Facebook has similar things in mind to the test it is proposing. They recently allowed your friends to fill in parts of your profile that you left blank (like hometown, employment etc). You may decline to accept those, but now Facebook knows, especially if two or more people try to set the same value.
Facebook is in the business of collecting as much information about you as they can. Since you obviously can/will only give away so much directly to them and (if you're a slashdot user) are even considering poisoning your profile with wrong info, their next step is to look at your conversations with your friends as well as compelling your friends to give more info away on you. This involves assigning degrees of trust to data acquired through these methods as well as to the parties who are participating in these conversations. Hence, some algo needs to be developed to extract and validate the most probable information from the mountains of posts and even replace your poisoned fields with corrected data inferred from the posts.
it needs to be 6mo to 1-2 years apprenticeship.
I always lie in my Slashdot posts! In fact, I'm lying RIGHT NOW!
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
The facebook page linked in TFA has a set of problems that's meant to have an auto-grading robot (which I presume then suggests to FB that it might want to hire you). However the robot has been down for months with no word on when it is coming back.
So, how do we 'apply' ?
Here's hoping a ton of hits might convince facebook to get off their ass and bring it back up.
In interviews I've conducted, I've had VERY few people who didn't view me as an impediment to a fat paycheck, who didn't think the questions I was asking them were bullshit and who actually tried to find out more about what I wanted when I asked them to design a function for me. Those people got hired. Some of the others did too, but always against my advice.
You want to do well in an interview? Try ENJOYING yourself there. If you're excited to be there and excited to talk to future team mates, they will sense that. If you don't want to be there and hate everything about the process, they'll sense that too. You can refine your technique all you want after that, but you'll always get more job offers just enjoying an interview than you will if you hate it.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
Are you kidding me.... Hackathon??? and look at the age of the people it's like a kindergarten... http://www.facebook.com/video/video.php?v=23155051776 Facebook just keep you puzzles you won't have my brain ever I'm not a whore....
Everything I've ever posted on /. is a lie.
(How should the program classify this post? ;-)
Those who do study history are doomed to stand helplessly by while everyone else repeats it.
6 months to 1-2 years is hardly enough time to whack you with a bamboo stick, much less time for you to become enlightened in the ways of pointers in C. You might argue that for programming a bamboo stick ought not to figure into it at all, but I assure you it does. It's at least as effective a teaching tool as what they used when I was in school.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
How to get MBAs, bankers, and lawyers to work for the public good making an average income?
We're talking about a company who writes all their code in PHP. Nuff said.
The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
Facebook builds their software using PHP which ties VB for being the language of course for when you need as many cheap dumb programmers as possible.
You don't think they simply needed some new blood?
The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
I'm not talking about programming talking about IT work.
programmers make poor system admins.
Has anyone here used FaceBook's iPhone or iPad app? Stunningly buggy. Not the paragon of achievement in the industry, not an authority on good programming. Seem like they need to figure out how to ship a decent product before anyone should pay any attention to anything they have to say.
I wrote a scheduling system for a hospital licensing system in about 800 lines of SQL code. (Took over another developers set of stored procs). Very tough, and gave me some admiration for Bill Gates, who, in high school, wrote a class scheduling system that somehow got Bill and his friends into the same classes as the hot girls. Ok, maybe not so tough. But good to know when you can say you've already done some of the toughest challenges that the likes of Facebook can think up.
I have been on the hiring side, and the job seeker side many times.
I conclude on the job seeker side, just go with the flow, after you have been at it a bit you see the standard questions and puzzles. This tells the employer nothing, as these questions get around and the solutions are well known and on the net. When presented with these, I solve them for the free lunch, dinner, drinks job offer and trip; and then go, decide not to join, and for good reason.
The management speak troubles me more; after you have passed the puzzles, had the lunch with the engineering team and are now on with management for the afternoon and evening, I cringe at the rerun of catch phrases, that show no thinking whatsoever or original thought by leading mangagement, as to who I am and why I am here:
"Give me your 30 second elevator speech"
"What is your worst failure, and what did you do about it?"
"Describe your skillset, and convince me there is a match"
On the hiring side, I have been most successful to get the candidate to open up, and talk about projects and accomplishments. This lets me get into the past work history in a non confrontational way; ask for a story, let me pry into the technical issues with you and see your thought process for their resolution. This also gives me indications about the personality and style of the candidate.
We are going to work together, this is a marriage, we will probably spend more time together per week that with your wife. I need to know that you and I are compatible, and I have a short time to do it.
The current style does not support this idea, yet is far more important and successful than the puzzle interview.
You are abducted by savages, who intend to kill you. You can choose your manner of death by making a true or false statement. If you make a true statement, you will be submersed in boiling water. If you make a false statement, you will be burned at the stake.
What statement, if any, can you make to save your life?
If you don't want to waste your time watching the video, here is the only quote you need to hear from it.
"You don't necessarily worry about doing something the right when you're doing it in a hackathon. The most important thing is to crank something out."
Yep, that explains a lot.
A year or two ago, a Swedish IT consultancy called Ångpanneföreningen did an interesting twist on this theme. I figured it might be relevant to share in this context.
Ångpanneföreningen released a site called www.welcometothelist.com (no longer live), which when loaded just gave you an empty screen with a command prompt ("> "). If you knew your way around a command prompt and had some brains and patience, you could command your way to a list of programming problems which you could solve using the command line interface (still in your browser). This approach became an incredible success story. 60 000 visitors from 130 countries, 10 000 registered users (you had to get your bearings in the command line interface to register), a claimed press visibility to around 5 million people, 700 000 "rounds" played, etc. All from just launching a fairly simple web site with absolutely no advertisement etc.
A video (unfortunately in Swedish, still you can see the interface etc) of the project can be found here:
http://vimeo.com/29714690/
The top results, the source code for the server, and a working live copy of the original site can be found here:
http://www.lonelyduck.se/thelist/
To not want to work for Facebook.
It isn't that a square man-hole cover could fall through the hole when you try to put it back in whereas a round one can't?
Finally it could be a way to extract myself from such pedestrian IT work as a highly educated but poorly certified person.
"When information is power, privacy is freedom" - Jah-Wren Ryel
I recently read the IEEE paper "How to be a Star Engineer" (Google it, it's a great read). The researcher conducted a study on common traits shared among the industry's top performers. Turns out that being extremely intelligent was not really a significant factor. In fact, the star engineers failed to demonstrate a commonality in any of the traditionally emphasized areas of cognitive, psychological, social, or organizational superiority. It essentially boils down to how they used their existing skills in a smart, positive manner. Effective teamwork and communication are listed as huge factors, so I don't see how an IQ test can really be the magic bullet to finding a great employee.
I said "I don't think it is appropriate for you to be asking about my sexuality."
Turns out, the liars problem is actually silently related to stuff that Facebook programmers have to deal with on a regular basis. Behind the cute exterior, the liars problem is just a network mapping problem, so really Facebook is trying to find out if programmers can (a) Identify network mapping problems when they might not be immediately apparent, and (b) apply efficient algorithms to map those networks. Seems practical to me!
We have a winner!
I expect that many of the "brilliant" engineers aren't interested in the Silicon Valley / SF / Bay Area rat race and lifestyle.
Advice to Silly Valley companies looking for top talent: geographic diversity. There's a lot of smart people in Boston, NYC, DC, RTP, Atlanta (and maybe even in the Midwest, though apparently not in Minnesota, based on the stellar grammar and writing skills of said Wong.)
there are 3 kinds of people:
* those who can count
* those who can't
I always ask them what they do when they aren't at work, and what the last book they read was. Somebody with a passion for their hobby is more interesting than somebody who "plays with their dog and watches television", and more likely to have a passion for their work... Somebody who read a Dean Koontz book as their last is probably not the deepest thinker (apologies to Mr. Koontz).
I've had some crazy and some crazy stupid interviews. I've walked away from a lot of those offers.
there are 3 kinds of people:
* those who can count
* those who can't
you know that the traditional apprenticeships are 4/5 years (first year spent filing and making the tea)
"might be some brilliant people out there who haven't found their way to Silicon Valley". Uh-huh, because SV has a monopoly on brilliant person desirability. Hint, Mr Yishan Wong: not every brilliant person wants to live in California. Quite possibly because of the arrogance you display.