👨💻 About Me
👨🏫 Why this blog?
Coming from Tier-3 college and starting as a Software Engineer at a service-based company, I know the hardships and obstacles one can face in their journey to reach near the peak of the tech mountain.
One needs solid research, strategy, planning along with a perfect mix of motivation, self-belief, hard work & perseverance
This blog will shed light on my journey for the same and how it might help you to spur on to success.
- Find your passion in tech
- Set your target
- Strategy & Planning
Now let us explore each of the above in detail.
❤️ Find your passion
The most critical step of this recipe is finding one's ❤️ passion in tech.
For building a strong skyscraper one requires a strong fundamental base, without which the skyscraper can collapse at any time
🎬 My Take
🎯 Set your target
Based on one's passion make a list of 20-25 companies whose tech stack & culture aligns with your passion and likings.
Without a proper goal one cannot achieve anything
In this step research the Job description for all the companies on one's list. One can get a rough understanding of what languages, libraries, tools etc are required to nail any of these companies.
For in-depth research read interview process blogs in Medium, Dev, Hashnode etc to get an idea of how one needs to prepare to crack them. Create a Notion Page for the list with all the details of the process for each of them.
🎩 Tips & Tricks
- Dig as much info as possible regarding the process & types of questions asked.
🤔 Strategy & Planning
In this step, one should make a strategy as to which topics to focus on more and before than others. I always believe one should focus on the tech side of learnings and implementations before jumping to the Data-Structures & Algorithms and finally finish it off with acquiring System design skills.
Data-Structures & Algorithm requires rhythm before an interview and 3-4 months (For average coder) of consistent perseverance will help the intuition to kick in when facing an unfamiliar problem in an interview.
🎬 My Take
Do one thing at a time and give everything to perfect it.
🎩 Tips & Tricks
- Always plan for contingencies.
- Be pragmatic about your time estimates to finish a particular section.
One might think this is the hardest and most important step of the process, but much to the surprise 🤯 this is the easiest of all if one perfects all the above steps.
Worry about today and you will reach the goal tomorrow.
🎬 My Take
- Create notes while doing the course
- Do Hands-on but make a different project from the course
- Research and deep dive into concepts
Data-Structures & Algorithm
- Understand and implement all the important Data structures like Arrays, Stacks, Queues, Priority Queues, LinkedList, Graph, Tree, Binary Tree, Segment Tree, Fenwick Tree, Trie and algorithms like Binary Search, Ternary Search, All Sorting Algorithms
- Pick questions from Must Do GFG & Solve them on LeetCode ( Better testcases in LeetCode )
- If one cannot solve the question in 1-2 days (2 hrs each day) then look at the hints/tags in the question
- If one still cannot solve then open the LeetCode discussion section and get a hint from solution titles
- If one still cannot solve the question then look for YouTube videos, understand the approach and solve on one's own.
- Always read at least 5 Top Voted solutions for all the problems to expand your intuition.
- Solve the unsolved question after 10 days again.
🎩 Tips & Tricks
- Always give yourself a lot of time ⌛ while solving problems.
- Don't get disheartened if one cannot solve the problem after all the efforts (Nobody can solve all at the start)
- This is a marathon 🏃, not a sprint so keep pushing each day and just worry about today's task and not worry about the goal. If one can achieve today's task one will reach the goal.
- Complete all Must do coding questions after giving proper time to all.
- Solving 3 questions (Easy - Med - Med) in 70 mins in the LeetCode Weekly Contests.
Above two are the benchmarks which indicate that one is ready to start applying.
🗺️ System Design
- Grokking the Object-Oriented Design Interview
- Grokking the System Design Interviews
- Gaurav Sen's YouTube Videos
To summarize, one needs to emphasize the first 4 steps before even starting the preparation journey. Rejections & failure are part of the success journey so take each opportunity as a new learning curve.
It is important one doesn't get ahead of themselves or be demotivated at any point in time in one's journey. One should not compare with anyone else and feel low because everyone has a different path to the peak.
Pat yourself every day 💪 for how much one has improved and believe that in the future one can achieve anything!
➡️ What's next for you?
Hope this helps! Thanks for reading till the end. All the best!
Did you find this article valuable?
Support Harsh Bharvada by becoming a sponsor. Any amount is appreciated!