a process to learn openGL