Live data from Hacker News

I Hate Puzzles: Am I Still a Programmer? (2011)

zef.me

261–268 of 268 posts

Re: I Hate Puzzles: Am I Still a Programmer? (2011)

#261

Earlier quoted context omitted.

Gayle, Don't get me wrong. I made it through the Amazon interviews thanks to your book. I spent a week reading through and cranking out examples before the interview. Then I spewed out all of the desirable answers at each step of the interview process. Now I'm a highly experienced developer with 15+ years experience across a variety of technologies. I contribute to open source, answer questions on Stack Overflow, pre…

So, you're a good developer who is smart and passed the interviews with some studying. That's exactly how it's supposed to work :). You're right that the problems that some up in interviews typically aren't real life problems. But that's not necessarily an issue. Are the skills they test (developing good algorithms) important for real life? An interviewer doesn't ask you to develop an algorithm to return a random nod…

I believe that is the most common argument made, but also therein lies the fallacy.

I'm not developing anything new when I implement a quicksort algorithm; Tony Hoare certainly was back in 1960 when he created it. The same goes for the hash; someone at IBM made a big leap when they first used hashes back in the early 1950s.

Since that time numerous people have made some improvements to these (and other algorithms of course), but by and large companies are just testing is the developer interviewing able to code existing algorithms and explain their Big-O notation.

I think you end up with 4 subsets that the interviewees fall into.

I = {interviewees}

A = {I | bad programmer and can't solve algorithms}

B = {I | good programmer and knows the algorithms}

C = {I | bad programmer but knows the algorithms}

D = {I | good programmer, doesn't know the algorithms}

It is subsets C and D that concern me.

In subset C we have someone that studied the algorithms really hard, but just can't write good code and solve real original problems. One approach to this is the "hire fast/fire fast" mentality, but in some organizations "fire fast" is not an option; so you would rather not hire them in the first place.

In subset D we end up missing out on good developers. In a bad job market there isn't much need to worry about this; if we miss a good developer easily enough we'll find another. Right now though developers are in such high demand I see this loss as a bigger deal.

I also think that this type of interviewing technique works better for the tech giants (MS, GOOG, FB, etc...) than it would for a lot of smaller organizations. A good set of programmers will self select out of interviewing at these companies because they don't believe they are "good enough" for MS(or alt). Additionally a good set of developers that do believe they are high caliber enough for these organizations will do some research about the interview process before hand and end up studying up on the right things before going in.

With smaller companies or businesses with non centralized hiring processes for developers interview candidates may just not know what to prepare for in the interview and while an algorithm may seem obvious in hindsight; there is a reason nobody was using it until it was "discovered". I can't reasonably expect someone to devise the answer to that type of question when I interview.

Honestly I would love to hear some ideas on this; as it has been a pretty major concern for me for the last couple of years.

Re: I Hate Puzzles: Am I Still a Programmer? (2011)

#262
post #257

Earlier quoted context omitted.

Because everybody can do "actual progrmaming." Especially in grad school. Computer Science is broad (even AI is different), but I'd say it's more about Turing's academic papers, and computational mathematics. Programming, and computers, aren't even needed, they're just models which either can or cannot derive solutions, or in a reasonable time. Such as the halting problem, P, NP, NP-complete. In a way it's mathematic…

As Knuth pointed out, "computer science is no more about computers than astronomy is about telescopes"

Dijkstra

Re: I Hate Puzzles: Am I Still a Programmer? (2011)

#263
post #68

Earlier quoted context omitted.

> Then I discovered quicksort, and graph search, and Bayesian inference, and Dijkstra, and Karatsuba. I would guess most "discovered" those because they had to interview. The % of programmers who need to Karatsuba or Bayesian inference to finish their project is very much smaller than the % of programmers who thought "oh shit, I better learn this because Google and Facebook keep asking about graph theory". It it is p…

I distinguish between two types of puzzles: human-made (which I call puzzles) and everything else (which I call problems.) In those terms, I hate puzzles and love problems. Puzzles are contrived by humans and are generally as much psychology problems as anything else. They basically require you to think like the human who created them, and they have bizarre and arbitrary constraints that are totally unlike the real w…

I think this explains why I hated school.

Re: I Hate Puzzles: Am I Still a Programmer? (2011)

#264

Earlier quoted context omitted.

I think there are categories, and we haven't figured out what to call them yet or how to define them. I see archetypes emerging over the years, and patterns. I've worked with career programmers that are done at 5:00pm, and never crack a book. They work fine in their niche, and when layoff come, they're working tech support. I know others that love problems but can't seem to make their ideas become manifest, yet kludg…

> done at 5:00pm I really don't like this euphemism. When I read this I know what you mean[0] but I wish this meaning wasn't tied to leaving the office at 5pm. If someone's effective in their role, why should they be judged on what time they leave? This mentality doesn't encourage people to work harder or be better employees, it only encourages them to stay later. That eats into their free time every day, giving them…

In fact, Scott Adams proposed this in The Dilbert Future as a workplace scheme to improve productivity (he called it 'OA5'). He may be accurate in thinking it's up to the employer to destigmatise leaving 'early' (when in fact it's a symptom of an employee having a good work-life balance, providing his performance is sufficient).

However, I've been thinking about this recently - the logical extreme is that you should never expect the employee to turn up at work at all, provided he performs his tasks (say via telecommuting). Perhaps employers mandate 'desk time' because it's important to have regular physical access to the employee, for example in order to talk to him? I can think of HR/legal reasons where a private in-person interview is needed in order to inform the employee of something or to retrieve information from him. Consequently, if an employee only came in to work for these meetings, it would be obvious when the employee was engaged in some sort of 'serious' communication with the company. It would make mass layoffs especially conspicuous and difficult for the company to hide.

Post reply on HN