I noticed that a lot of people advocate using the STL vector, string, etc so as not to reinvent the wheel which is great for production code. You want to have something that speeds up production of a software product and make it easily portable to several platforms. For learning purposes, isn't reinventing the wheel kind of necessary? I read some older articles about programmers creating their own toolkits for programming. Do any of you have your own tookit that you put together? I also see that people still seem to be making their own string classes, BigNum classes, vector and the like despite all the advice to the contrary to just STL.

Do you think that saying well its easier to just use the vector class is better then advocating someone trying to implement their own version? We wouldn't have boost or linux or several other options if someone didn't think they could do it better?

Do you think that creating a personal tookit of your own classes is still advisable? If so, what would you recomend to include in a personal toolkit?