This is a guide for creating readable maintainable reusable and faster code. No object oriented programming is involved. Out of all techniques which aim to improve your product's quality readability has the highest return on effort. - Quality: Bugs are found mostly by reviewing other people's code. You can't review somebody else's code if you cannot read it. Bugs are not found by unit-tests because unit-tests are created to capture errors that are known to exist. - Efficiency: Maintenance takes about 80%% of developers' time. Therefore spending some time in writing better code will save you more time during maintenance. - Performance: Unreadable code is difficult to reason about. Any opportunities for optimisation that may exist are often impossible to spot. The six techniques described are easy therefore: - students can apply them - C programmers can follow it without changing programming paradigm - you can write idiomatic C++ instead of writing like C Java or Fortran.