4 ms·
Finding engineers with good algorithmic skills could be hard. But it's not the point. There are tons of undergraduate students in developing countries working h
by e3b0c 11y ago
Finding engineers with good algorithmic skills could be hard. But it's not the point. There are tons of undergraduate students in developing countries working hard on those puzzles day and night. Some of them can even squash a whole program into a single function with more than 1000 lines and still be able to make it bug free and quite micro-optimized. The really rare charms, in my opinion, are those who are able to design. That is, making good choices among the trade-offs. I don't think Chris Lattner, Rob Pike and Linus Torvalds would shine at the quickness of puzzle solving or inventing the fastest algorithms. I even doubt if Don Knuth can do better than you on UVA online judge.
- cageface 11y agoExactly. The most valuable skill for a working programmer is designing good abstractions. The ability to cleanly break up a complex problem up into manageable parts is more valuable in day-to-day coding work than any of the skills companies usually screen for. I'll concede there are probably some roles for which algorithmic chops are paramount but they're absolutely the exception.
- xiphias 11y agoActually from the design and speed of git, I think Linus knows a lot about data structures to be good at ACM. Don Knuth: the same, he goes to instruction level speed in his books..is that really general design? Did you really read his books actually? Rob Pike: sorry, but he was the ,,distinguish engineer'' guy making our lives hard with his half-baked languages that were full of as many inconsistencies as possible. I never liked the Pike language and maybe go is a lot better, but still it doesn't even have a generic type system. Chris Lattner: I would rather bet on him than Rob Pike. Putting together a modern language with modern infrastructure is hard. Putting together a half-baked language is easy (especially if you have engineers working under your management). Still what's more important: if you understand the speed of basic data structures, you can reason about performance of more specialized data structures (like memory management in the linux kernel) as well.
- EugeneOZ 11y agoHope you put your personal preferences in the most far corner if your brain, when interview candidates. If you wouldn't hire Rob Pike because of personal preferences it would be one of the biggest mistakes of interviewer. I don't like lack of generics in Golang, but it's too ridiculous reason to think Rob Pike is distinguish engineer or not talented enough.
- xiphias 11y agoI tried to be as factual as possible when writing my interview feedback. I wasn't on the interview committee, so you can rest assured that I wasn't in deciding position :)