What is Low Level Design?
What this lesson covers
This short introductory lesson defines low level design as a mix of designing and coding, and sets out how to tell whether code is good or bad. It draws on Google's description of programming as coding across time: code should meet today's requirements and also help future engineers meet future ones. Three factors follow from this. Readability comes first, since code that its author and teammates can understand is easier to debug, change and test, while unreadable code becomes a black box that raises the cost of every change and is usually the first to be refactored. In interviews, readable code also signals a strong engineer whose work will need fewer refactors and faster reviews. Extensibility means new features can be added when requirements shift without major changes to existing code, which matters as teams, requirements and standards change over the years, and it lets an engineer's work keep standing long after they move on. Correctness is the third pillar: bugs that reach production and customers are expensive to fix, and reliability is a core responsibility in every engineering field. The lesson notes that judging these factors becomes intuitive with practice, and the rest of the course aims to build that sense.
- Low level design combines design decisions with writing code
- Readable code is easier to debug, change and test
- Extensible code accepts new features without major rewrites
- Correct code avoids costly production bugs and builds an engineer's reputation