Home > headlines > PHP programmer career planning: How to quickly grow into an indispensable technical talent?

PHP programmer career planning: How to quickly grow into an indispensable technical talent?

PHPz
Release: 2018-07-11 11:38:56
Original
8711 people have browsed it

Foreword: Is learning PHP outdated? How can PHP developers grow quickly? How to carry out career planning? In particular, artificial intelligence, machine learning, blockchain technology, etc., which have been very popular in recent years, will somewhat lead some people to blindly follow the trend and become confused. The following is an article brought by PHP expert Wei Yongqiang based on his many years of PHP work. The experience brings thoughts about PHP and career planning. I hope it can give some inspiration to the netizens of PHP Chinese website!

About the author: Wei Yongqiang has been committed to the development and architecture of enterprise applications with millions of visits, and participated in the development of Zhubajie financial products Bajie financial system, Zhubajie BOSS support system development, and AVIC Responsible for the architecture and development of the real-time event system during the real estate press conference in Chongqing, and responsible for the architecture and development of the Yongchuan Wanda WeChat marketing platform. Project architecture technical consultant of Chongqing Yirongde E-Commerce Co., Ltd. I like to play with various new technologies and explore.

Thank you for having this opportunity to chat with everyone about developers, and share your experience and understanding with the netizens of php Chinese network.

In fact, the programmer crisis is a real problem. Some people also say that it is due to the decline of the Internet industry or that the Internet industry has passed the mainstream, etc. What I am mainly talking about here is the crisis of PHP programmers, and most of this crisis comes from the rich variety of languages ​​and the company's choice of languages.

Especially artificial intelligence, machine learning, etc., which have been very popular in recent years, and python, which has become popular. This will somewhat encourage some people to blindly follow the trend. In fact, development engineers need to have a clear goal for the expansion and transformation of their own knowledge system. Following the trend is a more dangerous thing, and transformation is different from throwing away everything you own. I want to discuss how to choose through the birth of programmers and the growth of programmers.

PHP programmer career planning: How to quickly grow into an indispensable technical talent?

I will explain it from the following aspects:

PHP programmer’s Current situation;

What causes the stratification of programmers;

The requirements that senior engineers need to meet;

How can programmers grow quickly;

PHP program The transformation that members desire;

dry information, the transformation route you need;

Summary.

The current situation of PHP programmers

At this stage, most PHP programmers are relatively confused. Junior PHPers find this industry difficult, and most intermediate PHPers find it difficult. I want to improve myself through learning, but I often fall into a situation of chasing this technology today and chasing that technology tomorrow. Most senior PHPers have their own knowledge system, part of which is in the architecture.

It is very important for programmers to understand their own industry, which is career planning. This is a difficult question, because in order to plan your career, you must first fully understand the industry. This has a lot to do with why I chose to be a programmer in the first place.

Generally speaking, if it is difficult for you to survive the entry period of your development career, it may mean that you are not suitable for this industry; if you cannot pass the transformation period, you may not achieve much.

Everyone’s entry into development career is different. Some people are interested in this industry and have a goal in mind. Although they do not have a clear career plan, they will at least have an idol in this field. There are also some people who enter this industry after three or four months of training.

I have previously analyzed data from a training institution (YMSD) in Chongqing Internet College. Among the students who entered the industry after training, only 20% continued to develop in this position after 2 years. In other words, 80% of students spend money and time just to be runners. This also shows from the side that if we enter this industry, in addition to expecting to make a lot of money, we must also have expectations for future development.

Generally speaking, developers who enter the industry through training will have a very difficult time at work because they do not have systematic goals for technical routes, and what they receive in offline training institutions is blind imitation, which is very lacking in innovation. ability. And as far as I know, the curriculum systems of most offline training institutions have been out of touch with the corporate scene for at least 5 years. Therefore, these programmers should work harder to change their current situation and clarify their situation.

What leads to programmer stratification

Programmer stratification is a very obvious problem, which is directly reflected in the same type of programmers in the company The job positions vary greatly or the salaries and benefits are very large.

What causes this stratification?

The first type of reason is the working years of the program developer.

In fact, working experience is not a very important factor. Indeed, in previous interviews, we met very good developers who had only one year of working experience. But when you use job search software, you will find that almost all job descriptions have an indicator - years of work experience.

Why is there such a thing? Because it is very time-consuming and energy-consuming for company recruiters to communicate with many job applicants one by one, working experience is the first threshold.

Generally, 1-3 years of work experience is one level, and the general salary range in Beijing is between 10-20k;

3-5 years is another level, and the salary range in Beijing is 15,000 -25k;

There are multiple levels for 5 years and above.

Of course, those with 1-3 years of work experience may also receive the same salary as those with 3-5 years of work experience. This mainly depends on strength. Our Chat will also mainly discuss this part of the factors.

In the previous section, I have said that programmers are roughly divided into two categories: those who came from a major and those who became a monk halfway. I am not saying that those who came from a major will definitely be better than those who have become a monk halfway. These are completely different things. It's just that being from a major means that he has a wider range of knowledge, so others should also focus on knowledge and basic skills.

