Cse
1 questions · Other (1)
Reddit
Question
·
Jul 2024
·
USA
40+, with kids, only worked in dinosaur orgs, non CSE and I cracked FAANG
1206 upvotes
146 replies
Question Details
- Non CSE engineer, never did formal CSE ug coursework (USA,) 1a. Fumbled my way into programming a decade ago cos once i tried it i simply fell in love with it and some companies were generous enough to let me continue despite being CS illiterate 2. 5 yrs ago i failed an interview cos I couldn't write a sort algo on the board 3. Solved my first leetcode an year ago. Took it to 125 solved the day I got my offer. Today it's at 140, cos i will never stop. 4. Must have given 25+ interviews in last 12 months. First 10 or so I failed hilariously but each one was a lesson learnt until the number of lessons to be learnt started dwindling each iteration. 5. Had to rush and grind through numerous CSE fundamentals to crack system design type questions. 6. There were times when I would question and self doubt whether it's worth continuing any more, but as my LC + Sys design concept game kept improving by the month, i started smelling that success was near. Non-FAANG interviews were becoming easier and easier. 7. In the final 6 months, making it to onsite was almost certain and I was working on making my onsites go flawless 8. If you are new to LC, first spend time getting comfortable with LC mediums for data structures like heap, vectors, stack, queue, linked lists and their syntax in your preferred programming language. Step 2 is to get familiar with algos like BFS, DFS, 2 pointer, prefix sum, sort (both in-place (bubble sort) and fastest (merge sort)). After completing Step 2. only focus on LC problems with acceptance rate < 55%. While solving LC easy can help with fundamentals, it is not the most efficient use of precious time. Solve LC easy only if you are feeling down and need a motivation boost 9. time management: went to bed around 9p. get up around 3a-6a atleast a few days of the week and knock out atleast 1 lc or spend 1-2 solid hours studying sys design or CS fundamentals. as interview neared stopped work around 3:30 pm and pounded 1.5 more hours until 5p. 5p-9p was family time. 10. If you are in a programming field with a vast domain knowledge base, make a github repo and take notes from all the tutorials and/or website you study. that helps speeden up revising all the concepts rapidly in the final 48 hours before interview, otherwise if you don't do that, you would need to open 50 tabs on your browser to revise of those concepts 48 hours before the interview. it's not efficient. what's worse, often website pages disappear or get paywalled so always try to take notes on your personal github, it would also come useful many years later if you are PIP'ed or laid-off with 0 warning time and you need to quickly jump back into interview mode. 11. One aspect where I got lucky: response rate to my cold job applications was always healthy so I always had a pipeline of interviews where I could practise my skills, but maybe it isn't uncommon for experienced devs? (always cold applied, not a single referral) 12. Getting LC hards are a fact for all. got many lc hards and/or lc medium hards through my interviews. Amazon and nvidia handing out lc hard/medium hard on OA now. Lesson learnt: last 12 months of grinding lc + cse was a life changing moment for me. While life @ faang will be stressful and hard, I will strive my best to keep my lc + CS learning game on. leetcode is literally the gold rush of the 21st century. people can 2x-3x their salaries in span of months and change course of their lives if they can patiently knock out 50 or so lc mediums. I say this knowing well that plenty of 21 yr olds daily trot their way into half a million pay days like Citadel, Rentec & OpenAI but for the remaining vast majority LC->FAANG is still a game changer. "Do not go gentle into that good night, Old age should burn and rave at close of day; Rage, rage against the dying of the light."
Free preview. Unlock all questions →
Topics
Linked List
Graphs
Sorting
Heap
Stack Queue
System Design