I have always been a network/hardware guy and avoided programming like the plague (aside from basic Perl/shell scripting -- which every administrator needs).
I want to expand my programming horizons and learn C/C++ can you all recommend any resources, especially books/programs that would be helpful in picking up the languages. I am interested in learning to program on both Windows and *nix boxes so resources for both would be appreciated.
Here are a few C++ books every C++ programmer should have:
The C++ Programming Language, Bjarne Stroustrupp
The C++ Standard Library: A Tutorial and Reference, Nicolai M. Josuttis
Effective C++, Scott Meyers
Effective STL, Scott Meyers
Also, there is a series of articles called "Conversations" written by Herb Sutter and Jim Hyslop published monthly online at www.cuj.com (http://www.cuj.com/experts/?topic=experts to be specific). It's geared more towards expert C++ programmers, but it is so well written that I think it'd be pretty easy to follow even for the novice. If not, the lessons that are tought are worth having in your mind.
Something you should absolutely keep in focus is The Standard Template Library (STL) or just The Standard C++ Library as it is now called.
Learn C# and skip c/C++. C# is an easy language to learn and it has the raw power of C++ and mimics C++. It has good memory managment not to mention it blows java and C++ out of the water. Whats that you are thinking? You cant afford the 1600.00 visual tool. Just go download sharp develop from http://www.icsharpcode.net/OpenSource/SD/default.asp. If you do not want to just leap ahead into the .net world , then I finally suggest learning c++ over c. C is confusing to get at first contrary to c++ which is really easy to get but hard to get good at.
C++ is a superset of C, so to fully know C++ you must know C.
C# lacks templates and uses the same idiom that Java does for generic programming (a single base object for everyone). C# has its uses, but it lacks severely in the power that C++ provides. Templates are one of the greatest inventions in recent history for generic programming.
Guys, thanks for all of the great tips. I think I am going Ahmad and Phil's advice and start with C (though not for 3 years, I don't want to be a programmer, I just want to understand the basics ), then move onto C++ -- thank you all for the great titles..I am going to head on over to Amazon and see what I can pick up.