Implementing an atmospheric shader in three.js is a fun way get an understanding of the interaction of the different scattering components, light, and observer’s position. Plus you get a pretty cool effect to play around with after you’re done.
Implementation can be wonderfully useful as both a test of, and a forcing function for, really understanding something. At least when ground-truth (ie tests) is available.