The codes 5G uses, and where.
5G NR uses two FEC families, split by job. LDPC (low-density parity-check) codes carry the data channels (PDSCH, PUSCH). They excel at long blocks and very high throughput, decode with parallel message-passing, and support flexible rate matching through a circular buffer — ideal for gigabit data. Polar codes carry the control channels (PDCCH, PBCH, PUCCH). They are provably capacity-achieving and strong at the short block lengths control messages use, where LDPC is less efficient.
This is a change from LTE, which used Turbo codes for data and convolutional codes for control. Turbo served well but LDPC decodes faster at NR's data rates, which is why NR switched. Reed–Solomon is a different animal — a block code that corrects symbol errors, dominant in broadcast, optical and storage systems and in older standards, but not used for NR data. It is worth knowing because it still appears across adjacent systems a radio designer meets.