Live data from Hacker News

Avoiding Leetcode Anxiety

leetcodetherapy.com

31–40 of 157 posts

Re: Avoiding Leetcode Anxiety

#31
You really need to decide in advance what you want to get out of LeetCode. It has a lot to give.

For example, some LeetCode questions are textbook problems. You really should familiarize yourself with them, but you will probably never see them verbatim on an interview. Other LeetCode questions are too tedious or time-consuming to do on a whiteboard in an hour. You will also not see them on an interview. For some people they can be fun brain-teasers, but if what you want from LeetCode is time-efficient prep material, you need to be able to tell apart these three kinds of questions.

If you look at comments on LeetCode questions, you will immediately discover that tons of people treat LeetCode as a pissing contest for its own sake. Should it matter that your solution runs in 18 milliseconds and theirs runs in 15? Or that they code-golfed theirs into 200 characters? Probably not. On the other hand, most canonical problems do have canonical solutions, and you should probably know what they are.

Knowing what to take from LeetCode and what to leave is almost its own discipline.

Re: Avoiding Leetcode Anxiety

#32
post #30

Earlier quoted context omitted.

What do you do instead? It seems to me that having tough interview questions can allow a company to be less credentialist, because they know their questions are tough enough that anyone who solves them is qualified to work there. My resume doesn't necessarily make me look like a senior developer, but leetcode mediums are no trouble for me and with a little effort I think I could learn to solve hards quickly and relia…

We ask questions similar to the work you'd actually do at Notion; see our interview guide here: https://www.notion.so/Guide-to-Engineering-Interviews-63876c... . Looking at a smattering of leetcode mediums, I don't understand how someone being able to return "the elements of a 2d matrix in spiral order" ( https://leetcode.com/problems/spiral-matrix/ ) or use Kadane's algortith to solve "k-concatenation max sum" ( htt…

I read the guide to engineering interviews you posted, but I am curious about the difference between your "Technical Screen" and leetcode type questions. Having to solve a problem while someone is watching and having to talk while you do it sounds similar to the FAANG style. Maybe I'm missing something?

Re: Avoiding Leetcode Anxiety

#33

What’s a good way to pickup CS skills in a well rounded manner outside of a CS degree? Moving from Sysadmin to DevOps rolls and need to learn this stuff.

"CS skills" is broad, and mostly irrelevant for a DevOps role.

Computer Science can be quite fascinating and can involve considering fancy data structures/algorithms, applications of linear algebra in terms of computer graphics / computer visions, machine learning or AI.. or stuff like how a compiler or a search engine works.

But I'd say moving from System Administration to DevOps, it's more important to know software development skills (like using version control software, or how to achieve the things you'd do as a sysadmin using a programming languague) than it is to know about algorithms for balancing a binary search tree, or to crank out leetcode problems.

Re: Avoiding Leetcode Anxiety

#34
post #25

Earlier quoted context omitted.

The point isn't memorizing, it's understanding. If you don't understand, memorizing will only get you so far.

Sure but one can understand quicksort, then forget how to implement it a month later. Or not be able to modify it to produce quick select. So really, you do need to memorize stuff. Maybe not questions per se, but certainly patterns and techniques (on top of understanding the fundamentals)

I still don't see the memorization part. The last time I touched quicksort was at uni, three years ago, I still understand how it works (choose a pivot, partition the rest according to the elements' relation to the pivot, then quicksort the partitions), and I'm pretty sure I'd be able to implement it right now. Maybe not in C, but in Ruby, absolutely.

Understanding is the hard part, the implementation should be the automatic part. I mean, we're programmers, right? We know how to shuffle arrays around and return values from functions.

Re: Avoiding Leetcode Anxiety

#35
post #24

Don’t want to do Leetcode? Me neither — after I left Airbnb I vowed to not work at any company that asks this kind of question. I interviewed at a bunch of interesting companies (Airtable, Brex, Eaze, Figma, Lob, Notion, ...) none of which asked this kind of algo brain teaser question. There are tons of places out there with great product, interesting problems, and good compensation - so if you hate this bullshit, do…

I'm just gonna glom on to this for visibility, but I'd like to say I wish there was a good list of companies that don't do leetcode-style interviews.

Frankly, I'm sick of leetcode, and I feel like it takes a lot of fun out of working in tech to have to grind this skill that's completely unrelated to any sort of real work. (Rant mode off)

Anybody know of such a list?

Edit: I should add that I'd really like to be pointed toward companies that use a structured interview process. Literally fewer than 1 in 10 SF tech companies seems to have any idea what they're doing when it comes to interviewing, and a structured interview process goes a long way toward fixing that deficiency.

I'm familiar with the "hiring without whiteboards" list, and that does't seem to be quite what I'm looking for.

Re: Avoiding Leetcode Anxiety

#36
When everyone is a superhero, there will be no superhero. When everyone leetcodes, it is time to get back to fundamentals. So I agree with the author: grab a book, study fundamentals. Instead of memorizing 10 different dynamic programming problems, do study dynamic programming -- it's fun and it is useful in production code anyway. Instead of bitching about finding a shortest path of whatever criteria on a tree, do study backtracking. Instead of agonizing over how to build a LRU or a token bucket, build a LRU and a rate limiter. Instead of pulling your hair on implementing a concurrent queue, study The Art of Multiprocessor Programming. The list goes on and the process is fun.

Re: Avoiding Leetcode Anxiety

#37
IMO getting better at Leetcode problems is similar to getting better at mathematics and physics - you become familiar on a topic by doing problems on a daily basis, trying to wrap your mind around the concepts and at times doing a bit of drilling just to stamp the things that need to be memorized.

Both require you to be disciplined and dedicate time on a daily basis, otherwise you won’t get further.

Having the time to address this is absolute luxury to me. Only when I became relatively rich (I‘m coming from a poor background) could I consider learning Leetcode problems. Before that point, I was learning whatever earns me survival money.

Re: Avoiding Leetcode Anxiety

#38
post #24

Don’t want to do Leetcode? Me neither — after I left Airbnb I vowed to not work at any company that asks this kind of question. I interviewed at a bunch of interesting companies (Airtable, Brex, Eaze, Figma, Lob, Notion, ...) none of which asked this kind of algo brain teaser question. There are tons of places out there with great product, interesting problems, and good compensation - so if you hate this bullshit, do…

Wow, that job ad (early career) looks awesome! Do you hire from Europe / The Netherlands?

With every single thing that I'm reading I'm agreeing and/or have some experience with it. The most fun example: the background of my thesis touches on Engelbart! What a visionary he was.

Well, I applied anyway :)

