Otherwise, it feels like a gamble of a huge time sink that could have gone towards something actually beneficial/profitable.
Having had too much of my time and energy drained in the past with the run around, I said fuck it the last time when facing the option to interview or go my own way, started my own thing and haven't looked back since.
Even when you do get an offer, it's a gamble on whether or not you're dealing with toxic management or not. Which only reinforces the idea of compensation for interviewing in case someone needs to jump that ship and start interviewing again.
Consider also that: 1-((1-.7)*3) = .97
3 interviews with a 70% chance give you a 97% chance of landing atleast one job. More interviews improve your situation rapidly. Job hunting is better seen as a campaign than individual battles.
But I also think maybe in my estimation you FAANG chances aren't that low as your 2%. They hire tons of people, ALL THE TIME.
What do you think your chances are if you're actually qualified? My made up gut numbers: At least 70% even if you don't practice leetcode. That's the real question here in my mind, what are an otherwise qualified candidates chances? How much does that change with interview skills, prep, leetcode etc.
It is absolutely absurd some of the study plans that people go through where they are trying to study over multiple months. In order to truly memorize all the solutions, most people need these programs. Otherwise, it's just a luck of the draw. I actually got stuck at an interview because I forgot the nlogn solution for two sums. Absurd!
My favorite interview so far involved opening a raw TCP socket to Postgres and sending a query (Actually relevant to the job). I was given the prompt ahead of the interview and spent about 2 hours figuring it out. I learned something valuable and demonstrated an ability to expand my knowledge base. This interview has been the only one even remotely close to demonstrating my abilities to work at the job.
Are you talking about determining a pair of numbers in an array that sum to a given value? That's O(n) and just uses a hashset/hashmap.
This is one of those tricks you just have to memorize and it's very hard to come up with the solution in 30 min.
What a great way to kick off a professional relationship:
"I know this problem is useless and obviously unrepresentative of the actual work we do. So do you (if you aren't incompetent). You also know perfectly well that I've memorized the answer and am only pretending to 'solve' it for you on the spot. And yet, we go along with the charade and pretend it's a vitally necessary, even clever hiring technique. Because hey, we're getting paid big bucks to play this game, after all. So who cares."
Maybe that particular solution is hard to come up with, but you can solve the problem without any "tricks", just basic principles. I'll try to explain which principles I'd use using python.
You can start with the trivial O(N^2) solution:
def has_2sum(lst, target):
# returns whether there are 2 (not necessarily distinct) elements in `lst` which sum to target
for a in lst:
for b in lst:
if a + b == target: return True
return False
First principle is runtime analysis. The runtime is O(N^2) because the inner loop is O(N) and runs N times. So we can try to speed up the inner loop. Second principle is to rewrite what the inner loop body as a function of the loop variable b. def has_2sum(lst, target):
for a in lst:
for b in lst:
if b == target - a: return True
return False
Third principle is pattern recognition for common functions: the code is equivalent to def has_2sum(lst, target):
for a in lst:
return (target - a) in lst
Fourth principle is to know which data structures support membership query. If you thought of hashtables, you get the O(N) solution. def has_2sum(lst, target):
set_lst = set(lst)
for a in lst:
return (target - a) in set_lst
If you thought of sorted list, you get an O(N log N) solution. import bisect
def has_2sum(lst, target):
sort(lst)
def contains(x):
# equivalent to `x in lst`
i = bisect.bisect_left(lst, x)
return (0 <= i < len(lst)) and (lst[i] == x)
for a in lst:
return contains(target - a)
If you thought of `sortedcontainers.SortedList` (a third-party python package), you get an O(N^4/3) solution (analysis: https://grantjenks.com/docs/sortedcontainers/performance-sca...)Or the interviewer felt insecure and threatened by their competence. If that's the case, they dodged a bullet.
Either way, I hope you've found a good place to share your skills since that experience. Wishing you the best
I literally copied the questions verbatim into a search and found the solution to all 3 all over GitHub in multiple languages. How is this an appropriate evaluation? Certainly a candidate could simply copy the answer in their chosen language, tweak the structure a bit and call it their answer.
I contacted their recruiter and told them I was no longer interested in interviewing. I told them I couldn't take them seriously since all they did to invest in the interview process was to steal questions from other hiring managers.
If a company wants an efficient, honest and quality interview process it needs to go both ways.
So what?
Let's say you know nothing and just copy somebody else's code. Good for you. The next step in the interview process is that you have to do a code walkthrough explaining what you did and why. Do you really think someone can get past this stage with a code they just copied from github?
I can even imagine that someone finds this existing code, and then they copy it, then they improve upon it, and present it as such. If they are open about it, I'd have no problems from the interviewing side. In fact, it could even be better, because the more complex the code is, the easier it is to talk about it (and gather information about the candidate).
For me it's the complete opposite. What I would consider demeaning is to spend 30 hours across two weeks interviewing for just one company while they don't even bother to send more than one interviewer.
I love these take homes with discussions/presentations but companies keep insisting on the zoom coding over google docs route.