A scheme for construcing linear and non-linear codes is presented. It constructs a code of block length 2n from two constituent codes of block length n. Codes so constructed can be either linear or non-linear even when the constituent codes are linear. The construction of many known linear and non-linear codes using this scheme will be shown.