Learn 3D Computer Graphics Programming from Scratch