PHP is a development language with a lot of users, but the development focus in each field is different. In terms of the Internet, on the basis of stability, it pays more attention to performance, high concurrency, and high-load processing.
PHP career development plans generally have three routes, one is skills specialization development route. The other two are routes to transition to products or operations when skills development encounters "bottlenecks".
The following is an article from PHP Chinese website (www.php.cn) sharing the prodigal son. The original text is: Share 8 years of development experience, briefly talk about personal development experience, and clarify your own development direction
Text:
In China, many people believe that the IT industry is about youth. If you are over 30 years old, it will be difficult to have a chance to develop! In fact, the reality is not like this. I have been engaged in .NET and JAVA development for 8 years. I would like to discuss it with you based on my own personal experience.
Clear the purpose of entering the industry
Many people work in the IT industry for the "high income", because as long as you learn a little HTML, DIV+CSS, it is not difficult to become a page developer. Moreover, it is easier to find a job as a page developer, and the income is higher than that of ordinary jobs, so it has become the choice of many college graduates. If you just enter the industry with such a mentality, then you should really be careful. Because the competition in the IT industry is already fierce, especially in the aspect of page design, there are many people who can develop. Therefore, in order to save costs, most companies will only recruit such personnel when needed, and some will be recruited when there are no orders. Small companies may also find various excuses or use salary cuts to fire such employees. In recruitment information, you often see a message such as "Recruitment page designer, conditions: under 30 years old...graduates are welcome to apply", because this type of employees do not have high technical requirements, so looking for Application industry can save costs. Therefore, I feel that the sentence "The IT industry thrives on youth" is only for the above-mentioned people. If you lack "enterprising spirit" and only hold the attitude of "high income, easy to find a job" When you enter the industry, "the IT industry is about youth" will come true. If you have never gotten started with PHP, I suggest you read this article carefully:How to get started with learning PHP? The clearest PHP learning roadmap in history!
Choose the right tool
JAVA, C#, PHP, C++, VB... There are more than 10 popular development languages, which one has the most development potential? In fact, a development language is just a tool. "Instead of spreading the attack, it is better to attack with all your strength." No matter which development language it is, as long as you study it with all your strength, when you have a certain degree of familiarity, you have to learn another one. The language is also a breeze. Development languages are mainly divided into three categories: 1. Network development Now the network has become a bridge for world communication. It seems that development languages such as Javascript, PHP, and Ruby are mostly used for network development 2. Enterprise software developmentJAVA, C#, VB and other development languages have achieved the goal of object-oriented development, and are more often used in the development of enterprise systems3. System softwareC language, C++, Object-C, etc. Software is mostly used in system software development and embedded development. Of course, this classification is not absolute. JAVA, C#, and VB are often used in the development of dynamic websites. Integrated development is used in many development projects. Multiple development languages are used in the same project, each showing its strengths and developing simultaneously. But when you are just getting started, it is recommended that you first choose a suitable development tool for yourself, "concentrate on learning, and attack with all your strength." Clear the direction of developmentWhen you already have a certain understanding of a certain development language and start to feel like a "walking zombie" and become a development tool, then you should clarify your development direction.Usually in the company, you can see that most of the developers working on the UI layer are in their 20s. They are full of energy and have no family burden. When ASP.NET MVC, Silverlight, etc. first appeared two years ago, they could Buy a few books when you go home in the evening or just read online. After three or five weeks of research, you will already have a certain understanding of the technologies you need to use. Most people over 30 have already started a family. Their only hope of going to work at 9:00 every day is to arrive at 6:00 as soon as possible so that they can go home for dinner. After dinner, I just want to play with my children and look at their homework, but I lack the desire to learn new technologies. So many programmers who are approaching 30 years old have a sense of compulsion (including myself when I was 30 years old). What should I do in a few years? At this time, you should clarify your goals and strive to move in your own development direction. To sum up, you can choose a path that suits you from the following items. (How is the "money scene" of PHP? Let's see what the experts say?)
PHP Programmer Career Planning
1. Transition from technology to business
Abroad, many developed countries attach great importance to talents. The income difference between a senior programmer and a Project Manager generally does not exceed 15%. (Note: Regarding the income gap, please refer to this information "Salary Survey of US IT Employees in 2011" reported by Bole Online. Some even exceed that of project managers.) However, China is the most populous country in the world and has many domestic talents. Therefore, the abuse of talents can often be seen. New faces are often seen in the development department of a small company, but PMs do not change often. Because the bosses know nothing about technology, in their opinion, as long as they win the PM's heart, they can handle the technical aspects. As for the replacement of people in the technical department, they don't need to bother to take care of it at all. Therefore, transitioning from a technician to a PM is a choice for moving forward, but developers also need to know that becoming a PM is not only about using technology, but more importantly, understanding the management aspect. A PM's main job is to organize a team, control costs, manage business, control project progress, communicate with customers, coordinate work, and make regular work reports, etc. Therefore, to become a successful PM, you must pay more attention to organizational capabilities. PM must be able to increase the enthusiasm of the team, give full play to the team's strengths, and maximize profits for the company under the premise of limited development resources. After becoming a PM, you usually do not need to have direct contact with technical development, but focus on management of business development. However, PMs also need to have a certain understanding of technology (I once wrote an article on the necessity of PMs understanding of technology, and got a lot of information. Supported but also caused a lot of controversy). Here I still want to emphasize my point of view: To be a successful PM, the most important thing is management ability, but you should also have enough understanding of technology, because this is the bridge to communicate with team members. Only in this way can you communicate with the entire team members. There is a tight integration that allows team members to feel the significance of their own existence, thereby mobilizing the enthusiasm of the team rather than ignoring the existence of technical personnel. Technology is not a sufficient condition to become a successful PM, but it is a necessary condition!
2. Development from programmer to technical management
In fact, the responsibilities of a Team Leader are similar to those of a Project Manager, but the Team Leader focuses more on technical development. Usually a large project will have one or two development teams led by the Team Leader , responsible for developing the core part, while other parts are assigned to different development groups or assigned to outsourcing companies. I often see a few words on the Internet that aptly describe the difference between PM and TL: "Technical people like to be led; but they don't like to be managed, and don't like to be driven or directed like cattle. Managers force people to obey their orders. The leader will lead them to work together. Management is objective and has no personal emotions. It assumes that the people being managed have no thoughts and feelings and are told what to do and how to do it. Leadership is to lead and guide, and it inspires. People achieve their goals. Leadership is deeply personal, it’s not something you can command, and it’s not something you can measure or test.”
Both PM and TL must have an in-depth understanding of business and technology, but PM focuses more on business management, profitability, risk, etc., while TL focuses on the cost of the project and the difficulty of development. Software architecture and other technical issues. In the eyes of some people, technology and management are like fish and bear's paw, you cannot have both, but from my perspective, the two are inseparable and inseparable. As long as you improve your understanding of technology and management in a timely manner and continue to develop to a deeper level, it is only a matter of time before you are promoted from a programmer to a technical manager. For example, an ordinary .NET programmer may be limited to ASP.NET page development at first, but once he has a desire to develop, he will naturally develop UIs such as ASP.NET MVC, Silverlight, WinForm, and WPF. If you are interested in the techniques, it doesn't take much time to learn. He may realize that these UI development are just some tools. In fact, there is no difference in development principles. Then he will learn about the deeper communication modes and get to know commonly used communication methods such as TCP/IP, Web Service, WCF, and Remoting. At this time, he may already feel that he has a better understanding of development technology. Then move on to higher levels such as workflow, design patterns, object-oriented design, domain-driven design, service-oriented development, etc., and finally become a technology leader. The above is just a metaphor, but it should be noted that during the learning period, you must pay attention to communication with colleagues. Many developers like to work alone and always want to complete the development projects alone without interference from the outside world. But you must understand that even if you have great abilities, you cannot handle a large-scale project by yourself. Therefore, team cooperation and communication among colleagues are necessary, which is also a necessary condition for a successful TL.
3. Unilateral development towards technology
Cutting-edge talents who can successfully develop technology are the jobs I most yearn for, but they don’t have the ability to get into this position. Many people who are engaged in development believe that business always smells like money. The boss never cares whether the development complies with development principles and whether it has passed necessary tests. They will only brag endlessly in front of customers that the project will be successful when it is due. Delivery, as long as there are no major problems, the project will be considered a success. In fact, we also need to understand: the ultimate goal of developing a project is to make money, and it is also necessary to limit project costs and control efficiency during the development process, so managers are required to manage the project. But developers also want to avoid this "hustle and bustle of money" and devote themselves fully to the world of technology. Therefore, people who have a strong interest in technology often study a certain technology in depth and become technical elites. But let me make a disheartening statement here: China is already the second largest economy in the world, but its GDP mainly comes from the third-party processing industry. China can be said to be rich in talents, but it lags behind developed countries in high-tech industries. In recent years, we have indeed seen a qualitative leap in high-tech in our country, but there is still a long way to go compared to developed countries in Europe and the United States. Therefore, it is undeniable that it is more difficult to become a cutting-edge technology talent in China than abroad. From my perspective, if you want to become a cutting-edge developer, you must have an in-depth understanding of underlying technologies such as C, C++, assembly language, embedded development, Windows API, and Linux API. You must know that the reason why JAVA, .NET, etc. are called high-level development languages does not mean that they are more advanced than C, C++, and assembly language, but that they encapsulate the functions of C, C++, etc. and are more suitable for use. For enterprise software development, making development simple. But if you want to develop some low-level software or large-scale systems, you must use development languages such as C, C++, and assembly. This is a condition for successful cutting-edge talents.
Determine future goals
People grow from experience. The ancients said: Standing at thirty does not describe a person's social status and financial resources, but describes a person's future goals and life. intention. To become a successful person, you should set long-term development goals for yourself as early as possible, and the same should be true for you as a developer. As people have different personalities and orientations, the paths they choose for themselves are also different:
1. Set up your own business and start a business bravely
At almost 30 years old, many people think that if they want to really make money, they should set up their own business and establish a foundation for their own business. In first-tier cities like Beijing, Shanghai, and Guangzhou, if you want to buy a house, the first-hand building price will basically be around 20,000 to 40,000 yuan per square meter. And if you work as a project manager in an ordinary IT company, your basic income will generally be around 15,000 yuan. ~30,000 (unless you work in a large multinational company, that's another matter). To buy a house of about 100 square meters, even if you don't eat or drink, you still need almost 10 years of annual salary, so choosing to start your own business is A future goal for many IT developers. If you want to achieve this goal, you should focus more on business. One thing that is undeniable is that in Chinese society, “relationships” are often talked about. Even though the 30 years of reform and opening up have enabled China’s economy to develop vigorously, the unhealthy tendencies left over thousands of years cannot be completely eradicated. . Therefore, if you want to start a business, it is recommended that you build good relationships with customers and maintain a mutually beneficial interaction model with partners, which will be beneficial to the development of your career in the future.
2. Retreat bravely and retreat to the second line
This is also the choice of many people. Many people feel too much pressure after having a family. A person's life is not just about career. They want to spend more time taking care of their loved ones and caring for their children. Therefore, many people will choose jobs such as system analysis, system maintenance, university teachers, and professional college lecturers. The income is stable and there is often less pressure than front-line developers.
3. Keep working hard and go further
Whether you are a Project Manager or a Team Leader, if you want to continue to advance to the next level, it will still be polarizing. From a PM to the management of a company, the events you face will change a lot. The general manager of a company no longer has to manage the costs of one or two projects, but the operations of the entire department and the business processes of the entire company, so the tasks he has to shoulder will be heavier. I once had a boss, Dr. Peng. He was the top leader of the company, with an annual salary of more than three million, and he had also appeared in newspapers and magazines. He usually only shows up lightly at certain meetings and speaks a few words. He does not need to directly execute the company's operations and business management. This does not mean that a manager is very relaxed, because they have to face more social relationships and connections with the company's cooperative enterprises. This is very different from the work of a PM, so if you want to be promoted from a PM to a management level, it will take more effort and sweat.
If you want to be promoted from a Team Leader to a Technical Director, the direction of your work will also change. As mentioned before: a TL may pay more attention to the technical level, the interaction and cooperation with the team, and the improvement of development. A technical director does not need to directly participate in the development of a certain project, but pays attention to the efficiency and results of development, how to rationally use limited development resources, and control development risks and possible effects.
Experiences of development
After more than 8 years, I have gone through many twists and turns from a programmer to a project manager, but because everyone's circumstances are different, the path they take is also different. , as the saying goes, all roads lead to Rome, there is more than one road to success. I don’t want to misunderstand you, but I just want to tell you my development direction. If you are a developer, Programmer->Architect->Team Leader (Project Manager)->Technical Director is a good path, and this is also the path I will choose. In our country, if you want to further improve yourself, whether you want to focus on technology or business, you cannot do without the word management. In some large enterprises, a team is often equipped with a PM and an architect. Although the two people are responsible for different tasks, you will see that the income of an architect is often not as good as that of a PM. The PM is often the core of the team. Leaders are key figures. Because whether the company can make money, PM plays an important role. There is no absolute difference between PM and TL. In some small and medium-sized enterprises, a development team only has 3 to 5 people. A TL often has multiple tasks such as business processing, cost control, architecture design, and development management. Therefore, Team Leader and Project Manager will be placed at the same level below. The boss of a company often does not know who the architects and programmers of the team are, but will only ask the PM about the progress of the project. Therefore, only by being promoted to this level can he Have the opportunity to further improve your management capabilities and give yourself room for advancement. If you want to become a technical director, the requirement is no longer just the management of a single project, but should focus more on the reference of emerging technologies, the rational use of development resources, the agility of development projects, etc. In this regard, I am also in the process of temptation and dare not say anything.
This article’s address: Avoid detours, an old programmer talks about PHP career development planning http://www.php.cn/toutiao-346094.html Please indicate when reprinting!