Re: Avoiding Leetcode Anxiety

#39
post #10

I wonder ten years from now how common LeetCode like interviews are. These types of interviews favor those who have the luxury of ample time to prep for difficult interviews and aren’t representative of most daily working environments. This process fails to consider candidates that would be good fits. When I help with interviews, I place much more values on communication skills, teamwork, mentorship, and a general pa…

Hiring is hard. It takes serious effort to interview someone and (i) get enough confidence in them to make an offer and (ii) make them want to accept the offer.

LeetCode seems to have become accepted by candidates as a way to do (1), leaving the interviewer more time for (2).

At least, that how I assume people think it works. In reality, hiring is just hard, and if you lean too hard on shortcuts like LeetCode, you come across as lazy, and you end up hiring LeetCode assholes who you catch doing LeetCode during work hours "to stay sharp". One of the most useless team members I ever worked with was good at code challenges but terrible at real work because he didn't care. He wasn't invested in working on the actual problems we faced as a company or as a team.

When we had an opening for an infrastructure engineer I created a handful of gitlab projects (terraform, puppet, python) and put some effort into building some baseline infrastructure. I allowed the candidate to choose one to work on, and then gave them a real world challenge. Not some tricksy bullshit to catch them out, just a realistic task they might encounter. They were given access to an environment where they could run the code. So at the end, I had a runnable merge request to review. Why? Because, to me, the purpose of a code challenge isn't to find the top 10%, it's to weed out the bullshitters. The rest is about figuring out what makes them tick, whether or not they're a good personality fit etc.

Re: Avoiding Leetcode Anxiety

#40
post #30

Earlier quoted context omitted.

What do you do instead? It seems to me that having tough interview questions can allow a company to be less credentialist, because they know their questions are tough enough that anyone who solves them is qualified to work there. My resume doesn't necessarily make me look like a senior developer, but leetcode mediums are no trouble for me and with a little effort I think I could learn to solve hards quickly and relia…

We ask questions similar to the work you'd actually do at Notion; see our interview guide here: https://www.notion.so/Guide-to-Engineering-Interviews-63876c... . Looking at a smattering of leetcode mediums, I don't understand how someone being able to return "the elements of a 2d matrix in spiral order" ( https://leetcode.com/problems/spiral-matrix/ ) or use Kadane's algortith to solve "k-concatenation max sum" ( htt…

I say this as a happy Notion customer who spends a lot of time evangelising it within my own company: Notion is one of the most unpleasantly slow apps I have to use in my daily work, it has been the same way for years, and I can't help but think that a deeper appreciation of computer science fundamentals _might_ possibly help find better ways to fix that.
Post reply on HN