4 ms·
> Breadth-first search from both ends. I believe this is deeply valuable. For some roles, I would much prefer to hire someone who can quickly see the value of
by jph 13y ago
> Breadth-first search from both ends.
I believe this is deeply valuable. For some roles, I would much prefer to hire someone who can quickly see the value of breadth-first search from both ends.
If he/she doesn't happen to know the syntax of Ruby, or Java, etc. it's less important to me.
- dagw 13y agoI agree as such. Given the the choice between someone who's really smart and can solve hard problems, but a mediocre programmer or someone who's a good programmer, but sucks at problem solving, I'd chose the first one. That being said, if you hire someone in the first category, don't expect them to be happy and competent at writing an iPhone CRUD app in two weeks after seeing Objective-C for the first time. I think that was the thrust of the article. If you're hiring based solely on someones math and algorithm skills with zero concern about their coding skills, you cannot turn around and be angry when their coding skills aren't what you needed. It's not math vs programming as such, but more generally about tuning your interviews to finding the skills you actually need (as opposed the skills you think you need).
- greendestiny 13y agoI think you're still suffering from same mindset that led to the problem described in the article though. He wasn't a mediocre programmer - he was a bad programmer. If you make a lot of assumptions about people in an interview you will probably be disappointed.
- tylerkahn 13y agoI mean this as a genuine question: http://sixarm.com/ http://sixarm.com/ This is your company, correct? (I stalked your Github profile) Seems like the types of problems you're solving are exactly those which require far more domain experience with Ruby/HTML5/Javascript/whatever than the ability to see the value of various graph-searching techniques. Would you hire this guy even though he's said quite plainly that he lacks the experience with these technologies (and has difficulty picking up new ones owing to that lack of experience)?
- jph 13y agoTLDR: Yes, for some roles. Some of our projects have us on site, side-by-side with a client's staff programmers. These projects involve millions of dollars, hundreds of stakeholders, and years of existing code. The programmers have a wide range of skill levels. The work in these projects involves figuring out the project's objectives, goal decomposition, some agile/lean PoCs, then developing the BDD, MVC, DCI, API, CQRS, SQA, etc. Much of this can happen in pseudocode. We also do pair programming, code reviews, brown bag demos, cross-training, and the like. I believe all these can help with developers getting up to speed with language syntax. That said, choose the right person for the job. YMMV.
- uniclaude 13y agoThis is great. Now what would you do if after three months, your new hire can still not ship code that benefits your business? Fire the person? Keep teaching? I also believe algorithmic knowledge is important, and tend to give algorithm questions to my candidates, but it matters more for those who will write databases and game engines than for those who will write CRUD apps.
- collyw 13y agoI was good at the algorithms and data structures part of my university course, but as a developer with ten years experience, I find it is very rare to actually use these now. Far more important is how / when to index an database table, how to design the tables in the first place. If I need an efficient algorithm, in most cases someone has written (and tested) it and put it in a library.
- VLM 13y ago"If I need an efficient algorithm" Bringing it full circle, a puzzle is just a peculiar form of algorithm, most of the time. You don't want to hire someone who will sit around thinking about graph puzzles and how to measure 4 liters when you only have a 5L and 3L beaker. Google it and get on with the job.
- Swannie 13y agoSure, it's valuable. But deeply? If the person wrote the code in such a way that no one else could understand that it was a breath-first search, is that valuable? If they didn't even leave comments when they write code? If they didn't realise that you're using some slightly arcane feature of your language to keep a library of useful tree operations, and was expected to use the pre-existing function through macros/generics? Or was expected never to use such a technique because half the team wouldn't understand the code? Hey, I know the theory on how to bake a large amount of cakes, breads, cookies, etc. I learned it by watching it on TV, and from cookery books. But actually it turns out that I'm a pretty crap baker, because I lack experience to know when I'm over-working/under-working dough, how to adjust cooking time with an unknown oven, etc. And I make a huge mess when I'm doing this, and take a lot longer than anyone with basically any experience of doing it at all.