01. Confused questions
Yesterday, reader Xiao He asked me this question on wechat:
Brother, I just started working for a year, and I don’t feel proficient in anything. I studied Java in college, but Python has been so popular this year that several students who switched to Python made more money than I did. Should I do the same?
There are also some similar questions, such as ahjian: “I am a freshman now, majoring in C++. I heard that it is not easy to find a job after graduation. Do you have any good suggestions?”
Which language you choose can mean significant differences in future earnings (earnings) for students just starting out in the workforce or at school.
And the technology is changing so fast. You couldn’t have predicted it! If you make the wrong choice, the price will be heavy.
Do not know you have this kind of feeling, a few years ago popular Android, as if all of a sudden cold. The reason behind this is also very simple: the popularization of wechat public accounts and mini programs has led to a significant decrease in the demand for APPS.
Just this time last year, I bought several books on Android and studied them. I also shared some study notes on CSDN, which were well read. But recently, my friend said that when he tweeted articles about Android on his official account, the amount of reading was really terrible.
02. Technical Direction
At a large level, technology directions can be divided into two categories: front-end and back-end. Computer illiterates often mistake the back end for the “back end” (website management background) – IN my years of outsourcing, I’ve had to patiently explain this to clients.
Now, I’m going to explain (just kidding). Let’s talk about some trends on the front end and back end for your reference.
1) the front end
Front-end engineers have been in high demand for the past two years, especially with the addition of the word “big” in front of the front end, which is now very popular “big front end”, just like “big data”. (This is an opportunity to see how different big Brother is from big Brother.)
I think the most timeless front-end technology is HTML + CSS + JavaScript. Why do you say that? Because they are the foundation of front-end development, and the standards are updated every year. If you look at it in developer mode, you’ll see that all websites have these same things in their source code.
Second on the list is Node.js, which is becoming more and more important as a fundamental technology for front-end development. Last month, when I was using Jekyll + GitHub Pages to configure my personal website, it required me to install the Node.js environment first (see here).
# 3 is vue.js/Angular/react.js, which was trending in 2018 and didn’t show any decline in 2019. In particular, the author of Vue.js, Yu Xi, has become a god (idol) in the minds of front-end programmers because of his good looks.
The Stencil comes in at number four, with the following official description:
Stencil is a toolchain for building reusable, scalable Design Systems. Generate small, blazing fast, and 100% standards based Web Components that run in every browser.
I’m going to do a crappy translation for you. Stencil is a chain of tools for building reusable, extensible design systems. You can produce small, fast, 100% standards-based Web components that, crucially, run in all browsers.
This is amazing, regardless of browser compatibility, and can work with any major framework (Vue. Js/Angular/react.js).
At number five would be PWA (Progressive Web Apps), Progressive Web applications that are fast, reliable, and make users feel like native Apps. Google’s concept should not be bad.
Well, the front end says these five (ranking for reference only).
2) the back end
Speaking of the back end, one might joke, “Hasn’t PHP always been the mainstream?” Although this is a joke, but, I do not dare to refute.
From the readership, there are quite a few PHP programmers in Luoyang, although the official PHP team has been disbanded. Either way, the hard fact is that the PHP language has brought jobs to many, many people over the past 20 years.
Before we go any further, let me proudly declare one thing: I am a Java programmer. There is no need for me to brag about how awesome Java is. I have relied on it for many years and will continue to do so in the future.
(You don’t have to brag, but you have to say something.)
Java is a Class – based, highly object-oriented high-level programming language. Java was designed to be “write code once, use it anywhere”. Java can accomplish tasks of any size, so it is the first choice for many companies when working on business-level projects.
When Jame Gosling designed Java in 1995, it seemed that Java was born to be the alpha dog. In fact, for many, many years.
The Python?
Python is a high-level programming language with a concise syntax. A Dutchman named Guido van Rossum designed it in 1991. Rossum designed Python to make code easier to read and for programmers to write less code.
A Python fan once wrote a hymn called The Zen of Python, so let’s take a look.
Beauty is better than ugliness, clarity is better than obscurity, simplicity is better than complexity, complexity is better than clutter, flatness is better than nesting, spacing is better than compactness, readability is important
Isn’t it good? I think this fan is brilliant.
Of course, Python is popular not because of Python’s elegance, but because of artificial intelligence and data analysis. When it comes to machine learning, deep learning, and neural networks, there’s no escaping Python. So you can imagine.
For space reasons, we will stop here with back-end technology.
03. How to choose
Having said that, the key question comes: what technology direction to choose?
Front-end programmers already know what’s going on, so follow the trend I’m talking about. What about the back-end programmers? Take a look at the list, which comes from reliable TIOBE.
After reading this list, I believe you should have a good idea, right?
For example, there is no need to choose between Java and Python. These two languages now dominate the top and the top. As far as I know, there is no significant difference in salary between Java engineers and Python engineers. If you’re not going to move into ARTIFICIAL intelligence and data analytics, just hold on to Java.
In terms of future development prospects, Java is not showing any decline. If you have an Android phone, almost all your apps are written in Java. The back ends of large websites, such as Taobao and JINGdong, are also mainly developed in Java. Large enterprise applications, such as CRM systems, ERP systems are also mostly developed in Java. The development language of Hadoop, the mainstream framework of big data, is also Java.
However, in terms of percentage growth, Python had the largest increase, which shows that Python has a lot of potential. If you have enough time, you can learn on your own. I’m ready to study anyway.
As for Ah Jian, there is no need to worry too much. Three years after graduation, he will not be unable to find a job. After all, the roots of C++ are still there. Besides, if you know C++ well, you can learn other languages.
04. Final advice
Choosing a technology direction, choosing a language, is essentially an investment.
In an age of ever-changing technology, no one can say for sure what will and will not be popular in the next few years. Again, the technology is iterating too fast!
So how do you maximize the return on your investment?
To be honest, I’m not sure.
A: Choosing A young language (technical direction) means the greater the risk, because it is like A meteor, brilliant but fleeting. You’ve heard the saying, “The greater the risk, the greater the reward.”
B: Choosing a language that the market has approved means more stability. After all, the longer you live, the more ability you need.
C: Settle your impetuous heart and let time prove everything. Focus on the language of your choice and look up as you dig deeper.
Okay, that’s my take. What about yours?
PS: welcome to pay attention to “Silent King ii” public account, background reply keyword “2048”, you can get free “1W+ advanced required reading data package for programmers”!!