If you are a programmer, then you have to learn a lot. Remember your first "Hello, World!". I had it in fourth grade. We studied C ++, and our teacher wrote the program by hand on the blackboard. We used Turbo C ++, copied it to a floppy disk to experiment at home.
At that time, I did not think that Turbo C ++ is an editor . I did not think of it as an IDE . For me, Turbo C ++ was a C ++ language . It was the only way I could program. I didn’t know what “compilation” means, I didn’t know why #include
needed at the beginning of the file. I did not understand what main
does and that printf
can take any number of arguments. I just copied the program from the board, clicked Run
and saw the output on the screen.
That's cool. So you need to learn programming. You need to do something before you do not yet understand how it works. Some time you need to be deliberately in the dark about the details. Details are distracting.
In the end, you grow up. You will learn what #include
does when writing your first "big" program. You will understand where the main
output goes when you start running programs from the terminal. You will understand how printf
works with parameters when you study variable functions.
The duty of knowledge exists not only for schoolchildren who are taking the first steps in this world. I'm coding in C ++ without understanding how the shared libraries work. I wrote a web application before I learned how a web server works under the hood that processes requests. I programmed for embedded Linux systems without knowing how to compile code for different target platforms. I wrote an application for Android before I delved into the “application life cycle”. Again, this is cool . Definitely, you don’t need to know about metaclasses when you write the first program on Python (and some will say that you never need to know about metaclasses).
All these were my “debts of knowledge” when I was already programming professionally. They allowed me to move quickly forward and not dig into details. But the duty of knowledge, like technical debt, must be temporary.
You need to deliberately and tactically decide without what part of the information you can live now. But you also need to deliberately and strategically decide when to pay your debts.
Debt knowledge is similar to financial debt. This tool - you need to use it wisely to make a profit. Imagine that you started your small business. Borrowing a little at the beginning to earn more in the future is a great solution. But, as with financial debt, you need to understand what options are applicable in your situation. Taking too much is dangerous, but taking too little is too. It is also important to decide when and how to return the debt. Staying in debt for too long will result in a large percentage, but if you try to pay in too large portions, this will have a bad effect on your progress.
As with money, the duty of knowledge is not only for beginners. Large corporations take huge loans. In the fourth grade, I needed to postpone the study of compilers, and today I need to postpone the study of the internal implementation of the CPython interpreter.
Being a programmer means learning all the time .
If you allow the debt of knowledge to accumulate , then it can greatly slow down your career and productivity. If you have a debt of knowledge in an important area for you, then over time you will need to put more and more effort into writing new features, and much, much more effort when fixing bugs. The longer you delay the repayment of the debt, the greater the "amount of time" will have to pay.
If you take the time to understand the internals of the technologies used in the work, you can work faster, with less effort and more confidence in your professional abilities.
I believe that the duty of knowledge - this is what distinguishes average programmers from cool programmers. Cool programmers don't stop at ignorance; they also do not interfere in the study right now. They are in a constant cycle: borrow, notice it and return to it at the right moment.
Determine your knowledge debts today, find what you need to understand to become better in your field. Look for new opportunities and pay off debts. Get steeper.
Source: https://habr.com/ru/post/310158/
All Articles