When I was a lecturer at a computer programming school, we always allowed the students that did not pass the course, to redo the course for free. It always turned out that these repeat students achieved the highest marks in the class.
WHY?
The students battled first time round because they couldn?t grasp the concept of the programming tool being taught at that moment. To complicate matters further, they also had to learn to apply the tool in the correct format (computer language). By the time they caught on, they were battling with the next concept, always behind the class and having a miserable time.
The reason for them achieving great marks the second time round is that they understood the concepts of programming. They understood the fundamentals of what programming languages can do and thereafter they just had to learn the rules on how to apply them. They could enjoy and master each next phase. Before I go on, let me review the benefits of owning the book.