I Did 76 Problems on Leetcode

The idea might seem mind-numbingly boring, but it definitely works.
First, it makes you confident and if you manage to properly explain your thought process in a clear way, you're all but guaranteed to move on the next phase.
Second, it helps you avoid the nasty experience of failing an interview just because of bad luck. Very few people do algorithmic problems out of fun and way less people actually do them during their day-to-day job, so it always feels unfair to not be rejected based on a skill you will most likely not use that much.

Getting ready for FAANG interviews. Credit: Josh Beech

Now, that's all fine, we can accept this situation as an inevitable part of the interviewing prepping process. If you already have at least a little bit of experience in the industry, you are well aware of the fact that being good at your job and being good at interviews are two different sets of skills. One helps you not get fired, and the other helps you get a position in the first place.

But what if you already work at a company you love and don't foresee a job change in the near future? There is a pretty solid line of reasoning that argues for this approach which goes like this:

  • keeping your interviewing skills fresh
  • which leads to being able to apply for positions at any time
  • which leads to more opportunities for counteroffers or finding a better job
  • which leads to you maximizing your potential income/skill set/career path etc.

In a world where being loyal to your company actually makes you earn less, it's safe to say that you have to take matters into your own hands, especially in an industry that is always looking for talent and has the means to pay for it.

But again, let's say that you're a person of higher ideals, money isn't your first priority, your current job allows you work with cool technologies, your colleagues and management are amazing and the work/life balance is on point. Why should you bother with easy LeetCode problems of all things?

Well, do you remember that scene in the Karate Kid movie where the old master made the kid wax cars and paint fences? Only to later find out that these menial tasks were actually drills to teach him karate moves through sheer repetition?

Daily practice can take you a long way. Credit: Thao Le Hoang

Yeah, I'm picturing something like that. The point is to do something small, consistently, and see what comes out of it. It might turn out to be a journey of self discovery where we learn new things together about ourselves, about coding, about the industry and about existence in general. Heck, other people have done it already.

Or it might turn out to be a bum… Thing is, we never know unless we try.

So, if you want to do it alongside me, here are the rules:

  • For 30 minutes a day, choose a random LeetCode easy problem, solve it, and then repeat the process
  • The, take 5 minutes to reflect on what you've learned: maybe you solved it with a one liner, maybe you discovered a cool function that did it for you, maybe you got stuck on way more corner case than you thought initially.
    Write everything down, no matter how trivial it might seem to you.
  • Since these are easy problems, some days you might not learn anything noteworthy, so at this point, you can go further and reflect on what the experience itself was like: maybe you got bored out of your mind and wanted to stop after 2 minutes, maybe you kept thinking about stressful things going on your life, maybe you went into a flow state and were 100% focused. There is no wrong or even expected reaction to this, just write what happened.
  • You can take more than 5 minutes if you happen to start liking it, but don't go over 30 minutes. The point is for it to be sustainable, you don't get any bonus points for being an overachiever. If you spent 4 hours on it yesterday, that doesn't mean you can skip it today. Nor should you compare yourself to what you did in the past and start feeling guilty.
  • The last and most important rule is do it no matter what. You are not allowed to skip a single day. Even if you don't feel like doing it, even if you feel a little sick or tired, even if life gets in the way, you still have to do it. Once a day. The day ends when you go to bed, so don't think you can chicken out of it just because it's past 23:59 PM.
  • I'm going to expand on the last point since it is vital to the whole thing. You can adjust the time values I mentioned a little bit. Heck, cut them in half if you want to. Even if you think it's too easy. I didn't mention for how many days you should do it so, again, you can decide for yourself: 30, 100, 365, whatever. I will stick to 100 days. But once you decide, it's set in stone. Remember, nobody will punish or reward you for doing it, nobody will hold you accountable, nobody will ever know if you failed or succeeded. There is no grand reason for you to start. Do it for the thing in itself.

Granted, I may have written the last 2 sections for myself more than I did it for anybody else, so please don't take it in bad faith. I already expect some of you to breeze through this practice with little to no willpower expenditure and wonder why in the world did I make it seem so dead serious. But if you're like me and you have mostly dealt with extrinsic motivation all of your life, then it might help you to know that it's not OK to give up on the things you set out to do , even if nobody's watching over your shoulder. I believe you can do it.

paulcably2000.blogspot.com

Source: https://towardsdev.com/the-zen-of-grinding-leetcode-problems-day-0-motivation-681842565166

0 Response to "I Did 76 Problems on Leetcode"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel