I had been programming at a layman's level for twenty odd years before reading this book. I then found myself in the position where I had to teach computer programming to upper secondary school students. So I had to take an interest that was personal and was that of a hobbyist to something rather greater. This book was not easy going, but for the first time I started to understand aspects of the conceptual framework that is needed for programming, particularly within the VB.NET environment. Occasionally Petzold would describe methods A and B that can be used to achieve a particular programming objective, and would then reveal method C as the best, and I'd wonder why he didn't come to the point a bit more quickly and without putting his ignorant reader through the frustration of working through the less efficient code. Even despite this, I think it would be churlish and unfair for me to award anything less than five stars to a book from which I learnt a tremendous amount.