Software Engineering interviews focus on the coding and software designing skills in an interview. These are fondly known as Algorithm and Design rounds respectively. The Algorithms round check the raw coding skills of a candidate, by the application of Data Structures and Algorithms mostly practiced in school, while the Design round tests the System design skills, which can be High Level Design [HLD] or Low Level Design [LLD].
Low Level Design is also known as Object Oriented Design [OOD] or Object Oriented Analysis and Design [OOAD]. From interns to Senior Software Engineers, top companies dedicate at least one round in the entire interview process for system design. For candidates having less than 3 years' of experience, Low Level Design plays the most crucial role because these candidates are inexperienced, hence not supposed to have knowledge of High Level Design. Candidates having experience of more than 3 years usually face the system design interviews with a mix of both HLD and LLD.
This course Low Level System Design focuses on the low level aspects of the design. The only way to get better at interviews is by practicing lots of similar problems. In this course, based upon my research, a list of most frequently asked questions in interviews is compiled. Not only is this useful for the interviews, but also for general problem solving and application design.
Every problem is broken down and discussed in a comprehensive manner:
Making the problem statement clear of any ambiguity. Terminologies related to the problem are explained and expectations well laid out.
Class Diagram construction serves as a road map for coding the problem
The coding is done in the most elegant manner such that the users learn to approach the problem top-down. This is important because even if the class diagram is in place, it's imperative to know the sequence of class construction in program, for a smooth experience.
Wherever applicable, the code is optimized further. Trade offs related to optimization are also discussed.
At last, test case construction is shown to make the candidate wary about writing good test cases, and their impact on the application.
All this is done while following industry best practices. Proper time utilization during the interview is also talked about intermittently, and ways to deal with a situation when the candidate is stuck at a problem for a long time. The coding is done in C++ but the code is language agnostic to a great extent.
The course also sports Closed Captions [English Subtitles] for all the videos. They are hand-crafted, not auto-generated. This feature is helpful when the student is having problem with the accent, there's a lot of background noise present, or when you want to make detailed notes from the explanation.
After taking this course, you
Will be in a better place to face LLD interviews.
Can participate in design discussions related to such problems
Write better code than before
Have a proper theater to break the problem into pieces and deal with them independently
If you understand all the problems presented in this course, there won't be any fear of solving LLD questions. You'll be asking the right questions about the problem, and will be confident to jab at any design.