
|
Bookshelf
I primarily read books on software as I'm fascinated by the science of making great software. To this end I have a list of books that I recommend any aspiring software developer should read on the road to becoming a good software developer. But these books aren't only for beginners. If you've been programming for many years you will still be able to learn much by spending some time with some of these books. Windows Programming with the .NET Framework
SecurityProgramming Windows Security by Keith Brown Keith does for security what Don Box did for COM in Essential COM. There is quite a lot to Windows security, especially since almost every subsystem in Windows builds even more security functionality in. Keith takes you from the ground up starting from logon sessions and security descriptors all the way to network authentication and COM+ role based security.
Writing Secure Code by Michael Howard and David LeBlanc Whether you like it or not, security affects every software program you write today. Writing Secure Code is similar to Code Complete in that it packs a ton of very useful information that you can directly apply to your software development today. Whereas Code Complete covers programming in general, this book focuses on design and coding as it relates to security. I highly recommend it. They actually gave out a copy of this book to every PDC 2003 attendee! I already had a copy, but its just great to see Microsoft pushing security so hard.
C++The C++ Programming Language by Bjarne Stroustrup If you program in C++ or want to learn how to write software using C++ then go grab a copy of this book. It is the ultimate reference guide to the C++ programming language, arguably the most powerful and successful programming language of all time.
Effective C++ and More Effective C++ by Scott Meyers If you're looking for specific ways to improve the quality of your C++ code and designs, these two books are a must. They itemize some of the most important techniques and practices of writing solid code in C++.
I have been using the Standard C++ Library, more commonly
known as STL, for a number of years now. I was very happy to
find that Scott Meyers had finally written a book dedicated
to it. If you enjoyed his previous books, you will love
reading Effective STL.
Windows Programming in C++Programming Applications for Windows by Jeffrey Richter This is an essential book for the Windows systems developer. It lays the foundation for all other Windows technologies. If you really want to understand COM, security, .NET, IIS, etc. then first read this book.
Inside Windows 2000 by David Solomon and Mark Russinovich Inside Windows 2000 is a really in-depth look at the Windows NT architecture from the guys behind sysinternals. While you're there, check out their great tools like my personal favorite, Process Explorer.
![]() Programming Windows with MFC by Jeff Prosise I first learnt to program for Microsoft Windows reading the first edition of this book. This is a must for anyone wanting to learn MFC programming and gain a better understanding of the Microsoft Foundation Classes, still the most powerful tool for creating desktop applications.
COM started a revolution, allowing developers to design and build larger and more powerful applications much more easily than is possible with just a programming language. That is the power of component development. Don Box is one of the most well-respected authorities on Microsoft's COM and his book is an eye opener. It walks you through the journey of discovering COM as a C++ programmer. Effective COM by Don Box, et al This is a great follow up to Essential COM with more practical tips to aid your COM programming. The book is in the same style as Effective C++ and, although I don't agree with all the points, I still think its a great book and a worthwhile read.
![]() ATL Internals by Chris Sells and Brent Rector If you're still doing COM development in C++, then ATL is probably a big part of it. To really understand the design of ATL give this book a good look. This is not a reference manual. The only real reference manual for ATL is the source code itself. Consider this book a study in the design of ATL.
Windows Programming with the .NET FrameworkApplied Microsoft .NET Framework Programming by Jeffrey RichterThis is the only .NET book you need to read. No one explains the why and how
of the CLR the way Richter does. If you enjoyed Programming
Applications for Windows for Win32 programming, you'll love this book for
.NET programming. Essential .NET by Don Box
OK, I know I said that Richter's book is the only .NET book
you need to read. But this is a must if you want to dig into
the workings for the CLR.
Software ManagementThe Mythical Man-Month, Anniversary Edition : Essays on Software Engineering by Frederick P. BrooksThis classic software project management book is a fascinating collection of
essays written by Frederick Brooks. Based on his experiences managing
large-scale software projects during the 50's - 70's at IBM. Despite all the
advances in computer science, most of the challenges faced back then are still
very much a part of our lives today.
![]() Dynamics of Software Development by Jim McCarthy Jim McCarthy provides many fascinating insights into managing software teams in this little book. Managing a software project is more about managing people than it is about managing software.
Peopleware by Tom DeMarco and Timothy Lister This is the ultimate software management book. I don't know what else to say. Read it. Buy a copy for everyone you know. Then read it again.:) MiscellaneousMicroserfs by Douglas CouplandAn interesting story about a group of misfit Microsoft employees. More than just a story, its a rather deep look into the lives and thinking of programmers. You have to be a programmer to understand, but my wife also enjoyed reading it for its human side.
![]() Conceptual Blockbusting by James Adams This is a fascinating guide to the workings of the mind and how you can put it to work in creating ideas and solving problems. It is very practical and approachable, so you don't need a psychology degree to learn something from it. If you want to be more creative or want to know how to make your organisation more creative, you should read this book. I highly recommend it.
Code Complete by Steve McConnell This is an absolutely must-read. Steve has managed to capture almost all of the fundamental elements of developing quality code in one comprehensive volume. Whatever your programming language of choice, this book will help you write better code.
If you really want to be a good database programmer you need to master SQL. This book should keep you busy.
This book presents detailed analysis of algorithm design, covering such topics as performance and code tuning. The Pragmatic Programmer by Andrew Hunt and David Thomas Packed full of practical advise, this book is guaranteed
to make you a more effective programmer. Inside Microsoft Visual Studio .NET by Brian Johnson, Marc Young, Craig Skibo If you're like me and live your
life inside Visual Studio then this book is a must. This
book is all about using Visual Studio. It covers everything
from the basics of using the IDE to write code and build
projects to advanced topics like extending Visual Studio
with macros, add-ins and wizards. Marc makes use of my
icon resource
management classes for the add-in sample described
in chapter 6.
This book is packed with lots of detailed information to help you build better applications with SQL Server.
|