How do programmers maintain their technical advantages in the face of new languages and job-hopping?

Source: Internet
Author: User

How long is the half-life of programmer knowledge? It is often said that it is 5 years. In other words, half of the programming knowledge you know will be eliminated within 5 years. A similar view is that "programming is bad because what you know a few years ago is now useless."

At first glance, it seems reasonable. After all, there are always new programming languages and techniques to come out. However, I do not think the above view is correct. Programming knowledge has a longer practical period than some people realize.

Grammar is not difficult

Start learning a new programming language. For non-programmers, learning Python when you know Java is like learning French as you know English. Of course, but programming learning is not exactly the same, there will be new grammar to learn, but it is only superficially difficult to look at, the core concepts of all programming languages are the same.

To write a program in any language, you'll use the basics like type, data structure, and logic. If you already know about Boolean functions, integers, floating-point numbers, and strings, these types are similar usages in the new language. Of course, data structures like lists, sets, dictionaries, and tree directories are the same, and the logic you use will be arithmetic operations, if statements, loops, function calls, and so on.

In addition, key techniques such as which algorithm to use, how to decompose the problem, and the naming of variables and functions can be applied directly in the new language. These are all common programming knowledge in a variety of programming languages. Borrowing the term "no silver Bullet": "The grammar of the language is accidental knowledge, but how to program is the vital knowledge." ”

The same is true for libraries and tools. Even if you don't understand how the regular expressions in the new language should be used, you know what they are most likely to support. It is not difficult to find knowledge about how to use them, it is difficult to use them, and that is valuable knowledge. For tools like the IDE, you may not know the details, but you just know what they can do.

So learning a new language is not a great thing, but if you move, there may still be a lot of knowledge to learn. I divide the knowledge into the following 3 dimensions:

3 Dimensions of knowledge

Programming: This level of knowledge is programming languages, paradigms, techniques, and tools. As I said above, even though details like syntax may be completely different, many of the core concepts in various programming languages are the same.

Domain: This is what you know about programming that uses knowledge about the environment. For example, if you work in telecommunications, it's about how the various protocols work, how to handle text messages, how to charge and monitor, and so on. The longer you work in a department, the more you know about it, and the more you can contribute to your work.

Code base: This is to see the company. When you've been working in a company for a long time, you'll understand how you're programmed: You know what's done, what's tricky and can't be judged intuitively, why something has to be done in some way, and so on.

To be old and learn to be old

As a programmer, you are the most valuable when you have a sound knowledge of the above 3 dimensions. If you jump out of this time, it is inevitable that you will start to know nothing about the new codebase and you will have to start working hard and learning.

However, even after you move on, the programming and domain knowledge you learn is still useful. Mastering a few programming languages will give you more information about how things are done in different ways (even if the fundamentals are the same). It's also good to read a lot of software development books.

Finally, I think part of the reason that software development can be interesting and exciting is that it always learns something new. You'll never get bored, so stay in the learning state. Most of what you've learned will only make you a better programmer, even if new programming languages are invented every year.

Free to receive the lamp brother even original PHP video tutorial CD/"Detailed PHP" Essentials Edition, details of the website customer service:

Http://www.lampbrother.net

How do programmers maintain their technical advantages in the face of new languages and job-hopping?

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.