  Practically good error-correcting codes should have good parameters and
efficient decoding algorithms. Some algebraically defined good codes such as
cyclic codes, Reed-Solomon codes, and Reed-Muller codes have nice decoding
algorithms. However, many optimal linear codes do not have an efficient
decoding algorithm except for the general syndrome decoding which requires a
lot of memory. Therefore, it is a natural question whether which optimal linear
codes have an efficient decoding. We show that two binary optimal $[36,19,8]$
linear codes and two binary optimal $[40,22,8]$ codes have an efficient
decoding algorithm. There was no known efficient decoding algorithm for the
binary optimal $[36,19,8]$ and $[40,22,8]$ codes. We project them onto the much
shorter length linear $[9,5,4]$ and $[10, 6, 4]$ codes over $GF(4)$,
respectively. This decoding algorithms, called {\em projection decoding}, can
correct errors of weight up to 3. These $[36,19,8]$ and $[40,22,8]$ codes
respectively have more codewords than any optimal self-dual $[36, 18, 8]$ and
$[40,20,8]$ codes for given length and minimum weight, implying that these
codes more practical.
