Hiring Developers By Algorithm
Strudelkugel writes in with a story about how big data is being used to recruit workers. "When the e-mail came out of the blue last summer, offering a shot as a programmer at a San Francisco start-up, Jade Dominguez, 26, was living off credit card debt in a rental in South Pasadena, Calif., while he taught himself programming. He had been an average student in high school and hadn't bothered with college, but someone, somewhere out there in the cloud, thought that he might be brilliant, or at least a diamond in the rough. 'The traditional markers people use for hiring can be wrong, profoundly wrong,' says Vivienne Ming, the chief scientist at Gild since late last year. That someone was Luca Bonmassar. He had discovered Mr. Dominguez by using a technology that raises important questions about how people are recruited and hired, and whether great talent is being overlooked along the way."
Leaving a backdoor in this program would be the ultimate job security guarantee.
Hello, captain obvious. Yes, having a piece of paper doesn't mean you're good at what you do or that you even know what you're doing; plenty of college graduates are merely imbeciles.
I've been programming professionally since 1994. I'm sure I'll get around to taking a computer course one of these days. My first task with any new job is "Get past the HR moron" followed by "Find someone who actually knows something." If you're lucky, this is a manager. Frequently, however, describing the code abstraction structure in your overall application design often whizzes right over a manager's head.
My suggestion? Keep it simple. Have some apps to show them, or a a web site with your latest web apps. Talk about how it solved a problem. Don't worry about the details until you get to another developer.
Please do not read this sig. Thank you.
Sorry, this article did not make it past my keyword scanning filters. Moreover, it does not have 7 years of experience to back up it's introductory claims. Since I cannot find a suitable article, I will have to source one from India.
Sounds like one more boost that will give impetus for more people to become involved in open source projects.
Whoosh. I think the whole point is that having a phd isn't the best measure of anything. I've worked with phds and high school dropouts and I've never noticed any difference except that the dropouts are less entitled.
He is the only one who reacted to the spam?
I get tons of job offers and the only algorithm they seem to be using is that I at some point in the past was looking for a job. By pure chance one will fit me, I am sure.
Don't fight for your country, if your country does not fight for you.
I am beginning to worry about this trend to have an online coding portfolio.
I think open source is great, but once I got done with my day job coding, I never want to touch another line of code until work the next day. Adding to that, what about the basic need to socialize, spend time with the family, and spend time on hobbies?
I have definitely seen SF job postings for people with extensive open-source commits. Those posts are biased towards a few people who are lucky enough that their company pays them to work on open-source products, are unemployed and doing open-source thing until hired, or the very few people who code for 16 hours a day. Personally, I wouldn't hire the person that codes for 16 hours a day, but that is who I need to be to get noticed these days?
... you've bothered to learn the necessary engineering outside of school and can convince them of that fact.
We're talking about programming here and software design. By 'Software Engineering" are you referring to this? I have never seen anyone with that cert or anyone who really cares. Has anyone actually seen it asa requirement for a job?
Actual "Software engineering" is something that I have never seen in practice - ever.
Every company that I've been at and every project that I've seen everywhere including all over the internet, designs and develops software the same way: hand over vague specs, figure it out and pound out that code. That's how developers/"Software engineers"/programmers (they are just titles referring to the same skill sets - get over yourselves) are hired - someone or a group (only the a genius superstar) can come in and knock it or their section out.
We're Artisans - not engineers.
Yeah, and how is an employee supposed to get experience without having employment? Spare time projects aren't enough anymore. You've got a chicken-egg problem there.
1. One of the benefits of this country is the lack of an official caste system. Unfortunately, an unofficial one is solidifying out of the economic downward spiral the country's going through. Why would you support either? It's likely that you would be in that lower caste and not able to work in technical fields even if you have the ability...and if you were born into an upper caste family and still had the time to post on slashdot, you'd be one of those dead-end children, like paris hilton.
2. What's a real company? You mean the ones with the 10000 office drones? Doesn't sound very motivating to me. Ones who bootstrap themselves are more likely to create their own companies rather than work for schlep, overprivileged, highschool/college football jocks who now run companies whose culture cares more about enforcing dress codes than getting any real work done...you know, those too big to fail companies that routinely take bailout money from the taxpayer? Yeah, what were you saying about lazy twats?
3. The funny thing is, it takes a minimum of two to get a job: the candidate must apply, and the employer must accept. There are more people than jobs these days, and that ratio is increasing over time. This fact makes your simplistic blame game an ad hominem attack. Wake up. If you're working for one of those 'real companies', guess what? You're just as replaceable as that beggar on the street probably was. Your employment status is not proof of your superiority. Get over yourself.
No one is good at everything
I've worked with legendary programmers throughout my career and I can tell you this --- you must understand the strong points of a particular programmer (even the legendary ones) so that you can tap into his potential and let him/her perform
That "hiring by algorithm" is indeed a new way of looking at things, but it does take experience - excellent programmers all comes with their own particular quirks - and you need to provide them the room to stretch, the freedom that they need, in order to get them to do whatever they are good at
Muchas Gracias, Señor Edward Snowden !
Yeah.. or employers could hire dull minds, who were selected precisely because they willingly conform to every little managerial passive aggressive manipulation. Of course, these people are useless for anything but the most basic office work, but that's of secondary importance. The state set up our school system to produce these drones after all, and now even colleges are dumbing their programs down so these drones can get pieces of paper saying they're qualified computer scientists/programmers/engineers. These little drones are even encouraged to split themselves up into identity groups based on irrelevancies like race and gender! Now they have something else to bluster over when someone points out their mediocrity! Today's culture obviously values mindless obedience and adherence to every minor social convention over creative, adaptive, critically thinking minds. Too bad.
Depending somewhat on the kind of company doing the hiring, the prospective new hire shouldn't just be evaluated for the job at hand, but also for how well they'd do at other jobs, both at and above their current level. This means testing for adaptability, versatility and future potential. This, by the way, is where I find that people with college degrees far outperform self taught high school dropout programmers.
If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
I'm really loving this attitude that PhDs are not any different from high school drop outs. This is perhaps true for menial tasks. It says something about the posters who tell these stories. Try assigning that high school dropout to do something non-trivial and highly conceptual, and you are mostly likely completely screwed.
I know Slashdot isn't the place to say this, but almost all programming is menial. You wouldn't hire a high school dropout to do something serious like physics or chemistry or biology, but for driving a bus, washing a car, writing a UI, or cleaning toilets they're perfectly serviceable.
You attitude is why we have abominations like Unity, Gnome3, and Windows8/Metro now.
I know Slashdot isn't the place to say this, but almost all programming is menial.
No!
Most programming work is tedious, however most important decisions have to be made constantly, in the midst of that tedious work. You can't make decisions by yourself, then pass the work to an idiot -- he will not notice where he has to make a decision, and will do something random that seems right, and those decisions will eventually destroy everything.
Contrary to the popular belief, there indeed is no God.
Just forget about all those people with advanced degrees waiting tables, or working as tellers in banks. A degree is one metric, and often not a very good one. From the actually article "seeing how the candidate's code is regarded on line" is a much better metric.
No one is good at everything
I've worked with legendary programmers throughout my career and I can tell you this --- you must understand the strong points of a particular programmer (even the legendary ones) so that you can tap into his potential and let him/her perform
That "hiring by algorithm" is indeed a new way of looking at things, but it does take experience - excellent programmers all comes with their own particular quirks - and you need to provide them the room to stretch, the freedom that they need, in order to get them to do whatever they are good at
Interesting... You describe programmers much like other people describe artists. This is not a bad thing. I see programming, as a programmer, as part art, part science. Programmers need a deep understanding of logic and not a small bit of creativity to solve problems.
I've hired about a hundred programmers in my career, and education and career background are a good set of indicators, but they're not the be-all and end-all of selection. I've had the best results from avoiding agencies and their filtering methods, believing it's worth plowing through a lot of crap myself, in order to not lose that one gem that can transform your entire development effort.
And again, oddly enough, some of the best indicators were clear, intelligent, structured English and an interest in music. There seemed to be almost no correlation between those factors and their achieving a degree, or their lack of one.
On a whim once I interviewed someone who had a non-standard resume that consisted of a well-reasoned argument for her self-taught programming skills, in impeccable English. I brought her in, and she showed me code samples that were sophisticated, well-written, well-commented and offered proof that they worked. Her background was "housewife", no job background at all, no degree. I hired her, and she ripped through the workload like a veteran.
Don't be lazy, do your own filtering.
Do not mock my vision of impractical footwear
Actually, bigotry creates ostracization. Modifying your body doesn't intrinsically do that. These days, most people deal with trans folks just fine; the few Archie Bunker wannabes running around calling them names are still a problem, but are rapidly becoming a small problem.
My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
Disclaimer: I'm a high-school dropout.
Theoretically, hiring a PhD would give you some guarantee about what the programmer is capable of doing - you can expect him to know not only how 2nd degree equations work, but also the basics of transcendental functions and how to apply base concepts into real-life problems. Theoretically. In practice, shure, maybe most dropouts don't have the basis to understand a lot of stuff - but many PhDs don't understand it either. And some of them, while understanding it, are unable to put in in practice.
I'm one of the few (only?) completely self-taught developers on the company I work for (>100 developers). For most tasks, no "special" knowledge is needed - a monkey could do it. Even so, some academic folks struggle with concepts. For non-trivial, conceptual tasks, I'm usually at the top of the list of the guys to ask stuff. I've done stuff ranging from math coprocessor emulation to signal processing, image processing, 3d programming, embedded systems, compression algorithms, data processing/mining, etc. I'm probably not better than a good PhD (or a guy like me with proper academic background), but I'm way better than *a lot* of median ones.
I would recommend to anyone that wants to be serious either in programming or CS to get a degree - proper mathematics is something that is usually hard to learn without a teacher - but having expectations on a guy just because he has a degree is just stupid. As it is having great expectations regarding a high-school dropout.
There is big gap from HS drop out to 4-6-8+ years of college.
There are lot's of tech / trades / boot camps / ECT.
Also on the job learning.
Great.... so now Klout has moved from sales and marketing to engineering. From reading the piece, that sounds like all this really is, a test of how socially connected and active the programmer is. Introvert and professional who have non-programming hobbies need not apply. I imagine non-OSS and non-web people would also struggle with this since those are domains that tend to be well represented in visible projects, while people in the app and embedded fields tend to not be able to show off their code like that.
So yeah... not impressed.
As much as HR would like to see "out there" people with tons of blog posts and lots of check-ins on open source repository sites the fact remains that many great programers labor on in obscurity because they're too modest to promote work that while useful isn't exactly brilliant. Just because somebody checks in a lot of code and writes me-too blog posts doesn't mean that they're a great programmer. You want to know what really attracts good developers, especially experienced ones with grown up responsibilities and families to feed? How about making them some basic promises when you hire them, like a 2 year deal with a guaranteed severance package and some time at work to either work on personal growth projects or work on new skills that will be useful in future projects? The problem with these Silicon Valley types is that they want bright young hotshots fresh out of school and not experienced enough to recognize the fact that they're being used up and thrown out by people who don't really care about their careers or their futures. The other thing about bright young hotshot coders is that you can't tell them anything. They think that they know everything and that everyone who came before them was a dumbass and then proceed to make every mistake in the well worn programming book of things not to do. If you want to relearn the programming mistakes of the past, hire that hotshot fresh out of school. If you want it done right, look for the experienced programmer described above and pay him what he's worth. It's just better that way for everyone in the end, even the blue flame special straight out of school.
This attitude is common in programming mostly because the field changes so quickly and schools still do a poor job among other things. However you DON'T see this attitude for hiring chemists, biologists, mechanical engineers, chemical engineers etc.
It might be okay to be a self taught programmer and writing some software but a self taught bioengineer that will be creating custom bacteria in a multimillion dollar reactor to create some new drug is another matter entirely.
You might trust a self taught programmer to write your webpage, would you trust a self taught aerospace engineer to design a plane?
There is a large difference between real engineers and most programmers, a lot of that is the responsibility that goes with it.
Computer modeling for biotech drug manufacturing is HARD!
The trick is that you want to get rid of the ones who want to coast, whether or not they've got degrees. A lazy ass is a lazy ass, whatever pieces of paper they've got. However, I'm not going to pretend that a lack of a degree automatically makes you better either. The advantage of a degree — apart from having a piece of paper that says you can actually work and think a bit, at least some of the time — is that you've probably got better contacts and have been exposed to more sophisticated ideas than someone without. For someone who is good and hard working in the first place, a degree is a good thing as it should expand the range of ideas in their mental toolbox.
But after a year or two of work, that degree doesn't matter a whole lot. At that point, it should be possible to see if they're a stupid lazy ass on the basis of their work (or lack of it). You don't want stupid lazy asses, at least not for programming jobs.
"Little does he know, but there is no 'I' in 'Idiot'!"
Becoming a competent bioengineer or aero engineer is likely to require special equipment and a lot of practical experience that's hard to come by. Software developers don't generally need that. 'Self taught' doesn't mean that someone hasn't read the same books and papers, or learnt the same material, as someone might have done following an official course. Mostly what the course adds is third-party validation. Also, think about just how much of that knowledge is really retained by the typical graduate, and just how applicable what they've learnt really is. Personally, I wouldn't trust a graduate straight out of university to design a plane, either....I'd rather have someone well respected by their peers and with a history of good work.
Some programmers are artists in the same way that some engineers are. "Some" being a small handful in each generation. 99.9% of the rest are just doing a job in the same way that a joiner makes a table.
To have a right to do a thing is not at all the same as to be right in doing it
As a dyslexic my writing ability is disconnected from my reading ability I had a adult reading age several years above the average for the population at 10.
Actually most CS PhD's out there don't do too heavy theoretical work. They do, however, write more proof-of-concept level programs and systems, than actually producing engineering quality programs.
Try to pick up a paper in non-theoretical journals or conference proceedings you'll see most of them describing a new concept or application of theory, and then its implementation. A lot PhD students come up with the concepts and write the code, which are sometimes referred to as "experiments". Many projects are even about making the programs themselves.
On the other hand, I agree a lot of theoreticians don't like to code, but a lot of them were also once quite good at it. They maybe did so much coding since before school that they began to hate it, or simply have little interest in pure engineering. Then you'll find some who still retain an interest in coding, and I think they are quite easy to spot.
I agree with all of that. I was trying to make a point that this considering a degree worth almost nothing is mostly only valid in fields where obtaining the knowledge and practical experience is not hard to come by. If something requires a lot of specialized equipment to learn and the act of learning can be dangerous without professional supervision then the degree matters more.
I would put my knowledge of programming up against any CS degree. I am a self taught programmer. However I would not trust a self taught chemical engineer. I would absolutely not trust a self taught engineer doing bioengineering. The tools you need, experience etc are just not really available outside of a university for those. That is one reason I returned to a university to change my profession. I wanted to do something I am finding more interesting and that requires knowledge I can't just gain on my own. Over the summer I will be doing some actual creation of customized bacteria to create specific enzymes and proteins for a project. That is not really knowledge you can gain on your own and trying would be be expensive and dangerous.
Computer modeling for biotech drug manufacturing is HARD!