I performed some programming in Visual Basic 6 a few years ago and then my job was changed so that I was maintaining a Unix program for a few years, which entailed putting fires out each day and very little programming of any type. A few months ago I was fortunate enough to get transferred to a great job programming web sites and some Windows applications. I've been able to write some fairly complex programs, but I knew I was missing some large piece of the puzzle. I'm really a novice programmer. I wasn't creating classes and I wasn't doing a lot of things that were efficient. If my programs needed to do more or scale, they were very difficult to adjust. During these months I've purchased a lot of books, and they had good stuff in them, but I still wasn't able to put things together. I would see things like "WithEvents" and ask what was that for. I had to do some threading and succeeded, but only by trial and error and I didn't understand the "why" of why it worked. For that matter, there was a lot that I didn't understand the "why" about.
I then thought that, even though I was using objects, that I didn't really understand object-orientated programming enough. I looked on some User Group sites and saw this book listed as a good one.
I held high hopes for this book. It's my first book from Apress. I started reading the first 4 chapters, which were on how to design and plan an OOP program. I'm convinced his information is important but ugh! It was horribly boring! I was mostly through the 2nd chapter when I thought I'd committ suicide <grin>. I had to quit reading chapters 2-4 and tell myself I'll get back to that later. Yes, it's that boring. It's worse than hearing your girlfriend talk for hours about makeup and dresses! So I skipped to Chapter 5 which gave basic instructions on using Visual Studio. I thought, "Why put this beginner's crap in this book". If you need to know the basics of VS, then get a beginner's book on VS. It shouldn't have been here.
By this time I'm thinking I bought a book of garbage. But I went on to Chapter 6, and I'm glad I did. It finally got to the point and started talking about OOP and classes, constructors, overloading - and I was getting some of the elusive "why" explained! Chapter 7 got into inheritance, derived classes, overriding and overloading, etc with more of the "why". Chapter 8 got into the stuff like "WithEvents" and delegates, and how delegates work with threading. You will need to use threading and you will see "why". In geekspeak, threading is cool! Chapter 9 shows how to work with Collections (arrays, dictionaries, etc). This chapter didn't explain much "why" but when I need Collections there is enough to be able to implement them. Chapter 10 starts explaining some "why" regarding databases, such as connected versus disconnected data access. The examples use SQL Server. Chapter 11 looks at forms in a different light from other books, looking at them as objects instead of just sticking controls on them, and works with using databases more.
Now I feel better about going back to the first 4 boring chapters as I will now have something to build with.
To a complete beginner, I would say to first get a basic VB.NET beginner's book and get familair with VB and Visual Studio. If this is your very first book you will be very lost. The book is made for a novice.
This book is one of the most important I have read. I am making progress very quickly over the last week or two, while previously I sputtered for several months. I've tried to convey how I felt, and if you feel similar, you must get this book.