The entire time you program, you will hear terms like there’s a third-party tool for that, or don’t reinvent the wheel, and look before you code. I personally feel that’s an unwise situation when you are just beginning to code. You should reinvent the wheel; you should reinvent it over and over again. If you find yourself with free time, you should be looking for things to reinvent. Often before I turn to a third-party tool, I’ll design something myself and get that working before I look at other options.
Why? Why should you do this, what is to be gained from doing something someone else has already done more efficiently? A lot! Every time you break something down or reverse engineer, you are partaking in a learning experience. You shouldn’t be starting something over for the sake of coding; you should be doing it as an exercise in experience. You should be looking at it as a way to evolve and progress your current understanding. Find out why something works the way it does, or what happens when you tweak a setting. Discover what you can do to make something better. A lot of great ideas are just improvements on previous ideas.
For a great example, think about light bulbs. They seem pretty mundane, but think about the idea of light bulbs. The only way to light homes over a hundred years ago were with fireplaces and candles. In our current society, to light a home full time like that would seem disastrous. Someone had a great idea to light homes with pieces of filament in bulbs, but that required using electricity. And enter Thomas Edison, who helped electrify the world. Edison’s discoveries are still fundamental to our understanding of electricity, but along came Nikola Tesla, who improved Edison’s previous ideas and provided us with the electricity that we use today. Light bulbs, while still fundamentally the same as they were 100 years ago have seen radical changes. There are many different types of bulbs for many different types of applications, and each one using a different form of a power source. If you want an example of how all of these great ideas have come together into better ideas, look no further than Times Square, or Tokyo, or even Las Vegas. It all started with a single bulb, a lot of innovation and a lot of reinventing.
If everyone involved just said, “eah, it’s good enough, why reinvent the wheel” we wouldn’t have had the innovation that we have had today. The world is full of ideas that are waiting to be improved upon by the right individual. Be that individual.
With our code, we should be breaking things down, learning why they work, how they work, and what we can do better. How do you expect to get better if you just borrow the code and implement it into your own? Borrow the code, but also borrow other ideas and use that code for something that someone else may have not thought of.