The main method for constructing good binary codes is to start from good linear codes over an extension field FQ and to go down from FQ to F2 using concatenation, subfield codes or the trace. The largest and most useful family of binary linear codes which readers encountered in this text, the cyclic codes, is constructed in this fashion. In the category of additive codes it is much easier to go down to smaller alphabets than in the category of linear codes. In the case of linear codes readers are restricted to subfields, and those are rare. Most constructions in the computer memory literature use F2m-linearity. The idea is that some errors tend to occur in bursts. Another interesting feature is the use of symmetry. Kaneda-Fujiwara show how certain symmetries can be used to partition the encoding-decoding circuitry into identical modules and to parallelize the computations.