Is it OK to live without knowing how the program you created works

librariesprogramming-languagesself-improvement

I mean, there are really useful libs that can solve problems when you are stuck and do not know how to solve this or that with your knowledge of programming language you use… For example, Boost for C++ or JQuery for JavaScript or Spring for Java… They solve problems in seconds and you do not really care how they did it (despite that they are written in the very same language you are programming in)… So I wonder am I alone in using libs while not being capable to write solutions for my problems from scratch or is it standard practice?

Best Answer

Is it ok not to understand how to solve the problems yourself, and use libraries instead?

In the general, no, it's not.

A library can save you the (hard!) work of figuring out how to solve a problem, and then debugging the solution, and then, maintaining it. But, if you're going to use it, you'd better make sure you understand how it works - why the solution actually solves the problem. You don't have to know how to invent cars, and engines, and robots that build car engines, if you're working as a mechanic - but you'd better understand how the parts work, what they all do, and how they fit together!

This is the reason why you will see many people become very specialized - many times only learning how to work with a single language, a single platform, a single framework and set of libraries.

That being said, there's only so much you will have time to learn. Sometimes you've got to take shortcuts - take them, but know they are shortcuts. Maybe you only read enough about a library to know you could figure it out, if you had the time. Or maybe you only figure out the two functions that you actually need to call, and only enough to make the calls correctly. That's a shortcut, which will come at a price - usually later, when someone (maybe an older, and more experienced, you) has to fix the code.