Soft-decision decoding algorithms significantly improve the error-correcting performance compared to hard-decision ones. However, the main technical issue of soft-decision decoding is the high required complexity. Belief-propagation (BP) decoding algorithms are known as efficient soft-decision decoding algorithms. The BP decoder achieves capacity approaching performance if there are no short cycles in the Tanner graph of the code. Applying BP decoders directly to high-density parity-check (HDPC) codes leads to poor error-correcting performance due to a large number of short cycles. In this thesis, we proposed a low complexity soft-decision decoding for HDPC codes. This proposed decoding algorithm can achieve the same error-correcting performance as the existing algorithms at significantly reduced complexity. In addition, we design a hybrid decoding, which is a clever combination of the iterative hard-decision decoding and our proposed soft-decision decoding to decode the product codes. We conduct extensive performance evaluations with continuously interleaved BCH (CI-BCH) codes, a type of product code widely used in optical communication systems.