The last two decades have seen enormous progress in the development of sublinear-time algorithms — i.e., algorithms that examine/reveal properties of “data” in less time than it would take to read all of the data. A large, and important, subclass of such properties turn out to be “linear”. In particular, these developments have contributed to the rich theory of probabilistically checkable proofs (PCPs) and locally testable codes (LTCs). In this survey, we focus on some of the general technical themes at work behind the many results in this area.