8 ms·
Some tidbits from Joel Spolsky's talk last night on recruiting programmers
- gaius 16y agoThat's interesting about the bad yields at MIT and Stanford, not something I would have guessed.
- achompas 16y agoAlso interesting to hear programmers with "motivation problems" usually fail to regain motivation.
- Tichy 16y agoWhat does he mean by motivation problems, though? The motivation to join the company? Or to work on that particular companie's problems?
- gaius 16y agoYeah, we've all had times where we're just burnt out... That would look to an unenlightened observer like "motivation problems" and it is completely recoverable from.
- arethuza 16y agoMotivation to work on what Joel will pay them to work on. I've known a few really bright developers who would be highly motivated if you were asking them to produce a streaming media server or debug a problem with the Linux TCP/IP stack (real examples) but who would probably die of boredom working on a bug tracker.
- unshift 16y agoI wonder if those programmers typically do better on their own projects or in their own startups. I would suspect the answer is yes, and they're probably a similar class of people to those who are good programmers with mediocre GPAs in school.
- singular 16y agoIt's interesting to tie that in with the 5-10x productivity claim - what about your working environment? If you're working in a negative environment motivation is staunched which inevitably affects motivation. Another point about productivity - if you're working in an environment where people want crap shovelled out as soon as possible, then the people who care about maintainability are likely to take longer on software (though once you factor in support, something often shovelled under the carpet, you will often out-gun the 'put out crap then fix it up' approach), and thus appear less productive than mediocre colleagues. Don't get me wrong, I do agree with Joel on most of these points, and I think he's probably talking about 9-5 developers who have little motivation to improve rather than passionate but burn-out or disillusioned developers.
- hga 16y agoI'm not sure what he means by "bad yield": I just talked to my friend who's been running the MIT EECS undergraduate program for the last 3 decades and she says the breakdown in graduating students goes roughly like a quarter each in: Postgraduate education (12% Ph.D., the rest law school, med school, etc.) Quite a few do some sort of postgraduate education some years later but MIT has no hard numbers on them. Finance/consulting (their math skills will earn them a much higher salary on Wall Street than they can get anywhere else). Established companies (e.g. as of a few years ago Oracle was the best for starting salaries, $95K then). Startups. So with the current per class enrollment of ~200 students that means Joel has a pool of 50 students who might want to work for him. Maybe they don't work to work on .NET and/or in NYC??? Note that all the above are "official", public and current, straight from the source.
- tghw 16y agoThe problem is, you don't know which 50 it is. I mean, we're talking about 22 year olds here, they probably don't even know. You end up having to "advertise" to all of them, which then leads to you interviewing some of them who are 90% sure that they're going on to a PhD, but just want to do the interview [for experience|to make their parents happy|to see if it might change their minds]. Full disclosure: I work for Fog Creek, and went to Stanford.
- hga 16y agoWell, that certainly sucks, and I e.g. in 1997 worked for a new grad who had interned at Microsoft and either had an offer there or had accepted it before his elder brother convinced him to work full time at the brother's startup, for which he'd programmed their prototype. (The other guy they really wanted was in SV and still happy their, until his company went poof much later). Anyway, what you're staying is that it's difficult to qualify your sales leads at MIT and that results in a lot of critical wasted effort. So much it's not worth trying (hard)?
- tghw 16y agoExactly; it just doesn't make sense for us to go to them and recruit. Of course, that doesn't mean we're going to ding them for having gone to MIT or Stanford if they come to us. We're a small company, so we need to focus our recruiting efforts where they'll be most effective.
- deleted 16y ago[deleted]
- Tichy 16y agoI hope dogs don't become an "internet standard". I don't want to work in an office with dogs. Maybe it would repulse me so much that I would even reject to work for Google. Besides, I thought the internet standard is LOLCats.
- dgabriel 16y agoI agree with you. I will work with your dogs in the office if you work with my children in the office.... no? Ok then.
- tomjen3 16y ago>Programmers with motivation problems: Joel has rarely seen successful "turnarounds". Hmm, this is properly a more specific example of the general point that you can't change people, only people can change themself - I would imagine that the successful turnaround would be a lot higher for those who themself perceive this to be a problem (and not just claiming so to avoid problems).
- Undisclosed 16y agoBoy, I gotta tell you from personal experience that Joel's right on. My GPA was OK, not perfect, and motivation is something I've been fucking fighting for over a decade. I've finally even gone to a psychaitrist but it's still a massive struggle and no magic bullet. So I have to agree with you, Joel. But damnit, I wish I could prove him wrong. I fight this every day.
- daniel-cussen 16y agoYou know, I once went to a doctor to ask about ADD, and was told I didn't have it. Fast forward a couple years later, I was diagnosed with ADD. I used to have motivation problems, and don't anymore because of the ADD medication. My (maybe unwelcome) suggestion: talk to a lot of psychiatrists.
- gcheong 16y agoIf you're talking at least in part about procrastination, this is one book I've recently gotten good mileage out of. It's a quick but useful read though, as you say, there are no silver bullets: http://www.procrastinatorsdigest.com/ http://www.procrastinatorsdigest.com/
- city41 16y agoI respect Joel for sure and he's got way more experience than I do, but I strongly disagree with private offices for developers. I had that while at MS and at first I thought it was just amazing. It didn't take long before I realized how much it stifles communication and even how territorial it can make people. Sure cubicles or even big rooms with open desks aren't nearly as glamorous or prestigious, but in my experience they foster teams that talk to each other, constantly, about the product. The overall team knowledge goes up dramatically. It also fosters an environment where people are more on the ball and productive, instead of sneaking off to some vice website every 5 minutes.
- percept 16y agoI prefer an office, but for those without I think there should at least be "quiet time" or consideration given to where different types of workers are located. This helps avoid the "talkers vs. typists" problem--don't mix the two. For example, don't put me near the support guy who has loud and frequent speakerphone discussions about resetting passwords, his personal doctor visits, etc. ;)
- oiuygtfrtghyju 16y agoI've had it bad at both ends. The 'we have no heirachy - the owner doesn't have an a office' open cubical farm where you are stuck between chatty secretaries and shouting salesmen. And the private offices where one office = one person = one module and the only way to talk to somebody about 'their' part was a request up the management chain. Best was a 'programmers only' room with one huge desk for three programmers on the same project.
- hello_moto 16y agoI used to think that programmer needs to work in a very quiet room because they need ultra-sharp focus. Turned out there are bad side effect from this situation. This is one of the reason why programmers tend to be weirdos and outcasts. This is also a reason that you often found crazy complex code. As you mentioned it before, they become territorial. I often met with programmers whom you can't just disagree with. It's like they live in their own world and everything they do is right according to them. Coincidentally when you write your own program, you're a god in that universe. The stories of "a small group of great developers working together on a great product" were often being told in HN threads. Please understand that we should emphasize more on the word "group" and the phrase "working together". They don't work alone. By the way, I had experienced private office too before. Boring.
- dagw 16y agoI found it interesting that he claims Wall Street offers dull problems compared to most startups. I've never worked there myself but I know people who do (and in London), and they tend to work on awesome and seriously hard core projects. Stuff right on the cutting edge of math, CS and technology and often far beyond what most start-ups deal with. Sure I'm not doubting that there are plenty of dull jobs on Wall Street as well, but I'm surprised he writes off the entire sector.
- hello_moto 16y agoThat's what I thought so too. Remember that Russian programmer who worked for Goldman Sach (or was it Morgan Stanley) that got caught for stealing his own code when he moved to a firm in Chicago? He's coding in C++, Erlang and a bunch of other things doing hardcore Math and CS. Has Joel ever worked for a Wall Street firm?
- nsoonhui 16y agoMaybe his sampling is restricted to "dull" programs such as writing UIs for traders, CRUD internal applications etc.
- inerte 16y agoProbably a selection bias. He doesn't want the types frequently found on Wall Street firms. He found good people who do NOT want to go there, and assume every good people does not want to go there. Or the kind of programmers he's looking for. I kinda have this prejudice too. If you're doing Wall Street job, it's probably some boring stuff, 100% focused on money and enterprise, with crappy UI and thousands of slices of the same dozen reports.
- strlen 16y agoThat surprised me as well. I really respect Joel for a) treating his programmers well b) not taking external funding for something that doesn't actually require (I suspect points a and b are connected too). but writing a bug tracking system in ASP.NET seems a lot less intellectually challenging compare to what's involved in a high frequency trading system (even if you don't get to use Erlang, Haskell, OCaml and C++ -- and you frequently do). Of course that's also nothing compared to many Silicon Valley companies (you get to work on hard problems and you're in a place where core competency is software). I'd imagine, this is related to his point about Stanford (or any other Bay Area school for that matter, even San Jose State): if given other choices, graduates will tend to work on projects that are more interesting or "hard-core" (to borrow a phrase Joel himself has used in terms of of what sort of he experience he looks for on people's resumes). (Edit: Had a point about GPA, but since others are talking about this, I'll remove it. That said, does Joel (or anyone else) have any hard data on this, in a statistically significant sample?)
- todayiamme 16y ago>>>GPA is really good predictor of good programmers (this surprised me). You can have great programmers who have bad GPA but that often means they are great only when working on super interesting projects which won't always be the case in real life.<<< I think that this is a bad line to draw. Sometimes, it's about bright kids getting bored with dull teachers, but more often it's about troubled kids who need to escape. This is quite important because I would hire someone who has crawled his/her way up through adversity in a heart beat. As compared to someone with a cushy resume with an equally cushy life. Think about it in this way. Person A has never had anything to take for granted and has to fight for every inch s/he has gained in life. Person B has a much more impressive resume, but grew up in a comfortable life with an entire army at their beck and call. Who would you choose for a startup fighting against the odds? [edit - I haven't judged someone on the basis of their financial background, or something like that. In fact, what I was trying to say is that until you understand the context of what a person has achieved you cannot judge them. Kids who have parents with large bank balances can also face a far from ideal childhood. Moreover, kids whose parents struggle to make ends meet can have the perfect environment to grow created by their parents. It's my observation that you can't judge if someone will be good, or not on the basis of what lies on the surface. You need to truly understand the struggles of the person in front of you to make that decision. So, as a rule of thumb I would pick someone who has struggled more in life vs. someone who hasn't felt the world crash around them.]
- Construct 16y agoYou make quite the leap from GPA to a person's financial background. I would still lean toward the individual with the higher GPA, as it really is a solid indicator of how hard someone is willing to work. Joel makes a great point that academic projects are frequently uninteresting, but a high GPA indicates that the candidate can complete these tasks regardless. Judging someone on their financial background instead is heavily subjective, prone to all sorts of prejudices and pre-conceived notions, and doesn't actually tell you anything about the person's abilities. After all, a driven and motivated person from a troubled financial background can achieve a high GPA. Your theoretical 'Person A' who lived a cushy life yet isn't motivated won't be able to achieve a high GPA without working for it.
- jswinghammer 16y agoThe GPA thing always bothers me to hear it admittedly because I wasn't a great student in college. I typically always had my own thing going on that I cared about more. I can see where he's coming from though and I consider high GPA to a good sign when I'm looking at a resume. Often when I look at resumes I'm just looking for anything good. My career outside of school is considerably better than that my work in school would have ever suggested. Before I started my company I was always the programmer who everyone hated to see leave and who was offered a lot of money to stay. I was glad to hear people talking about my younger brother who is also a programmer the same way. I figure that's the final measure of how good you are. I never really cared much about what I worked on though. I always just wanted to be kept busy. Part of why I wanted to start my own company was to stay busy.
- shadowsun7 16y agoWhat interests me is if there's any correlation between objective ability (as in programming 'skill') and GPA. I'm not surprised that programmers with good GPAs make better hires for Joel - it means they're more likely to do work on somebody else's project even when it doesn't particularly interest them (which is good for an employer in a small/medium size firm like Fog Creek, as opposed to an early-stage startup). But is there any correlation with programming ability? Or is GPA just an indicator of 'obedience'/employability? Nonetheless - great insights, all of them, as is only to be expected from Mr Spolsky.
- limist 16y agoIf the courses were rigorous enough, then I'm sure the correlation between grades and programming ability would be meaningful and fairly reliable. It's hard to imagine someone doing well at courses like algorithms, statistics, and compilers, and not being a decent programmer too.
- xiongchiamiov 16y ago> It's hard to imagine someone doing well at courses like algorithms, statistics, and compilers, and not being a decent programmer too. Sure, but are those who did poorly in those classes less likely to be good programmers? I aim for slightly over a 2.0. I limit myself from going lower because that puts me on probation, which does irritating things like prevent me from being on paper as a club officer (I'm unofficially the president of our LUG for this upcoming year). I don't aim for higher grades because I find that the amount of work required is on an exponential order - the difference between a D and a C is far less than a B and an A. Doing fewer assignments gives me time to work on all sorts of projects that there aren't any classes for. As a result, I've got a basic understanding of quite a few different things, enough to realize if one of them is a good solution for a problem. But that's what I am - the guy who knows a little about a lot. My role in a recent team project was essentially that of technical advisor: when my teammates weren't sure of how to approach a problem, they came to me for suggestions. Now, will this bite me in the butt later? Quite possibly. Edit: I suppose my question is this: would you rather hire someone with a good GPA but little programming experience outside of school, or someone with a rather poor GPA but contributions to open-source (with code quality being roughly what you would expect in order to achieve the first candidate's GPA)?
- Revisor 16y agoI just bought Smart and Gets Things Done by Joel Spolsky on hiring the best programmers. http://www.amazon.com/gp/product/1590598385/ http://www.amazon.com/gp/product/1590598385/ This article has whetted my appetite even more.
- RiderOfGiraffes 16y agoI'm not alone in picking up on this: > private offices for each programmer, I refer readers to the comments made by Richard Hamming, quoted here by PG : http://www.paulgraham.com/hamming.html http://www.paulgraham.com/hamming.html : about shutting oneself away: > I notice that if you have the door to your office > closed, you get more work done today and tomorrow, > and you are more productive than most. But 10 years > later somehow you don't know quite know what problems > are worth working on; all the hard work you do is > sort of tangential in importance. > > He who works with the door open gets all kinds of > interruptions, but he also occasionally gets clues > as to what the world is and what might be important. > ... there is a pretty good correlation between those > who work with the doors open and those who ultimately > do important things, although people who work with > doors closed often work harder. Somehow they seem to > work on slightly the wrong thing - not much, but > enough that they miss fame. Adapting this to programming, intra-team communication is already hard enough to establish and get flowing. Don't put stuff in the way. Yes, programmers do need quiet environments, but the gains from good and easy communication will out-weigh the losses. If you really need silence for a bit of hard-thinking work, take your laptop and go somewhere else for a bit.
- jtbigwoo 16y ago> I notice that if you have the door to your office > closed, you get more work done today and tomorrow, > and you are more productive than most. But 10 years > later somehow you don't know quite know what problems > are worth working on; all the hard work you do is > sort of tangential in importance. I think Joel's office will avoid this problem because they have scheduled interaction time each day. The daily all-company lunches prevent the employees from becoming isolated and out of touch. I don't think he intended for the free lunches to be a balance for the private offices, but that seems to be the function they serve. Edit: fixed a typo (I'm don't vs. I don't)
- agentultra 16y agoScreening process: Resume screen, phone screen, web based Etherpad code test, then fly/bus in and day of interviews and whiteboard code test. As a programmer currently looking for work, I find this screening process to be draconian and insulting. I cannot vouch for it's efficacy as I've never used it when hiring people. However, the problem I have with it is the rigidity with which I've seen it enforced. I've a number of open-source projects that I've started and contribute to and a plethora of code examples I can send upon request. I like to think of it as a portfolio of code. I've sent links to these projects and made sure the recruiter knew that I could provide further code samples as required. Yet each time I walk into the interview, the interviewer hasn't read a single line of my code and hands me a dry erase marker. I then get the sense that I'm just another number and they could hardly care about who I am or what I do. I don't know what writing code on a whiteboard is supposed to show the interviewer. The person they're interviewing is not in the normal state of mind they are in when they're doing they're job. What good is a pressure test other than to keep very good, capable people out of your organization? Certainly a production artist wouldn't walk into an interview with a portfolio and be asked to draw a puppy. The gall of the interviewer would force the artist to walk out unless they're especially desperate. The same is true for programmers, IMO. If a candidate sends you code to read, take the time to read it before you interview them. Otherwise why should they even bother sacrificing their time on this Earth to your benefit if you won't even consider their work and effort?
- umjames 16y agoI hear you, but if I'm looking at your code that I didn't see you write in front of me, how do I know that code really came from you? You could have copied and pasted most of it from somewhere else and only made slight changes.
- agentultra 16y agoWell if it's an open source project, you could just google some of the code snippets and find out. Plagriarism isn't hard to detect unless the code is proprietary. Then I suppose you either have to be paranoid and suspect everyone or accept that most people you talk to are pretty much like yourself and not lying cheaters.
- lucisferre 16y agoAs is often the case with Joel's stuff, some decent but fairly obvious ideas overshadowed by terrible ideas: - Private offices? - Over 1:1 ratio of interns? Does this make sense for small "agile" teams? - Then some talk about what school people went to and GPAs... right. I suppose if you are hiring that many interns this will matter somewhat.
- tedunangst 16y agoA 1:1.5 ratio is less than 1:1.
- lucisferre 16y agoThat's what I get for reading in the morning.
- edw519 16y agoJoel is super strong advocate of : 1) private offices for each programmer, 2) free, nicely catered lunch every day (everyone eats together and bonds), 3) usual internet stuff - comfortable office, dogs, flexible schedules etc. On one hand, a little voice inside of me cries, "Yes! This is what it takes to produce great software: a programmer-appreciative environment." On the other hand, another little voice claims, "This stuff is all well and good, but nothing more. It's cosmetic, not functional, like putting perfume on a pig." I have been in many situations with Class A office space, private offices, catered team-building breakfasts and lunches, etc., etc., etc. and was ready to jump out the window. Why? Because the work sucked and all the window dressing in the world wasn't going to change that. Then I think back to some of my most favorite projects and remember the great work that we did. Sometimes in squalor-like conditions, sharing cubicles or tables, sitting in the server room with too much air conditioning or in the warehouse without enough, eating vending machine garbage and drinking old coffee because that was all there was. Bottom line? The work itself is 100 times more important than the working conditions. Sure, everything being equal, I'd rather have nicer digs. But everything not being equal, I'll choose the better project every time, no matter what the environment is like. I suspect Joel gives the programming environment more credit than it deserves. His people are probably happy, and the office helps. But the real reason is the work itself, and they'd be almost as happy no matter what the office was like.
- ergo98 16y agoYou worked in great conditions but on a bad project, and you hated it. You worked in poor conditions, but on a great project, and you loved it. I think you jump to conclusions saying that therefore the work is more important than the conditions. Joel isn't saying that conditions alone suffice, but that it's an input of worth. Please, for the sake of HN, work at a place with great conditions and a great project and report back on whether it was better than great.
- edanm 16y agoActually, it's not only about making programmers happier. That's a large part of it, but private offices also make programmers more productive, because they have less interruptions. The way Joel figures it, programmers are your most important asset, not to mention a huge expense (salary-wise). Paying extra to make them more effective is usually a winning strategy.