No, not at all.
You're assuming that "will you please tell me about the best project that you’ve ever created?" has the words "Outside your previous jobs" - which it clearly doesn't.
If you've made or contributed to something great at a previous job - talk about that!
As soon as I read that question I paused and thought about how I would answer it - of the 10 possibles I came up with, about 5 are "personal projects" and about 5 are "from previous paid jobs" - the thing about the paid jobs ones is that I get to talk about all the awesome people I got to work with, all the stuff they taught me, all the conflicts I had with that Project manager (!!), all the trade-offs we had to make so the project actually shipped, some of me reservations about so much technical debt being created, etc. etc.
There is absolutely nothing wrong with answering this question about something you were involved in at a previous job. The point is to find people that are passionate.
I'm incredibly proud of some independent projects, but they're definitely informed by my days working on million-dollar projects, some of which were pretty awesome.
And what if you were the guy that found a bug in a Mars rover? Sure, maintenance programming, but you still did something worth talking about.
And even maintenance programmers with a bit of initiative can do something interesting. "Well, I had to dynamically change the name of 20,000 functions in a project so I wrote a tool to do it automatically and went home early while the tool did the work". That's the quality the interviewer is looking for.
The good part of the article stands, though. In a good programmer, there will be a spark, and he has the right idea about the interview question.
A perfectly valid way to respond to it would be to refer to something you did at work. "Oh boy, that's difficult because the code I've had to deal with has been legacy stuff that... well let me see, there was this big ball of mud where it took us a week to track down an intermittent bug, the debugger was useless... but after that, I figured out a way to put in logging code so we could at least see what was going on and we'd have a better chance next time..."
You're not looking for spare time programming or some particular answer. You're looking for a non-rote answer. You're looking for the spark.
No it doesn't.
I'm a guy who has the "two jobs" by your description. More precisely, it's a job and a hobby. However, my "best/coolest project/work" has always been something I have done for an employer. I can't imagine coming close to that "level" of work by just playing around at home.
If you can't answer the question in the post with a project that you've done at work, and you don't program as a hobby, you simply do not qualify for what OP is looking for.
The 9-6 stuff is rushed and designed by others.
Actually, it does appear in other industries. Many of my friends who are designers do various sorts of art in their free-time, whether that's drawing or even the same type of photoshop stuff they do at work. One of the best CNC machinists that I know has come into the shop on weekends to experiment with making ornate snowflake ornaments, folding knives, and motorcycle attachments on the mills... His job consists of machining parts for cable laying machines, but he enjoys the challenge of figuring out how to manufacture complex parts so much that he does it in his free time.
I don't know any accountants or optometrists very well, but I wouldn't be surprised if the passionate ones spent time outside of work learning about the latest advancements in their respective fields.
> Competency doesn't require fanaticism, and no employer should expect that their employees devote their entire lives to their occupation.
True, _competency_ doesn't require fanaticism, but if you want to _excel_ at something (and don't want to end up hating your life in the process) you had better really enjoy it because you're going to have to put in several thousand hours of learning. Spending all that time exploring your particular field of study won't be a problem if it's something you love, and you're more likely to continue exploring it and keeping yourself up-to-date if you're interested in it. Thus, passion makes a pretty good predictor for success among high-achieving employees.
This is along the lines of what I was thinking.
If I'm looking for someone who is really passionate about what they do, they're probably going to be associated with it outside of their nine to five. This could be reading books, magazines, talking to people, participating in discussion boards, or trying to figure out problems.
That doesn't mean every employee is like that, or that you have to be like that to be a worthwhile employee, but it's not crazy to think that someone in almost every field will be actively involved in something related to their profession in their day to day, outside of work.
Even with accountants, you might not be doing someones books all the time, but you might have an active interest in financial news, forums, current scams, common mistakes, loopholes you could use, etc. etc. (I don't know anything about accounting; don't judge me :))
My grandmother was a corporate tax specialist for AT&T, she certainly seemed to enjoy doing her personal income taxes (and those of some of my uncles and aunts). This was way before Turbotax, Taxcut, and the variety of programs that have made it less unpleasant.
What is different about some other professions is that there are ways to develop that passion during apprenticeships or entry-level jobs while learning from those with greater experience. Mastery is far easier to acquire with a teacher on hand who can give timely, guided feedback and correction.
“Oh! A few months ago I created a basic budget tool based on graph theory—so I can create 'branches' like in git, but for my personal budget, and then forecast how certain changes affect my budget overall. It really helped my wife and I visualize how certain decisions play into our plans over the next couple of years. Would you like to see how I implemented the recursive SQL lookups in ActiveRecord?”
I hacked out a basic MVP for the above in 4 hours one Sunday afternoon. I don't hack on side projects every Sunday, or even frequently: a lot of weekends I want to explore the city, sleep in, and work on projects around the house. But I love programming, and I love how software can affect our every day lives, and sometimes little itches like the above come up and I scratch them. And this one story would be more than enough to pass the author's test with flying colors, and is /nowhere near/ holding down two jobs.
What was the household budget in originally - a RDBMS? Mint or quicken ?
Not meaning to be aggressive - just wanting more context - and yes, please let me see code :-)
This is not unrealistic in other professions as well, maybe just not as easily recognizable. I have friends who are Ad execs and love advertising as an art, they'll often discuss ideas they've had, things they've been thinking, etc. etc. which is outside the scope of their work. It may be the client they'd like to bring in and the ideas they have to improve that client's business, etc. etc. What about doctors who vicariously keep up on all the latest knowledge in their field and are actively collaborating with other doctors on discoveries and research (my sister does this as a veteranarian, and is also randomly helping people in the park on a Saturday morning who have questions about their pets, as well as doing a spot on the local news about caring for your pets). This is unpaid/hobby work, but it isn't as concrete as what we do, and therefore, people don't consider it.
We aren't the only group that is passionate about what we do, and we aren't the only one's who work on our craft outside of work hours.
I think a better way to take what the author is saying is that he is looking for people who look at software development as a craft, and people who are so passionate about it that they are constantly engaged in their craft even outside of work hours. They love what they do so much that they just can't stop.
At the same time, I think it is important for employers to recognize when and if they need somebody who meets this criteria.
I am reluctantly creating a side project at the moment, as I want to get into freelancing, and all my previous work is in house. Even without kids I find it difficult to find enough hours to put into it (trying to use a free hour here and there leads to almost zero productivity, I need a minimum of three at a time).
Very true. The only problem with that is that when judging between two job candidates, the one who is devoting their entire lives to their occupations is going to be a more desirable hire.
>At the very least, that seems to be his expectation of good candidates, and his hiring process clearly disadvantages people who can't or won't code 24/7.
Just as the field of competitive Olympians disadvantages people who can't or won't train 24/7
Schedule and prioritize your work to align with business goals Interact with non-technical users and domain experts and understand their problems and techniques Work productively with and integrate your work with the work from related fields, like DBAs, designers, artists, etc Work with a team of developers productively, including making your ideas heard without being intolerant or offensive
That's stuff you don't tend to get from doing side projects. Maybe if you turned a side project into a real business, or were a senior contributor on a large, long-lived open-source project, or something like that.
Come to think of it, I was more sympathetic to the article's idea at first, but writing this makes me reconsider whether just having passion for something that you have built is enough to base hiring decisions on.
Well that is exactly the point.
The idea of some amazing "code monkey" detached from real life requirements, constraints and development timelines is a fiction and does not represent reality. The best developers have a deep understanding of the tools and the applications and it is that devotion that I am referencing.
There are in fact people that think in terms of building new things through code ALL THE TIME - and then implement them. Those people are going to have an advantage in the hiring process.
Also, there are only so many gold medalists every four years. In the IT industry, there's no theoretical upper bound, so it's not nearly as dire, you don't really "run out of slots" as fast.
If their company only hires once a year or so, that's still running out of slots quickly. The author works for an individual company, not "the IT industry".
Not true. The more productive and effective candidate is the more desirable hire.
Also, the question doesn't imply in any way that it has to be an off-work project. Its only point is to see if a person actually cared for any code they wrote in the past or if they treated coding just as means to an end.
The comparisons you've made are with non-creative fields. For those I know that work in other creative industries (graphic design, photography, music, theatre, copywriting), they almost always spend a good deal of their free time exploring their passion. If you love doing something, you probably won't be satisfied if the only time you get to do it is under the strict direction of another.
In any case, if there are enough candidates to select from, and you have no better way of determining which are the better candidates, why not choose the ones that code for fun in their free time over the ones that don't? Those candidates almost certainly have a passion for programming while the others it will be harder to tell. Plus those candidates will be constantly learning new skills that I as the employer will benefit from.
1) Hire all good candidates as well as a fairly large percentage of bad candidates.
2) Reject all bad candidates, and hire a fraction of the good candidates.
Which route a company takes generally depends on what the company needs. In this case it sounds like his company needed to minimize bad candidate hires more than find all good candidates.
So yes, what you said is correct. This approach will filter out a large number of great candidates without extra time, but assuming the company is finding enough candidates to hire, this isn't a problem they need to address.
I believe this is the same reason why many startups can get away with trial work periods and other interview tactics that large companies cannot. The number of candidates willing to do this is significantly smaller, but it is seemingly large enough for the startup using the tactic.
I suspect that until the industry finds a significantly better way to filter good/bad candidates that this will not change. So if you are looking for a startup idea - this is a great area to get into =D
I've met several very brilliant programmers in my day that liked to work long, super-focused days on the problems they were presented with at work and then would go home and do anything but look at a computer. I'd be hesitant to suggest they had any lack of love for their chosen profession.
All I want from a programming job is to get paid money to spend a lot of time with a computer writing software, and spending time with other humans strictly as needed to advance the computer project. I don't want to sit around a campfire (or water cooler) and trade stories, and I don't have a memory for things like "best bug" and other events people tell stories about. Unless at that event's particular moment I think "Maybe this bug (or whatever) would be good to use as an example for a future interview." and I make a reminder to add it to a file of such life events I review before interviews. It's one of a bunch of little things I have to do that some others don't, which sucks, but considering the whole messed up wasteland that is programmer interviews where pretty much everyone has to do a bunch of BS prep work unrelated to the actual job just to stand a chance, I don't think it's worth complaining much about. Hence the throwaway -- time to move on to other things.
I want to work with people who have passion for what they do. You don't have to keep doing it when you get home at the end of the day, but if all you're doing this for is a paycheck and you aren't really passionate about what you're doing, I find it impacts the quality of the output and the speed with which you absorb new information.
I think the article author has a good point - in some cases. For a programmer working in a strict waterfall project, who's "just coding his allocated items of a per-determined feature list", passion might not be important (and may even be contra-indicated, they'll likely leave when they work it out). But if you need creativity from your coders, some level of passion in _something_ is important. I suspect if an interview candidate lighted up telling the story of their quadcopter or bamboo bicycle or burningman project or anything where they can demonstrate solving problems within a set of constraints - even if it didn't involve a single line of code - it would have been looked upon more favorably than somebody who can't demonstrate passion about _anything_.
The interview ended up being one of my best interview experiences though I turned down the job.
All good programmers I know have at some point spent significant amount of their free time programming on their own, that's why they've become good programmers. They might have kids now or too much work, but I would be amazed to meet a good programmer that has only ever programmed at work.
Despite that the fact that I have kids and a job that does take its time, I do program as a hobby. It mostly kicks in when things are slow at work or when work is less about coding and more about something else as if I had a weekly or monthly coding quota that I need to fill in. But I do have the urge to write programs independent of my work -- if I'm lucky I can abuse my work to fulfill that urge.
My own problem with the question is that I wouldn't know what to answer - I have too many things to choose from. Many are too far in the past to remember lots of details about.
I don't think it's a bad thing if you don't aspire to "greatness" though. There's plenty of jobs where a decent, reliable programmer is perfectly fine. 49% of us are below average, after all.
If Nicolas Bize would accept that sort of thing, I think it's a good test. If not, yeah, it's problematic.
Edit: I've just asked him about it in comments under the original post.
I think it's totally unreasonable to expect that everyone spend every minute of their lives coding or to have some kind of deep, personal connection to the code they write.
This thinking is ridiculous, and doesn't really appear in any other industry. Do you care whether your accountant's idea of an enjoyable Friday night is sitting at home making more spreadsheets? Would you demand that your eye doctor go home and craft her own lenses in her garage for fun? Competency doesn't require fanaticism, and no employer should expect that their employees devote their entire lives to their occupation.
If I want to code for 8 or 10 hours a day, go home and enjoy myself in the little free time I do have, then wake up and do it again, I don't see why that makes me an inferior employee.
This just seems like more misguided, unjustified cultural absolutism that is so prevalent in the industry.
EDIT: For those saying that the article doesn't necessitate spending massive time outside of work writing code, the author clearly conflates the two. "i have always been convinced that those who love code do not restrict their coding activities to their work. they take home that love and continue to create for fun as a hobby." Personally, I think passion could be a valuable heuristic in hiring, but the author seemed to imply that passion is only measured by your willingness to work outside of your day job. At the very least, that seems to be his expectation of good candidates, and his hiring process clearly disadvantages people who can't or won't code 24/7.