In a more general sense, basic Systems Design knowledge is helpful for anyone working in a software engineering role. If you are applying for entry level engineering positions a basic understanding like in Grokking the System Design Interview, is enough to help you get through interviews and be helpful to you in your work. If you’re applying to more senior roles, that’s when they look for a bit more in depth knowledge of systems and certain parts of systems design. Then I would recommend this course in conjunction with other more detailed materials.
I would also be careful to make sure that the interview you are preparing for is actually a system design interview and not an object oriented design interview. System design focuses on a software ecosystem as a whole that includes servers, third party applications, databases, messaging, and much more. Object oriented design focuses on how to define relationships between objects and how they work together to solve a problem in your application.
Roles outside of software engineering do not need to study systems design. Although you might encounter similar questions around designing a product.
A couple tips for “design” questions:
- Communicate! Ask questions, clarify statements, give detailed and thoughtful responses
- Figure out what specific flow you’re designing. If someone asks you to Design Amazon, you shouldn’t jump straight in and start answering. You should be trying to narrow it down to a specific feature or flow you are designing. Amazon is a huge application, you could be spending days trying to design all of amazon.
As a side note: Grokking the System Design Interview is a perk available in the Pathrise platform, under Resources > Perks.
Hope this helps!