The following article comes from pointers , Author yuan WuFan
As a programmer , I've been in the development position for a few years , Especially when it comes to 30 year , This is the first year , We will come to an important fork in life . It's management and technology , One side of the professional line , One side is the management line .
At the head of the Internet , Management and technology are treated equally , So there are two channels for promotion: management and technology
Now that you have a choice , There's going to be a tangle , I don't know it's a professional route , Or choose the management route of the technical team .
This choice is the first big choice in a programmer's life , And the first obstacle , It's not that the obstacle is whether to choose management or not , And more is the hesitation to do management , Doubt whether we can manage well , After management , Is the technology abandoned .
This state of indecision 、 It's been rocking for a long time , In the end, the technology and management are not well done , It's not worth it .
To solve this problem , It is necessary to analyze the professional development of programmers. There are several routes , What kind of ability do we need to have , So that ” Food in hand , Not panic in the heart “
In terms of Technology , There are two directions ： Architects and technologists
The architect's focus is stay “ wide ” On , He's mainly responsible for the whole technology and Architecture , In business , It needs a deep understanding , Rich experience , You can even do it “ You eat more salt than you walk ”. On the technical , Be able to cover extensively , The more technical knowledge you have , The deeper the internal power becomes .
I think the architect needs three more necessary abilities , First, it needs to be very Executive , Can quickly give a reasonable plan , Push technology to the ground . Second, it requires a strong sense of judgment , Be able to find complex problems in the system , It's like a martial arts master , At a glance, you can see the flaws of the other party . Finally, we need to be very innovative , Be able to create new solutions , Solve the existing technical problems .
Technical expert, his focus Is in “ specially ” On , It's easy to understand , It's about being able to go deep into a certain field , Be familiar with the principle behind it . There will be experts in different fields , for example ：Java Experts 、 Front end experts 、 Image algorithm expert 、Linux Kernel experts and so on . Experts versus architects , More focused , It's not going to take too much into account .
So from advanced development to technical expertise , It is mainly to expand the technical breadth in the field , Enhance the depth of technology in the field . Because the field is not particularly narrow , It's all about technology .
For example ：Linux Kernel experts , To be Linux Kernel experts , Need to master ,Linux CPU Dispatch 、 memory management 、 Process management 、 Storage management 、 file system 、 Device management and driver 、 Network communication 、 system call 、 System initialization and other technical aspects .
In every aspect of Technology , It also contains a lot of technical points , These technologies are knowledge blind areas , So we need to improve the depth of Technology .
Management is also divided into two directions , Technical management and career management . seeing the name of a thing one thinks of its function , Technology management is more inclined to technology , And career management completely abandons Technology , Pure business direction .
This direction is the most natural choice for programmers . Most technology managers , When it moved from a programmer to a management position , At the request of leaders or companies , Passively pushed to the position of technical manager , It's not that I had a strong will at first 、 Take the initiative to choose the management post . And then embarked on Manman to fight the strange advanced route , From technical manager to technical director , Lead a team of dozens of people to cross the border , And then to become the vice president of technology in the technology business unit and business unit , amount to CTO 了 .
Technical management requires a deeper understanding of the business , In technology, according to the development trend of Technology , Do technical planning . Be able to have great insight into products , Product planning . In the team plus the ability to plan team building 、 Organizational structure and so on , So this is the requirement of comprehensive quality .
Career managers tend to be more concerned with the team in the overall product business , Not limited to the technical team . For example, the president of a business unit , Or the president of a business unit . We have often heard that the leader of XX business unit has been airborne , This leader is a professional manager , He's more mobile , Capabilities are more versatile . This direction is not to be found , Some people can't touch . This is the floor of someone else's house on the ceiling , Do you think it's difficult ？
03 Start a business
In the direction of entrepreneurship , Usually as a technical partner , If you want your own startup to succeed , It has to be an all-around entrepreneurial team , In technology 、 product 、 Marketing and other aspects can not have obvious shortcomings .
Let me give you a real example ： The direct leader of my last company , Resigning as technical director , As a technical partner, I created a team , Mainly provide logistics solutions . Talk to him a few months ago , The company has made a profit last year 1000 More than ten thousand , By operating on equity , Has become the largest shareholder , In charge of the whole company's direction .
I'm sorry to say that , At the beginning of creation , At that time, I tried my best to join the gang , I refused , The reason is that the wages are too low , This reason seems ridiculous now
This direction is also more common to programmers , It's also a more natural direction . Project manager is a kind of organizational integration ability . Different from technology management , This is the way to go , There is little need for any external dependency .
The most important thing to pay attention to is the progress 、 quality 、 Human resources 、 cost 、 risk .
How to improve project management ability ?
First of all, we need to have a general understanding of the knowledge framework of project management , Avoid getting lost in the huge knowledge system , such as ：
Scope Management ： Why is the project always endless ？ Scope management should be defined
Risk management ： Problems caused by project risks 、 Cause of formation and preventive measures
Communication management ： Plan the project communication well
Quality management ： Enhance project quality
time management ： Project schedule control
Cost management ： Finished product control
Second, you need to master the project plan 、 Project change 、 Project progress report 、 And so on .
Finally, we need to master cross departmental collaboration , Strengthen multidimensional communication .
The product manager
Turn to product manager , Need to achieve the transformation from technical thinking to product thinking .
Technical thinking starts with function , And the point of view of product thinking is to start with business .
As a programmer , When it comes to a project , What we are most concerned about is what functions this project has , Then consider how each function is implemented ;
And as a product manager , When it comes to a project , We value the business scenario of this project , Solve the user's problems
How to realize functions from the perspective of technical thinking , And the product thinking angle is why we want this business .
Focus on a requirement from the perspective of technical thinking , Always focus on how a requirement is implemented first , namely HOW;
From the perspective of product thinking, we should pay attention to a demand , We should ask more WHY, Why need this need , Think more about why , To find the nature of the need or problem .
The technical thinking perspective is to act like an expert , The product thinking angle is to think like Xiaobai .
As a programmer , Most of our daily contact is with technicians , These people generally have strong logical thinking , Good at using and handling all kinds of software , So always put this image on the customer .
But when you think as a product person , The more you think about it “ The small white ” The better , Suppose they don't understand computers , Not very good at playing with mobile phones , People who can't even type .
above 4 One direction is the programmer's main career path , As a person , If you can always do the work you love and the role you like , It should be at its best .
No matter which road you take , Some abilities are common , such as ： Technology planning 、 Team building 、 communicate 、 Time management, etc . In one's own choice , May not choose the direction of Management , But it's hard to avoid dealing with managers in the future . Management as a general quality , I hope you can have more skills than you need .
All in all , As a programmer , Technology and management , It's like human legs , All career paths are inseparable from , After all, one leg can't go far .
If you are right about Programming interest , Want to learn more about . Here to share the material package and learning resources , There are also free tutorials
（ contain C Language 、C++、Windows、Qt、Linux Related knowledge ）~ Whether it's Xiaobai or an advanced person , You can grow up here . Click here to enter the shortcut