In this Chat, I did not point the question to a certain language, because as a development engineer, paying too much attention to language often becomes a stumbling block for myself.

People who pursue language

often encounter this problem: chatting with development friends, the last time we met, they said they were learning front-end technology, A month later, I met again and said that I was learning Python and that Python was still easy to use. When we met a month later, he said that he was studying the Go language. Speaking of Go language would definitely become a trend in the future. I call this type of people ‘language seekers’.

Remember not to follow a language blindly, because after you master any high-level language, it is very fast to get started with grammar, and the semantics of current languages ​​​​are very friendly, we learn and contact All very easy. In fact, what we need to understand most is the characteristics of language.

For example, many people want to learn machine learning and learn Python, etc. Then what we need to think about is why they choose Python language, as well as R language, Java, JavaScript, C, C, Scala, etc. What are its advantages?

Think about it this way, when the company encounters other scenarios that are more complex than the current one, you will know what kind of language and technology stack should be used to solve this characteristic scenario. Your understanding of development rises to another level.

People who entertain themselves

There are people who feel a sense of accomplishment by doing the same thing over and over again. Although this is not a big mistake, it will cause us to stagnate.

I often hear people say this: Our company has few things to do, and once we finish them, we have nothing to do, which is very boring. In fact, this means that he gave up the opportunity to become a better programmer. Learning is the ladder of progress. Even if your company is not currently using this technology, you should use your free time to learn it.

In fact, the main reason why programmers are stratified is their learning habits. why would you say so? Because the most direct cause of stratification is knowledge, and the formation of knowledge requires continuous learning, and the efficiency of learning is also critical. I have heard from many people before that they complain that the technical director is not as technical as them. This is also a manifestation of the differences between programmers at two levels. Because they look at problems from different perspectives, they fail to understand the relationship between solving problems and providing solutions.

How programmers can grow quickly

We mainly discuss and provide suggestions.

The first word we want to see is growth.

I have coached a programmer before, and he has been doing development for a year. I asked him to use User-Agent to determine whether the user accessed WeChat, but he asked me what User-Agent was. Don’t think it’s ridiculous. In fact, there are many people who don’t know. Why? Because they only focus on their CURD capabilities. I'm not saying CURD is bad, it's just that CURD is just basic like understanding User-Agent.

It is very important for developers to understand the knowledge of computer networks. All graduates of computer-related majors have studied computer networks. It doesn't matter if you are not a computer major. You should understand some of the most basic http request messages and the structure of the corresponding messages. These are the basics.

When I was mechanizing in a training institution before, one of the interview questions I asked students to recite was the difference between MySQL's InnoDb and MyISAM engines. Whenever I saw students answering one supporting transactions and the other not supporting transactions, I would look at When the leader is so happy that he wants to smile, I want to laugh.

Supporting transactions is a difference. So I don’t need to support transactions. What’s the problem if I use the InnoDb engine? So I think talking about knowledge points outside the scene is often the most direct reason why programmers are classified as the bottom sequence.

The above is just an example, it just shows that learning also needs to be divided into scenarios. The same is true for learning a language. We have to think about why we should choose a new language instead of the current language. For example, why not use PHP for machine learning? Maybe when talking about this issue, many people want to laugh, "PHP is the best language in the world" (because I love it, let me shame myself).

But let’s think about this issue seriously again, please think about it. Many people who study machine learning are also pushed by the trend. Others are learning Python to do it, so I also want to learn Python. Of course, life is short, and your choice to learn Python is not wrong. There are many C, C, and Java programmers chasing Python. Reference article: If you are new to web development, which one should you learn, php, python or ruby?

Quoting a sentence that others often say, "A few years ago, a group of people complained that Java was going to die, but is Java dead?" Stop looking at language and worry about it. What you should learn is Choose a language.

Of course, on the recruitment website, the types of languages ​​that programmers need to master are also the learning directions for some programmers. Enterprises consider many factors when choosing a language, including the language used in previous projects, migration costs, personnel training costs, language hardware costs, personnel communication costs, and most importantly, whether it can solve the current problem. Problems encountered and how long it takes to resolve them.

So rapid growth requires us to independently explore technical details in different scenarios, and we need to have strong learning ability.

The transformation that PHP programmers desire

My colleague’s point of view is this: There are two directions for the transformation and development of PHP programmers. One is For deeper back-end development, you can become familiar with Go or Java language and find a company related to these languages. For example, when doing PHP development, few people understand issues such as asynchronous, coroutine, and multi-threading. The other is to turn to the front end. The front end is also a very competitive area, and the front end needs to learn no less than the back end.

Some people may say that I want to be a full-stack engineer. My colleagues and I agree that we should not be a full-stack engineer who knows everything but doesn’t understand everything deeply.

Of course, I want to say something to those programmers who are very insecure. PHP is not dead.

Currently Sina, Shenma Search, Baidu and other companies all use PHP and have set up PHP positions, not to mention small companies. In small and medium-sized, short-term and fast businesses, PHP is still the first choice. Because the initial characteristic of PHP is the rapid development of network applications. It’s not impossible for you to pursue other languages, but don’t forget to build a solid foundation slowly. Don't let your knowledge system become a puffy fat man.

