Home Resources
Developer's Corner
C/C++ Programming Resources PDF Print E-mail
User Rating: / 40
PoorBest 
Written by Jay Koutavas   
Wednesday, 07 November 2007 12:00

Recently I was asked for some recommendations on books for C/C++ development. Here we are.

First there's The C++ Programming Language by the guy who started it all, Bjarne Stroustrup.

I highly recommend you become fluent in the uses of STL -- C++'s Standard Template Library. The book I consider as the "STL Bible" is The C++ Standard Library: A Tutorial and Reference. A must-have book for your library, it's a well-organized, thorough, and practical guide to the STL.

To gain further insight on C++ templates, there's C++ Templates: The Complete Guide by Vandervoorde and Josuttis.

One corner of the STL that doesn't get covered in most STL books to any great lengths is IOStreams. They're a powerful class of STL objects. I stumbled upon an entire book dedicated to them. It's titled Standard C++ IOStreams and Locales: Advanced Programmer's Guide and Reference by Langer and Kreft.

Once having become fluent with the STL, the next step on your journey is to master it. Here's where Scott Meyer's excellent series of books come in. Get Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library. Here you'll learn the "gotchyas" on STL use. Very eye-opening in numerous cases.

You should also aquire this Scott Meyers book: Effective C++: 55 Specific Ways to Improve Your Programs and Designs

Good coding standards are not to be underestimated. Good structured code goes hand in hand with well designed software. Here's the book I recommend on code standards by two other legends in the C++ community, Herb Sutter and Andrei Alexandrescu. C++ Coding Standards: 101 Rules, Guidelines, and Best Practices.

Okay, you gotta learn boost. And here's the missing user's manual I recommend: Beyond the C++ Standard Library: An Introduction to Boost by Börn Karlsson.

Another "must have" reference for the software developer, which isn't actually C++ specific, is Design Patterns Elements of Reusable Object-Oriented Software by Gamma, Helm, Johnson and Vlissides.

Update: It's 2018 now and my has C++ grown and improved since I compiled this list. There's C+11, C++14, and C++17. Here's a wonderful modern resource: C++ Core Guidelines maintained by Stroustrup and Sutter.

 

 
Mac OS X Programing Resources PDF Print E-mail
User Rating: / 23
PoorBest 
Written by Jay Koutavas   
Tuesday, 24 October 2006 12:00

Here are some useful material references for the beginning Macintosh software developer:

There is a well written and current article at http://maczealots.com/articles/development/ entitledBeginning Mac Development, by Justin Williams, that serves as a good launching off point from Windows software development to Mac software development. Here's an excerpt from the article's introduction:

"This article is meant to be a general overview of the Mac development environment. I want to explain what some of your options are, how to get started, and where to look for help. I won't be explaining Objective-C syntax, reference counting or any other type of specific programming topics. There are plenty of other great resources out there for that can do a far better job at that. I'll link to those later in the article."

I recommend reading Justin's article and following up on his resource links. I also recommend your Mac OS X development library should contain, at a minimum, the following materials:

  • Book: Cocoa Programming For Mac OS X, second edition by Aaron Hillegas -- I reference this book in a number of places in this document. Aaron runs The "Big Nerd Ranch" where he teaches Cocoa and Mac OS X development. Web site is www.bignerdranch.com.
  • Book: Cocoa Programming by Scott Anguish, Erik M. Buck, and Donald A. Yacktman -- I operate from the philosophy of "One should always have two books on any given subject in order to get the broader picture." This book is one of my favorite Cocoa "second books" (I have multiple "second books" on Cocoa in my library.)
  • Book: Objective-C Pocket Reference by Andrew M. Duncan -- a very handy reference, packed with info. I'm still learning esoteric and useful things from this slim volume.
  • Book: Core Mac OS X and Unix Programming by Mark Dalyrymple and Aaron Hillegass -- geek central for getting down and dirty inside of Mac OS X.
  • Book: Advanced UNIX Programming, second edition by Marc J. Rochkind -- a recent addition to my library. Very good coverage of named pipes, shared memory, file I/O, etc., etc.

http://developer.apple.com is Apple's main development page. You'll find source code examples and documentation here.

http://lists.apple.com is where Apple maintains numerous developer's mailing lists. Here's where you find them.

http://www.cocoabuilder.com is an invaluable resource for all things Cocoa. Its an aggragate archive for both Apple's cocoa-dev mailing list and macosx-dev mailing lists. This is the first website I visit when I have a Cocoa-related question.

It is quite handy use a two-button mouse with Mac OS X. Though Apple, at this writing, ships only one-button mice with their computers, Mac OS X is very much "two-button savvy". Right-click context menus work in the same fashion as you've come to expect from Windows. If you don't have a two-button mouse, a right mouse click can be simulated by "control-clicking" (holding down the control key while clicking the mouse button.)