There is probably a multitude of ways that you can work too hard as a C++ developer, but there are two specific ones that I would like to focus on:
Reinventing the Wheel
Most C++ developers I have encountered seem bent on reinventing the wheel instead of building off of the work of others. Building code in house can be very gratifying. You have the thrill of building from scratch and the knowledge of full control. Building from scratch also means taking on huge time and cost risk for debugging and maintaining code, a price that has often been paid already by others. For most any difficult feature or data structure that you need to implement, you should ask yourself three questions:
Part of the fact that nobody understands C++ is that nobody understands the C++ standard library (also referred to as the STL). There are several good references for the library, such as SGI's. My personal favorite is still C++ in a Nutshell.
Yes, Boost is big. Yes, it can be a pain to add it to your application. However, the license is very free (MIT-like), and it contains an amazing amount of resources. We have covered boost several times in the past here.
A virtual cornucopia of C++ libraries exist out there. Few of them are as well reviewed and designed as Boost. Google Code, Freshmeat and Sourceforge are all great resources for finding open source projects which might already meet your needs. There are many software licenses which may conflict with your personal interests, so do be careful when choosing a code base to use.
Using C++ Where It Shouldn't Be Used
C++ isn't the perfect language for every situation. It is a very versatile language, but sometimes other languages are better suited to the task at hand.
A method that may work well for your project:
All of the back-end library and systems level code and anywhere performance is a concern.
Runtime configuration and scripting of your application. Also, using Lua as a possible way to extend functionality at runtime.
Scripting language of your choice should be used for the user interface.
SWIG can be used as the glue to pull the pieces together. Dynamic languages and scripting languages provide for faster prototyping and building of user interfaces than C++, on average.
Recent comments
10 sec ago
2 hours 55 min ago
2 hours 55 min ago
13 hours 9 min ago
14 hours 37 min ago
14 hours 37 min ago
14 hours 37 min ago
21 hours 54 min ago
2 weeks 3 days ago
4 weeks 4 days ago