What is the programmer's knowledge half-life? This is similar to the five of our country, in other words, the programming knowledge you know is likely to be obsolete after five years, and the similar sentiment is: "I am now writing code behind the level, because I know that the language is outdated." ”
At first, it seemed reasonable. After all, there is a stream of new programming languages and techniques coming out. However, I think this is wrong. Programming knowledge languages are even longer than people's lives, because they will never perish. For example: vb,asp.
Grammar is not difficult
When you start learning a new programming language, when you are not a programmer, learning Python language or learning Java you sound like learning English, but when you have come to English to learn the new grammar, in fact, this time is only a superficial difficulty, All the core concepts are the same.
To write a program in any language, you use similar types, data structures, and logical foundations. If you already know about booleans, integers, floating-point numbers, and strings, they are likely to be used in the new language as well. These also apply to data structures like lists, collections, dictionaries, and trees. And using logic will be arithmetic operations, if statements, loops, function calls, etc.
In addition, key skills such as the algorithm used, how to decompose the problem, the naming of variables and functions are used directly in a new language. This is an easy transfer between common programming knowledge languages. Borrowing the term "no silver bullet": The Grammar of language is accidental knowledge, not the basic knowledge of how to program.
The same applies to libraries and tools. Even if you don't know how often the expression is used in a new language is to do what, but you should know that there is the possibility of getting the most support for this knowledge. Finding details about how to use them is not a difficult part, but how to use them is valuable knowledge. With tools like Ides, the same thing-you may not know the details, but you know you can do what you want to do with them.
So, learning a new language is not a big problem. But if you change jobs, there may still be a lot of things to learn. I want it in 3 dimensions of knowledge.
Knowledge three-dimensional
Programming: This is programmed with languages, patterns, techniques and tools. As I wrote above, there are many core concepts that are the same, even if the details (such as syntax) change.
Domain: This is the content of the environment in which you know the program used. For example, if you work in telecommunications, it is knowledge of how various protocols work, how SMS is handled, how billing and monitoring are done, and the longer you work in a department, the more you understand it, and the more valuable your contribution can be.
Code base: This is a specific company. When you've been working for a long time, you know the way around the code. You know that things have been done, which parts are tricky and intuitive, and why some things are done in some way in history.
It's important to keep learning
As a programmer, you are the most valuable when you are insightful in all three areas. If you change jobs, it is inevitable that you will know nothing about learning new language codes-you only need to dig and learn.
However, what you've learned about programming and domains will be helpful even if you change jobs. Knowing how several programming languages will give you a reference point for how things are done differently (even if the fundamentals are the same). It is also good for general reading software to develop books such as code completion, and clean code for programmer cultivation.
Finally, I think the above-mentioned things make software development interesting and exciting, there is always something to learn. You never feel bored. Therefore, keep learning. What language do you know best makes you a better developer, even if there is a new code language that is born every year?
How do programmers avoid knowledge half-lives in the internet age?