The primary audience is self-taught programmers, which can be defined as anyone learning how to program outside of the university system, like programming boot camp students. The reader is a beginner to an intermediate programmer. They have a job they don’t like and are looking to switch careers to become a software engineer. Or they already have a job as a software engineer, but they need to prepare for a technical interview at another company. The secondary audience is students studying computer science at a university.