What am I doing wrong and how can I improve my prep strategy? I have been practicing algorithms since April until now. I spent 2-3 h per day on weekdays, 10 hours on weekend (total for Sat & Sunday). I covered all fundamental materials and have a good knowledge around patterns. Leetcode = 300 problems. In last month I have interviewed with 12 companies and did not pass phone screen. I failed ALL of them. I solved most of them but with small hint. I feel so exhausted, tired and can not do this anymore. UPDATE: thank you Blind community for your advice and tips. Iāll take from here. #software #engineering #swe TC: 190 Yoe: 2.5
Also 300 is a rookie number to start interviews
How did you get into Microsoft?
MSFT did not ask me hard LC questions.
Oh you are getting hards in phone screen? That's bad.
Yes, either market is tough or expectation is higher now, since Iām not recently grad anymore. @kidnanaaye
Which all companies did you apply for ? Are you writing clean code ?
Lol maybe focus less on hours and problems done and focus on understanding actual problem solving (breaking it into parts, examining possible cases or outcomes, eliminating wrong answers, transforming/reducing problem or constraints to be simpler or more specific), clean code, communication of solution in concise and clear manner. What is more realistic? Memorizing all known problems and problems not created yet, or learning how to solve new problems?
The thing is I donāt try to Memorize. There are so many topics, itās just not possible to memo. Thank you, Iāll work on your points. Appreciate it.
When you say you have done 300 problems, if some one asks you a variant of any of those, can you 1. Write sample test cases to cover most / all scenarios and ensure your expectation matches that of interviewer on the ask. 2. talk about multiple ways to solve the same problem, pros and cons of each, time and space complexity and then pick the agreed upon one before you start the implementation. 3. For an easy / medium problem do all of above and produce a working solution in time. For a hard problem, agree on the approach and at least have a less than optimal solution either coded or coded the heart of solution where it is evident that given more time you could finish and produce functional code. 4. How is your code quality, do you use meaningful var names, functions at least? We can't be perfect in interviews but still some indicator of you care about readability of your service's code
Thank you for your answer, Iāll follow your advice. Yes, Struggled with #1, could not write Unittest. I picked python for interview, which I donāt use at work and did not expect to write UT. #2 agree with it and always do. #4 yes, naming is meaningful, never used āxā or āmyHappyFubctionā. But I donāt leave the comments/ description/summary for function, classes to save time.
The problems are not the questions. The problem is likely with your delivery. Are you being conversational while working on the problems during the interview? Are you talking through your though process? It sounds to me like you need to do more mock interviews and less leetcode. For context I did about 120 leetcode (most of the top 100 list and a few extras) and I found it enough for the interviews.
Yes, I communicated and kept taking through process (received positive feedback on it from one of the interviewers), but I kept rambling, my thought were everywhere. You are right, I need more mock and learn to talk cleaner š thank you.
Good luck! I just finished my interview rounds so I can understand how stressful it can feel. You got this! :)
That prep hours to interview success ratio is crazy
Not even one on-site?
Hi, if you like to take some advice on how to start over, let me help you. Practice programming just like a chess player become master. At first they learn some basic tactics and mating patterns. Similarly, you should start with learning basic patterns and solve few problems that are instructive. This ensures that, you do not miss a mate in 3 and helps you to prevent blunders. A interviewer won't be happy if you do not consider binary search, when you were given a sorted array. Next, chess players learn strategy, positional advantages, and learn the slow and boring part of the game. I strongly suggest you to learn recursion and start with solving CSP problems. Next learn to build every DS on arrays. This just think about the only ds is you have is a append only log. This ensures two thing. You will always be able to find some solution. That may or may not be efficient. You will start to appreciate the algorithm and data structure more. Besides, your throught process will lead you to the correct ds and algo you need. What comes next? After master title, chess is more like knowing as much as game positions you know, well, this suggests to read as much as solutions you can.
Very well explained and thank you so much! Highly appreciate it. Iāve been jumping around across all topics, trying to cover as much as I can. Now, I see I need to change my tactic.
Did you solve the questions?
Yes, but with hint