![]() |
VOOZH | about |
I consider myself an average (probably below average) coder. This is because I still have to use my hands to calculate simple things like 7 + 19. Additionally, I often find myself googling basic coding tasks, such as how to initialize an array of integers with values, how to throw a new exception with a string message, and how to open and read a file. Medium-level coding questions sometimes take me an entire day just to understand the question or solution.
During my early coding journey, I experienced many mental breakdowns, especially in the first two months, and often felt like giving up. Thankfully, my wife was very supportive, and having someone there for me made a significant difference. I hope you also have someone to support you through your LeetCode journey.
I have tackled around 200 questions on LeetCode, but I couldn't solve a single one independently at first. Perhaps I managed to solve less than five questions on my own, but my solutions were lengthy, messy, and filled with nested if-else statements. In the end, I frequently encountered the Time Limit Exceeded (TLE) error. As a result, I gave up trying to solve the problems by myself and started looking at the solutions immediately.
I bet that the interview questions will be among the top 50-100 questions of each company I interviewed with. This means I need to truly understand and master these top 50 questions, including various solutions (brute force included) for each question. I also search and prepare for follow-up questions.
I believe that humans are creatures of habit, so I kept redoing and repeating these questions at least five times for each solution. Eventually, the solutions started to stick in my brain. I spent around five months preparing for and completing two rounds of interviews with Facebook. To achieve this, I had to change my lifestyle and make many sacrifices, similar to many in the Coding community.
Despite having a full-time job with 50-60 hour workweeks and numerous WebEx/Zoom meetings throughout the day, I found time to prepare for coding interviews. By the time I was free to do LeetCode, it was already 10:30 pm, and my brain was exhausted. Therefore, I changed my habits: no more winding down by watching TV at night. Instead, I went to sleep early, woke up every morning at 5 am (or 5:30 am if I hit the snooze button multiple times), and worked on LeetCode until 9 am during weekdays. I sacrificed weekends and holiday time with my child to focus on coding.
If I can do it, you can too. Although I must admit that luck plays a significant role in the interview process.
A recruiter found me on LinkedIn and we scheduled an informal chat. Basically just an informal chat to get to know me and what I am looking for.
one of the "parentheses" related problems in Facebook tag questions
one of the "palindrome" related problems in Facebook tag questions (follow up question: one of the HARD palindrome question - doesn't need to code for follow up, only explains my approach )
I felt I did really bad on the SystemDesign round and one of the coding round.
I was expecting a REJECT, but I received a call 8 days later and they are proceeding with an offer for E4/L4. I guess I got lucky! and super happy that hardwork finally paid off :-)
Wish everyone best of luck interviewing!
Apology if my interview approach offend your ethics.
Like I said, I consider myself an average (or below average), so this is the only way I can pass the interview.
And if I can do it, so can you. :-)
FYI, of course I got rejects too. I got reject from Amazon and Coinbase.