3 ms·
TLDR: Doesn't know computer science fundamentals, doesn't get hired in a role that requires computer science fundamentals. Is this Hacker News or Script-Kiddie
by jmaley 10y ago
TLDR: Doesn't know computer science fundamentals, doesn't get hired in a role that requires computer science fundamentals.
Is this Hacker News or Script-Kiddie News?
- deleted 10y ago[deleted]
- kkapelon 10y agoCan you explain why a front-end position requires computer science fundamentals? If you are a company and have to select between two front-end developers where one has a vast portfolio of production apps that you find impressive and the other knows BFS by heart (but has never shipped something to production), who would you choose?
- jmaley 10y agoConsider a scenario where the developer is required to write a custom directory tree. Each row contains a caret and a checkbox. When either of these are clicked, you'll need to perform some sort of tree traversal to ensure integrity of the view -- for example, checking the checkbox on a row may require that all children as selected too. Additionally, you may need an upward traversal to the root to ensure the parents are either in a mixed or unchecked state. If the developer doesn't understand performance (or at the very least, basic tree operations like searching/sorting/traversing), they're going to write some horrible code. Google and Bloomberg have their pick, they don't want a shitty developer.
- beeboop 10y agoFrom a front-end developer perspective, I would google "navigation tree jquery", download some library that does this for me, and be done with it. If all children of a checkbox need to also be selected, that's like a single like of jQuery. Worst case scenario, something custom is written, and yeah it's not the best way and yeah it takes 100 milliseconds instead of 4, but who cares?
- dagw 10y agoWorst case scenario, something custom is written, and yeah it's not the best way and yeah it takes 100 milliseconds instead of 4, but who cares? The person who has to try to understand what the hell is going on and how to add new features after the original developer has moved on to other things probably cares quite a lot. The difference between a good programmer and a mediocre programmer is not that one can solve the problem and the other can't, but that the good one can solve the problem in an easy to understand and easy to maintain way.
- Apocryphon 10y agoAnd the difference between a good organization and a mediocre one is if a crappy custom solution is caught during code review.
- to3m 10y ago4ms vs 100ms is instant response vs detectable delay...
- kkapelon 10y agoIn my example I did not say that the first developer is ignorant about performance. I only talked about knowing data algorithms by heart. So let me rephrase this. Isn't it possible that a developer knows about computer performance but at the same time does not know <insert your favourite algorithm here> by heart? Do you really think that "knowing BFS by heart" equals "knowing everything there is to know about computer performance"? In your scenario, a developer might just google BFS if that is really needed (when a custom component is needed). Is this so important that he/she has to know BFS by heart beforehand during the interview?
- jmaley 10y agoBFS is a 4 line algorithm that doesn't need to be memorized. I wouldn't trust a developer who can't even reason this out with understanding runtime order complexity. bool bfs(int x) { q = new LinkedList<Node>; q.push(root) while (q.size != 0 && q.peak() != x); return q.size ? true : false; }
- kkapelon 10y agoI just said "<insert your favourite algorithm here>". BFS is just an example. Oh, well...