Just got done teaching the "Object Oriented Programming in Visual Basic .NET." Imagine taking the stereotypical Mort and transforming them into Super Morts. Good times. We had a good time playing "guess the value" as I passed in structs and classes into functions ByRef and ByVal. I think they all began to understand what's going on in the scene, and why things work the way they do.
In Effective Visual Basic chapter one is called "Shifting from Liberal Arts to Software Engineering." I'd like to write the "Effective Visual Basic .NET: Shifting from Liberal Arts to Software Engineering." I'd love to cover the importance of the stack and heap and how it related to objects, love to get into the different types of collections and what the MSDN library is talking about with O(n log n). All you Einsteins out there are probably scoffing at the thought of anyone needing this type of book because they can easily go out and buy the Art of Computer Programming or some other geeky book, but those aren't exactly books written on non CS levels. But you'd be surprised how many Visual Basic programmers love finding this stuff out. Most of them got their jobs because they were pegged at work as being the person who really got excited about computers, and formalizing this CS type knowledge in an easy to grok format would be TREEEmendous.
I mean, how many books can show you how to drag and drop the DataGrid control? My guess: 420. Oh, I could also go gonzo and write "Effective C# ..." but I think that would set me up for all kinds of reviews on Amazon.com like "after 4 years of CS, and two in grad school I don't need 10 pgs talking about big-O notation, just tell me how to make a stupid checkbox in the datagrid! The chapter on databinding was particularly good, however." Of course, I could be wrong.