I agree. A better approach might be to build an entire program from scratch. With each lesson creating a new function or algorithm, introducing new concepts as it goes. In the end, the full program would work, and you would understand every component of it.