Do you really need to master a variety of programming languages?

Source: Internet
Author: User
Tags tiobe index

Briefly

I just ruined my career, yes, a lot of people say that to me.

Most of my colleagues learned that I was about to leave the company. But what puzzles them is that the company I'm currently working for is a Windows store, writing code with c#.net, and I want to work in a Linux environment with Java as the main programming language. They think that the change in programming language will make me lose many years of experience, and many people agree with their views.

There are many programming languages, hundreds. Some are common, for example: Java, C #, PHP, Ruby, Python, and JavaScript, while others are more marginalized or emerging, such as Awk, Go, Julia, Rust. In the face of so many choices, what kind of language should we focus on? So I started thinking about it-do you really need to master more than one programming language?

    • Briefly
    • 9 Reasons to master a variety of programming languages
    • 9 reasons to not want to master a variety of programming languages
    • What is a T-shape software developer
    • Which programming language should be mastered
    • Whether you need to master multiple languages depends on your goals.
    • More references

9 Reasons to master a variety of programming languages
    1. There are many ways to solve the same problem, mastering different programming languages means having more choices. After all, when you only have a hammer, everything looks like a nail.

    2. Be more competitive and have more job opportunities. Learning a second programming language sometimes doubles the number of job opportunities. However, it depends on the kind of language you study. But in any case, you will have more suitable opportunities to increase your job search ability.

    3. Show that you have the ability to learn a new language. Prospective employers will think that you are not a person who is inflexible or accustomed to conservative rules.

    4. It is interesting to study. Learning new things will keep your mind excited. This will help you grow and improve in new areas.

    5. Keep abreast of current technological trends. Knowing which industry is at the forefront of the trend, you can always stand on the tip of the tide, your skills will not be outdated.

    6. This will remind you why you should love your "master" language, or how to do things better. Sometimes it is only when you try a new language that you know how good the main language is. You will be more appreciative of your favorite language. At the same time, the new language may have some amazing features that will make you feel brief encounter deeply.

    7. Helps to become a better program for apes. Learning a new language helps improve common skills across all languages, such as designing and architecting algorithms, or working with different data structures.

    8. Choose the best tool for your job. Ruler is short inch-some languages are better at dealing with certain aspects of things. Mastering multiple languages, you can choose the best tools for your work

    9. Show that you have a strong learning ability. There is nothing more to prove your ability to learn than to master a second language.

9 reasons to not want to master a variety of programming languages
    1. It's easier to master a language. In general, you can master a thing by concentrating and focusing. If you are constantly switching between multiple languages, the probability of really mastering a language is reduced. Mastering a language also helps you focus.

    2. Most people only need a job, and most companies use only one language. Mastering multiple languages is not necessarily helpful after you have been hired. Sometimes it is enough to master the language of the project.

    3. There is always something worth learning, and sometimes it means learning a language in more depth.

    4. In most cases, experts can make higher salary demands because people are more willing to pay more for experts. John Sonmez in his video, "I'm not sure I want to be A specialist," about why generalists aren't always the best.

    5. Even mastering only one language can still be considered a great developer. Whether it is a great developer has nothing to do with how many languages you have mastered. The key is what you create. Because it involves only one language, you can spend more time creating it.

    6. You only need to learn the limited software development tools. Most languages have only a few tools. Switching languages often means switching tools. By mastering only one language, you will be able to master relevant tools more quickly. This will help improve productivity.

    7. Easier to locate your own market. Because only one language is mastered, basically you will only settle in this direction (if not for your own choice).

    8. You can solve most software problems in any language. No matter how many people tell you, most languages can be used to solve any problem. If solving the problem is your primary goal (which should be), mastering more languages does not necessarily help to achieve this goal.

    9. It is better to understand one thing in depth than to know 10 things on the surface.

This is not a black-and-white problem. As with any other problem, the best solution is to take the median: there's always a gray area. If you're a beginner, it's easier to learn a language and apply it to the top 10 + projects. But after that, it is recommended that you become a "T-shaped" software developer.

What is a "T-shaped" software developer?

The so-called "T-shaped" software developer has deep attainments in a particular area and is a language expert, and the vertical line in the T-letter represents this; In addition, they will continue to learn a wide range of other skills, which is represented by the horizontal lines in the T-letter.

So, what does this have to do with software development, especially in programming language learning? My advice is to be proficient in a programming language that will be your future livelihood and be used to solve most of the problems. You should do your best to master the language. Based on this, you can learn the second language or skill that works best for you. If you don't know what skills you should learn, you can read my previous post, finding, learn Next.

T-shaped software developers are versatile and proficient in a particular field.

As a T-shaped developer, you will have the flexibility to master multiple languages and the benefits of an expert in a field.

Which programming language should you master?

A common question is which language should be studied. Or, if you are a beginner, you should first learn which language. Usually, I will choose a language with a certain history as the primary language. This language should be used in a number of industries, with a wide range of user groups and a large number of development tools. The languages that meet these criteria are: Java, C #,. NET, Ruby, Python, and Swift.

The Tiobe software continuously tracks the prevalence of software languages based on these standards and is indexed. You can click Tiobe Index to view the complete list of programming languages. The index is updated monthly, and most of the top 20 languages are good choices. Will these languages still be popular in the next 10 years? I'm not sure. But it's likely to remain popular for at least the next four years, and I think it's enough for any project that's going to start.

Whether you need to master multiple languages depends on your goals.

Want to start a new amateur project or business? Maybe you just have to master a language.

Want to change the industry or harness technology trends? Perhaps you need to master more than one language.

Want to work in an enterprise environment? Maybe you just have to master a language.

Want to work in cutting-edge projects? Perhaps you need to master more than one language, because the trend is always changing.

To tell the truth, there is no absolute right or wrong answer about whether you need to master more languages, and the final decision depends on you.

How many languages have you mastered? What is your area of expertise? How do you extend it? Welcome to share.

More references
    • English Original: Do you need to Know more Than one Language?

Do you really need to master a variety of programming languages?

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.