Preparation Strategy for Product Based Companies

Preparation Strategy for Product Based Companies


6 min read

πŸ‘¨β€πŸ’» About Me

πŸ‘‹ Hey guys! I am Harsh Bharvada, your friendly neighbourhood web developer. I am passionate about JavaScript, Node.js & Problem Solving.

πŸ‘¨β€πŸ« 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.

πŸ₯˜ Recipe

  1. Find your passion in tech
  2. Set your target
  3. Research
  4. Strategy & Planning
  5. Execute

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

Within one year of working at Cognizant as a Java Developer at the start of my career, I was sure that I would want to build my career around JavaScript and I would be flexible in working at both ends of the spectrum (FrontEnd as well as BackEnd)

🎯 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

πŸ€“ Research

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

  1. 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

At the start, I focussed on creating my Portfolio & one side project Structures-Wiz along with solidifying my JavaScript, Angular & Node.js basics with the backing of the portfolio and projects to show for it. Then I focussed completely on honing the DSA skills as it requires complete focus and patience. Once completely comfortable, one can shift focus to system design skills.

Do one thing at a time and give everything to perfect it.

🎩 Tips & Tricks

  1. Always plan for contingencies.
  2. Be pragmatic about your time estimates to finish a particular section.

πŸ‘¨β€πŸ’» Execute

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

Build strong JavaScript, Angular & Node.js base by learning on the job, doing courses & side projects.

πŸ“š Resources

  1. Advanced JavaScript Concepts
  2. Advanced Node.js
  3. Angular Blog
  4. JS & Angular Blog

πŸ“ Process

  1. Create notes while doing the course
  2. Do Hands-on but make a different project from the course
  3. Research and deep dive into concepts

Data-Structures & Algorithm

πŸ“š Resources

  1. Must Do Coding GeeksForGeeks
  2. LeetCode Weekly & Bi-Weekly Contests

πŸ“ Process

  1. 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
  2. Pick questions from Must Do GFG & Solve them on LeetCode ( Better testcases in LeetCode )
  3. If one cannot solve the question in 1-2 days (2 hrs each day) then look at the hints/tags in the question
  4. If one still cannot solve then open the LeetCode discussion section and get a hint from solution titles
  5. If one still cannot solve the question then look for YouTube videos, understand the approach and solve on one's own.
  6. Always read at least 5 Top Voted solutions for all the problems to expand your intuition.
  7. Solve the unsolved question after 10 days again.

🎩 Tips & Tricks

  1. Always give yourself a lot of time βŒ› while solving problems.
  2. Don't get disheartened if one cannot solve the problem after all the efforts (Nobody can solve all at the start)
  3. 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.

πŸ“‰ Benchmarks

  1. Complete all Must do coding questions after giving proper time to all.
  2. 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

πŸ“š Resources

  1. Grokking the Object-Oriented Design Interview
  2. Grokking the System Design Interviews
  3. Design Patterns in JavaScript
  4. Gaurav Sen's YouTube Videos

😎 Summary

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?

I am planning to write a blog post regarding my learnings from the Just JavaScript Course

I know you might have some questions after going through this. I am happy to help in any way possible. One can DM me on Twitter & LinkedIn for any doubts or comment down below.

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!