As the saying goes, if you have 365 skills, you will be number one. This saying also applies to the IT industry, especially programmers. When you are confused and can’t find a way out and want to grow and improve quickly, there are two options for your reference: 1. Strive to become the best person in your working environment (the person with the best skills); 2. Change jobs. Go to another company to do a job that is higher than your ability. According to the different working environments, it is divided into large environment and small environment (more people and less people): 1. Small environment, look for the person with the best technology, and strive to keep getting closer to him. When you feel that you are better than him through hard work, I I believe you will never ask the question "Where is the way out?" again. 2. In the big environment, there are many people and many excellent people. It is quite difficult to surpass everyone in a short time. The probability of being able to communicate with every outstanding person is low, so you can choose to change jobs. Job-hopping, in my opinion, is the only way for programmers to succeed. Job-hopping requires skills and a certain amount of luck. If you want to change jobs, you must be decisive. When you feel unsatisfactory, when you feel there is no way out, when you feel the treatment is unsatisfactory, when you feel you are not growing fast enough. . . You can consider changing jobs. There are pros and cons to job-hopping. For companies, job-hopping is bad; for workers, job-hopping is perfect. It is not easy for an enterprise to train a programmer. It takes a lot of hard work to bring up a person, familiarize him with the business, and master the technology. If he leaves at this time, of course the enterprise will suffer the most. It also costs money to spend time training people and becoming familiar with the business. For programmers, the advantages of job-hopping almost outweigh the disadvantages. First of all, the benefits will definitely be reflected immediately. If it is not reflected, the job-hopping will be a failure, unless there are other ideas and goals. Don’t misunderstand my intention. Job-hopping is not a bad thing for technical staff: 1. General IT companies have their own commonly used models. After a project, you can basically master this model, and the related knowledge, architecture, etc. are roughly covered. You can also understand that you can change your environment and look for higher development at this time; 2. Job-hopping is equivalent to a promotion in a different direction, which can be reflected in your resume. Suppose you are a junior programmer. When you finish a project, you will understand the entire process of the project. At this time, you can fill in the role of an intermediate programmer in your resume and write down many things that an intermediate programmer has done in your resume (provided that you want Understand these), when changing jobs, your target is naturally an intermediate programmer, and the recruiting company will also find it suitable when they see your situation. Suppose you are an intermediate programmer. You need to understand the scope of work of a senior programmer in the project. You are not required to master it all, but you need to be able to express it. This is very important. For example, backend design patterns, software architecture, interface design, etc. Write these in your resume and position yourself as a senior programmer. Naturally, the position of senior programmer will find you. Suppose you are a senior programmer. What you need to know is not just programming, but the operation and management process of the entire project. Including project management, system architecture (software and hardware), system integration, etc., you do not necessarily need to know the whole process, but you need to know what it is, for example, what is a switch, what is a hardware load balancing device, what is a reverse proxy, what is Cache server, what is a WEB server, what is clustering, load balancing, distribution, database optimization, big data storage, high concurrent access, etc., are all you need to know. If you can express them during the interview, then you will succeed. . Similarly, write these in your resume and position yourself as an architect or project manager. After updating your resume, headhunters will come to you. Suppose you are a system architect. Since you have chosen the role of architect, you must be developing in a technical direction. Technical director, R&D director or even CTO is your goal. Do you want to know what the technical director and CTO are doing? Look at what Ding Lei is doing, and you have to imitate it. If you want to become a character, you must first physically imitate the character. Over time, you will become such a person. The technical director needs to be responsible for the operation of the entire company's technical department, including personnel management, performance appraisal, coordination between language groups, coordination between projects, and coordination between departments. In addition, you also need to consider all How to develop better operating projects, how to optimize the website, how to take the product to a higher level, how to plan the company's technical development, how to quickly write and implement various plans, how to deal with the boss, etc., you need it all mastered. Say you are a project manager. In China, there are two types of project managers. One is the TEAM LEADER role, which requires strong technical skills; the other is a business-oriented role responsible for bidding and process control, which requires understanding of technology. When they have developed to this level, I think they don’t need me to tell them where the way out is. Such people generally have their own plans, but there are exceptions to everything. If there is no plan or the development is confused, the TEAM LEADER role can focus on the project. Strengthen management, human resources, system architecture and other aspects, and keep up with the current development situation and learn new knowledge; those who prefer business roles can consider working towards general manager, CIO, CEO, etc. At this level, you need more than just Knowledge is more of a concept and personal charm. After roughly talking about the above, I think people at each level can roughly understand what they should do. You must have plans and goals to do things efficiently, and manage and allocate your time effectively. Only in this way can you become an outstanding talent.
Don't always let others tell you what to do, but constantly push yourself to complete the tasks in hand better, embodying the belief that "what I do is better than what others do" is reflected in everything. Then I think success is far away from you. Not far away.