Reinvent the Wheel
A lot of people will tell you not to try and reinvent the wheel. If a script has been written, or a styling effect developed that accomplishes what you want, why spend time trying to create the effect yourself?
I can see their point, and in some situations, I agree. If you are on a tight deadline for a project, you often don’t have time to develop that functionality from scratch, and it therefore makes more sense to adapt the structure already developed by someone else.
I do feel, however, that web developers do need to try and create an effect from scratch when they have the opportunity. There are a couple reasons why I feel this is the case.
First off, by forcing yourself to create that layout using CSS, or that form validation script in Javascript from scratch, you force yourself to analyze and learn the intricacies of the language you are dealing with. This knowledge will help to increase your understanding of both the concepts and techniques involved in arriving at a solution for the task. And as far as I know, more knowledge and understanding is never a bad thing.
The other main reason for creating something yourself is because you never know how another point of view may help to create a superior solution to a common problem. Challenge yourself to see if you can improve the solution. I guess you could call this ‘modifying the wheel’. If you are going to try and develop a better solution, you should study the ones already out there. Try to see their strengths and weaknesses, and see how you can improve the weaknesses while not losing the strengths.
So over all, I say go ahead and reinvent the wheel. Challenge yourself to create a better solution, and in the process, increase your knowledge. Remember, the first wheels were stone slabs. I tend to think the wheels currently being manufactured for cars, bikes, etc. are probably a little bit better solution.