3 ms·
My thought process: 1.) this is an intersection problem, 2.) what does a quick search have to say about efficiently solving an intersection problem in $language
by lwansbrough 8y ago
My thought process: 1.) this is an intersection problem, 2.) what does a quick search have to say about efficiently solving an intersection problem in $language? That thought process does not require any algorithm knowledge. That knowledge is already out there in abundance, and there are enough people smarter than me focused on those problems that I am wasting everyone’s time by implementing a solution myself. (Btw the answer in C# is LINQ, if you wrote an algorithm yourself I’d call you a bonehead and tell you to rewrite it. I suspect the answer is similar for any other language that has a standard library.)
- mav3rick 8y agoAnd what if you don't have a standard library ? You're working on a new device, on a new language ?. Frameworks breed programmers with less adaptability, foundations breed problem solvers that can adapt across problems.
- sidlls 8y agoThe fraction of engineers at Google to which these conditions apply is tiny. It's absolutely absurd to interview based on some fictitious need. The real reason Google interviews the way they do is not because they need a high bar. Their interviews are structured to preserve the egos of the interviewers and because, like the gaming industry, they can simply due to the sheer number of applicants.
- mav3rick 8y ago"Their interviews are structured to preserve the egos of the interviewers " You just stereotyped about 100k people. You have no idea about how many people work to make the interview questions as interviewee friendly as possible. You may hate the company but don't judge the people without knowing them.
- mav3rick 8y agoGoogle's requirements also allow easy mobility between teams. If all I knew was one framework, I'd always have to prove myself again when I move teams. The hiring bar ensures that most candidates can adapt due to their strong CS base.
- sidlls 8y agoNo, these interview questions do not signal for that kind of adaptability. They're a signal that someone studied (crammed for a few weeks, often) a small slice of CS. They're a poor signal for the work engineers do there, or anywhere, in almost every case.
- mav3rick 8y agoPlease hire using frameworks knowledge for your company. More power to you.
- anongraddebt 8y agoEgo abounds everywhere. However, your point about applicant volume motivating the setting of a high bar for entry is spot on. This is happening throughout the corporate world. Too many candidates for too few high-paying and elite positions. My girlfriend works in finance and recently interviewed for a post-MBA position at (arguably) the top company for the work she does. She talked with other candidates, and discovered it was not uncommon to pay thousands of dollars on interview preparation (books, coaching sessions, etc.), and to spend, say, over 100 hours prepping in total... for interviews with a single firm... which you weren't even certain you'd be interviewing with. This trend is only accelerating. The less pessimistic stance is to just say this is a consequence of greater specialization. The less optimistic stance is to say we are seeing professionalization for the sake of professionalization. I'm not optimistic.
- Bahamut 8y agoI'd argue that someone with CS fundamentals doesn't necessarily tell me how adaptable someone is. Many times, the depth isn't there to strongly indicate one way or another. Adaptability is a difficult thing to try to assess. I say this as someone working for another FAANG whose HQ is not too far away from Google's, and as someone who spent 4 years in a math PhD program.
- C1sc0cat 8y agoBut the best solution is just buy a library - at my first job (Hydrodynamics research) we didn't write our own FFT - we just brought one from NAG.
- mav3rick 8y agoGoogle couldn't buy a page rank library unfortunately. Nor can they evolve search or develop tensorflow with people that just work off of libraries.
- C1sc0cat 8y agoAnd what proportion of HN readers are in that situation ? Not that where I worked wound not have built things from scratch - still whish I had had the budget to use ML for one project but with hard ware costs of £250,000 just for the hardware in early 80's it wasn't cost-effective.
- mav3rick 8y agoAnd there in lies the problem. HN extrapolates its skill set to be the need of ALL companies. And companies should only test for that. I do systems for a living. There is no way I would be successful if all I knew were frameworks.
- ascar 8y agoYou have two lists of objects and the thing you want to compare against is a property nested two levels deep in one kind of object and one level deep in the other object. Are you sure you still want to pass this to a library and not write this simple and basic approach yourself? 1. Pick shorter list 2. Create hashmap comparable -> object 3. Iterate longer list and check for each item: comparable in hashmap? Done. That doesn't need a library. Sure, let's say in Java, you could maybe pass your custom implementation of comparable to the library, but is this seriously your interpretation of better code? In fact in many cases the library can't help you, because your structures are not as basic as the library would need them and transforming is a huge and unnecessary overhead. That's the thing, you usually don't need (and want) to implement an algorithm on basic strings. But the kind of problem, where you need the same approach but don't have strings appear a lot. Especially if you enjoy to work in system infrastructure like I do.
- dbt00 8y agoThe problem with "just use a damn library" is that software is full of abstractions and they leak. If all you know is libraries, and you don't invest in knowing how underlying technologies and algorithms work, you're going to get destroyed and look completely lost at some point. Sooner than you think.
- devocracy 8y agoI'm 15 years into my career and have yet to be destroyed for not taking the time to learn the details of every abstraction I utilize. That seems like a massive wasted effort when I could be busy adding value to the products I'm building vs becoming an expert at all things.