In addition, maybe every programmer wants to quickly invest in artificial intelligence and machine learning. If you still want to be a coder in this field, then you can learn from various documentation tutorials on the Internet. There are also many APIs provided to the outside world, such as TensorFlow. If you want to develop in this field, you still have to understand those classic algorithms first.

Good stuff, the transformation route you need

According to the product level at which programmers develop their work, programmers are divided into two categories, namely front-end engineers and backend engineers. There are now more classifications for development engineers. I will share with you from two categories: front-end and back-end.

In fact, it is a good thing that PHP is in a strange position. Some people say that PHP is a front-end language, and some people say that PHP is a back-end language. This boundary is not so obvious. The language that solves the work of the presentation layer is generally said to be a front-end language. It mainly depends on what level of problems PHP is used to deal with.

Before you consider transitioning, PHP should already equip you with this knowledge.

The first is the understanding of the MVC model. This is not difficult, but you must know how to expand from this starting point. For example, MVVM, MVP pattern, etc., you need to be able to understand the difference between them, but the theory is often a relatively simple thing, so remember to understand it in conjunction with the project area.

Another knowledge that needs to be mastered is http request and response. In fact, this knowledge is something we have been using but many people don’t understand it. For example, we often use the developer mode of the browser to click in Network For a certain request, you can view the request header.

As shown below:

PHP programmer career planning: How to quickly grow into an indispensable technical talent?Then there is the idea of ​​object-oriented. Everyone has mixed opinions about object-oriented, especially more and more people are interested in functional programming. respected. In fact, both have their own advantages. What we need is to truly understand the advantages and disadvantages brought by object-oriented. Hopefully, PHP will help you understand the various types of variables and how to use them.

There are four scalar types in PHP, namely boolean, integer, float, and string; three composite types, namely array, object, and callable; two special types, respectively: resource, NULL, of course. Some pseudo-types are also provided.

If you master the above content, you may have an easier time on the road to transformation.

First let’s talk about the transformation of the front end.

If you want to transform to the front-end, js must be learned. But to what extent? How far to learn js is also the most confusing question for everyone. Many people may keep chewing on the syntax of js. But for something like js, which has very complicated knowledge points, if you keep getting stuck in the syntax, you will lose more than you gain.

In fact, the most important thing is front-end thinking. After mastering some basic type operations of js, including the processing of strings, arrays, objects, and json, you can look at frameworks such as vue.js or react. It is recommended that you start with vuejs, which is relatively simple and easy to get started. Of course, you still need to understand the basic usage of html and css. It is very important to look at other people's projects during the learning process. You can go to github to search for some vue.js projects to see how others implement them.

Another transformation direction is to move to server-side development.

You need to choose a more commonly used server-side development language. Whether it's java or go, there are many other options. Starting from the beginning, if you have basic programmers, you must not start from a thick grammar foundation, because this process is very time-consuming. After understanding the most basic grammar, you can start to choose a framework to learn, find problems during learning, and then go back to learn grammar.

There are so many choices here, I won’t explain them in detail, I just give you a suggestion.

Many programmers are more optimistic about the go language. Indeed, the go language is simpler than other languages, reliable in engineering, and has natural development standards. Goroutine brings benefits to server development. In China, Qiniu Cloud has been using the go language for a long time, and now many large companies have begun to use the go language to solve some problems.

Due to the advantages of artificial intelligence and python, many people take the python route, but if you take the python route, please be prepared to go in the direction of data mining, processing and calculation. The choice of language is a matter of opinion. The simplest basis is to look at the company's needs.

There is a lot of knowledge that you need to know when going deep into server-side development, such as performance optimization. Many people mention that redis is used as a cache. This is the problem with the business scenario I mentioned earlier. It means that the business scenario you understand is too single, resulting in insufficient knowledge of knowledge.

Of course there is also the issue of communication mechanism. I believe many people are very unfamiliar with these technologies MQ, Cron, RMI, and RPC. I am not listing these to ask you to immediately buy a few books and study them. Remember, before you want to learn a technology, you must first create a scenario.

What programmers need most, and what every programmer lacks most, is communication. Everyone needs to communicate more and exchange opinions with other programmers, which is very conducive to their own growth.

Summary

The Internet industry is not an industry that you can sit back and relax after entering. You need to continue to learn and improve yourself.

Prospective programmers who want to enter this industry should not be discouraged, you have to find the right method and approach. Many offline training institutions are uneven, so please choose carefully. If you can't learn to find information on the Internet, there's something wrong. Because online resources are so developed now, it is relatively easy to find information.

PHP programmers do not need to have a great sense of crisis in the language itself.

The key to rapid growth is to have a correct understanding of yourself and not blindly follow the trend. Pay attention to learning based on scenarios, be able to think about and solve problems encountered in scenarios, and solve or optimize bottlenecks. This process is also a good learning process.

Finally, thanks again to PHP master Wei Yongqiang for sharing!

[Related recommendations]

1. Avoid detours, an old programmer talks about PHP career development planning

##2.

Is 34 years old a hurdle for programmers? Let’s talk about the future for older programmers

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template