1

How to Effectively Divide Time Studying Between DS&A and System Design

Profile picture
Mid-Level Software Engineer at Taro Community3 months ago

I'm currently studying for software engineering interviews, but I'm having a hard time deciding how to divide up my time between doing LC problems and going over system design concepts. It can feel overwhelming since both categories have so much to cover. I also have a family, so most of my studying gets done after my kid goes to sleep at around 7 PM. Since my team is in the west coast and I'm in the east coast, I do get some extra time in the morning to work out at the gym and go through some LC problems. I'm currently going through Neetcode's course as a refresher. For those of you who have aced your interviews, how did you divide up your time on different topics? Did you mostly spend your time on LeetCode? I'd be happy to hear any recommendations.

My main goal: I want to be interview-ready no matter what. I currently work at a big tech company and I've been there for 4 years now, but I haven't seen much growth and now I'm seeing that I could have negotiated more when I first got my offer. I was asked 2 LC-type problems, and I feel I got lucky with them because I hadn't extensively gone through all the different patterns and data structures. It was my first time getting RSUs and I wish I had known more about negotiation tactics as well. I feel that if I be ready for interviews, I can apply and definitely increase my comp by a lot. The motivation is for me to overcome the fear of DS&A problems and not stop myself from applying to positions just because I'd be asked LC-type questions. I also know that I can double my comp with the right negotiation tactics and with my years of experience.

56
2

Discussion

(2 comments)
  • 1
    Profile picture
    Tech Lead/Manager at Meta, Pinterest, Kosei
    3 months ago

    If you have the appropriate years of experience and you interview well, you could land a senior-level role instead of a mid-level one. If you gain leverage by having multiple offers and are able to negotiate the equity package, it's possible to dramatically increase your compensation (I've heard people who have doubled). So, I am a fan of this strategy, especially if you feel you're being underpaid!

    In terms of how to split your time, one cheat code is simply to pick a company that's lower on your priority list and interview there right now. The best way to prepare for an interview is to do many interviews. Pick a company that will ask representative questions of other Big Tech cos (so don't interview at a pre-seed startup, for example).

    This will give you one data point on the split between system design and DSA questions for your target level, and it may also help you get over any fear of interviewing. Alex talks about this in the interviewing course: How Much LeetCode Should I Grind?

    The other option is to do a mock interview (either with a friend or with a service like Hello Interview) for both a DSA and System Design interview and figure out where you need more help.

  • 0
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    3 months ago

    At your level, it's probably around a 50/50 split in a vacuum, making this tricky. If you're getting mostly senior interviews though, system design will definitely be more important.

    As I talk about in my job searching course, a successful interview journey is all about being dynamic. If you're getting more DSA rounds, then do more DSA prep, especially if you're struggling with them. Conversely, if you're getting more system design rounds and struggling with them, do more system design prep.

    Make sure to not forget interview types like behavioral as well, which is also pretty important at mid-level and critical at senior.