Writing a Software Rasterizer
There is an interesting post on AltDevBlogADay showing how one can write a software rasterizer:
http://www.altdevblogaday.com/2012/04/14/software-rasterizer-part-1/
Anyone interested in graphics should have some understanding as to how the graphics pipeline works and how the rasterizer works. Knowledge of math (especially linear algebra) helps greatly.