> I'd like to believe that's true, but I've spent quite a lot of time trying to explain pointers and recursion to people and either they get it right away or practically never.
Have you thought about may be you don't understand pointers and just think you do ? May be you should not start teaching and explaining about pointers before you understand it well. If you can't pin-point why your students don't understand and just say they won't understand at all (may be weak math background or something else), then I'm sorry you lack the knowledge to teach or use pointers.
Your reference to Joel and how you rely so much on your intuition tells me that you tend to have "I'm better than other" type of feeling just because you understand DP. This is the exact toxic I would want to avoid in the workplace. Same with Joel's reference, I'm shocked that he thinks understanding pointers is not a skill (may be I should interview him on pointer arithmetic and see just how good he is). My experience has been that these interviewers who say they are so good in DP, pointers, recursion and throw this aura of 'false negative' and know it all show true colors after the interview. They make wrong decisions on when to optimize, are clueless about scale and distributed systems, can't write complex sql, just don't know how to turn on little knobs to solve the problem so write huge unnecessary code. All this is probably because they never thought more than DP/recursion (which I would avoid at any cost in my code base).
Zuckerberg: Yes, there are two options. First to deactivate because students and want to suspend and come back because they want to study for exam. Second option is users can totally delete all their data.
Where is the second option anyone from Facebook ? There is only an option to delete the account after you DIE, not an option to delete it when you are alive.
Whiteboards are bad for writing programs. Think about how often you write programs on whiteboard, it's mostly for diagrams and system flow not to write for and while loops for hard problems. My thinking pattern is different when I write program I tend to write the skeleton first and then fill it out. Writing on whiteboard although I know the solution I'm just spending time writing which sucks (may be because the only thing I write is a cheque once a month and I'm not used to writing for years). Now if it were typing, within the same span of time I can write two or three programs find mistakes and solve everything. Hence I find coding on computer much better than whiteboard and these days I refuse interviewing on whiteboards and say so to anyone who wants to hire me.
Edit: It's ironic how the so called cutting-edge tech companies can't afford a keyboard, mouse, laptop and a projector which would make things way better. I even had a case where the interviewer changed the question with 5 min. to spare , I explained the solution he said it would work and then told me to write it. I was just erasing and pointing arrows because I did not have space etc. So easy to forget that while typing you just hit enter and get a new line. Draw on white board, write on computer; that's how it should be.
I think you will be wasting your money and setting up a bad culture. How many rounds of review are you going to ? After the first round will you hire another one to do more rounds ? Although the product works, it seems you seem to want 100% bullet proof product which will not be possible. Just make sure your product works and when you start making money hire a team and not freelancers to do your code review and manage the product.
I disagree. What do you see so different in that blog post ? OP is struggling with interview puzzles not concepts of data structure, common algorithms. I think it is far too easy to devise a problem that even most current interviewers would fail. I'm saying this after being hired and seeing the level of knowledge most interviewers possess.
Google, said to have very high hiring bar, yet I've seen more than a few times now that their product lines are sub-par. I'm sure the explanation they give is that we are very big and we can ignore the 1% corner cases and have the mentality that "we are so big we don't really care about smaller parts of the internet".
Also, the hypocrisy in using very logical questions to hire people but not sticking to similar logic in the product line is laughable.
> If you're reviewing 20 peoples' code per week, when would you have had time to code out your algorithms?
You work on system design, databases, high availability and making sure large clusters don't fall and are able to talk to each other. None of the above require "algorithms". Also, it's hilarious how every company are asking the Google and FB questions now. And, you rarely get a SQL or database questions. I've had to work with colleagues who think they know everything just because they answer the algorithm question and can't do a simple "group by".
I truly hope that people stop misleading the mass with buzz words. We already have too many of them being used for clickbait.
I don't get why a simple client-server architecture would not suffice the "serverless". Software engineering and architecture design used to be cool in the past with useful design patterns. Now it's full of tricks/buzz words that promise the users of silver bullets that help them to manage code and servers. In reality, no such silver bullet exist and such tricks/architecture fail every day. I've noticed that martinfowler.com is one such place that seems to provide such empty promise of a silver bullet!