Grokking the object oriented design interview (OODI) is something every FAANG-level developer strives for.
However if you’re not experienced in laying down the design of a complex system, you’re going to struggle.
But guess what?
Even seasoned developers grapple with object oriented design interview questions.
Due to the unstructured nature of object oriented design interviews, there’s no standard answer. As a result, many developers find them tough.
And that’s where FAANG interview prep materials come in.
This post contains affiliate links. I may receive compensation if you buy something. Read my disclosure for more details.
Today we’re reviewing the Grokking the Object Oriented Design Interview course on Educative.
This object oriented design course was designed by hiring managers of Google, Facebook, Amazon and Microsoft. It contains handpicked case studies that are regularly asked at FAANG interviews.
In addition, the course enables engineers to handle various object oriented design scenarios with confidence.
An excellent set of problems, I have been asked Parking Lot and Flight Reservation system in two interviews. This course helped me brush up object oriented analysis techniques that I had almost forgotten. Thanks guys for this content.– Billy Hu, Software Engineer at Microsoft
Let’s take a closer look at what this course has to offer.
Looking for some more FAANG interview courses? Check out our review of Grokking the System Design Interview.
✨ Grokking the Object Oriented Design Interview
This FAANG interview prep course is separated into two sections:
- Object Oriented Design and UML
- Object Oriented Design Case Studies
Section 1: Object Oriented Design and UML
Starting with the basics, you’ll get a refresher on some key object oriented programming concepts:
✅ Objects ✅ Class ✅ Encapsulation
✅ Abstraction ✅ Inheritance ✅ Polymorphism
And from there it covers:
- Object Oriented Analysis and Design – identify, define, establish, create
- Unified Modeling Language – visualizing & documenting software system by using a collection of diagrams
- Use Case Diagrams – what the system does from the user point of view
- Class Diagram – describe the responsibilities of a system
- Sequence Diagram – detailed flow for a specific use case
- Activity Diagrams – model the flow of control from activity to activity
Section 2: Object Oriented Design Case Studies
There are 16 design case studies:
|Parking Lot||Amazon Online|
Deck of Cards
|Hotel Management System||Chess||Online Stock|
Object oriented design projects like these are frequently asked at the OODIs.
So, can we see a sample object oriented design interview question?
Design a Parking Lot
A large amount of information is required with parking lot object oriented design. And Grokking the Object Oriented Design Interview delivers.
Prompt: Let’s design a parking lot.
From there, you’ll face 5 sections:
- System Requirements
- Use Case Diagram
- Class Diagram
- Activity Diagrams
i. System Requirements
This section sets the parameters of the project such as:
✅ floors ✅ entrances & exits ✅ parking tickets ✅ payment types
✅ vehicle capacity ✅ parking spots with vehicle size variance
✅ vehicle types ✅ hourly pricing structure
And much more.
ii. Use Case Diagram
This section addresses main Actors in the system such as:
✅ Admin – responsible for modifying parking lot specs
✅ Customer – receive and pay for parking ticket
✅ Parking Attendant – assist customers with their tasks
✅ System – display messages on info panels, assign and remove vehicles
And from there, you’ll examine the top use cases for parking lot object oriented design:
- parking floor – add, remove, edit
- parking spot – add, remove, edit
- take & scan ticket
- credit card & cash payment
- parking rate modifications
- parking attendant – add, remove
iii. Class Diagram
In this section you’ll observe interfaces such as:
✅ ParkingSpotType ✅ VehicleType ✅ ParkingTicketStatus
From there, you’ll study a series of classes such as ParkingRate, ExitPanel, and ParkingFloor.
iv. Activity Diagrams
Activity Diagrams offer a series of potential activities and results based on those activities.
For example, this diagram observes the activity of the ticket being paid:
As you can see, many activities are straightforward.
For example, if the customer inserts the credit card into the card reader, the next step is for the system to read the credit card details.
But there are other activities that have multiple potential outcomes. For example, “Payment successful?” can either be successful or produce an error. This will alter the processes moving forward.
There are over 180 code snippets in Java and Python in this course. Each design case study has ample examples.
For example, in Design a Parking Lot you can study the code of the following:
✅ enums and data types ✅ Account, Admin, ParkingAttendant
✅ ParkingSpot ✅ Vehicle ✅ ParkingFloor
✅ ParkingDisplayBoard ✅ ParkingLot
You can buy the course for $49. Or you can upgrade with a subscription to the entire Educative.io platform:
|Cost||Access to 165+ Courses||Access to Learning Tracks|
|Grokking the Object Oriented Design Interview course||$49 / year||❌||❌|
|Monthly subscription to Educative.io||$59/ month||✅||✅|
|🤩 Best deal! Yearly subscription to Educative.io||$21/ month||✅||✅|
Check out Grokking the Object Oriented Design Interview here.
Is Grokking the Object Oriented Design Interview Worth It? Conclusion
If you’ve got a FAANG interview coming up, this course is a must.
You’ve got to be ready to accept, navigate and tackle any problem they throw your way.
And with these 16 questions cultivated by actual FAANG interviews, they know what you should expect.
Looking for some more FAANG interview prep? Check out our Grokking the Coding Interview course review.