1. What is a programmer
The above picture truly reflects the normal life of some programmers, so let's first talk about what is: programmers, so-called programmers are workers who are engaged in program development and program maintenance. After all, it is an ordinary worker, a "brick mover", and a programmer is also called a code farmer.
2. About career planning
Very programmers are writing code every day, every day is very busy, and when the interviewer asked him: "What is your career plan?" The programmer replied: "No." So if you were asked to choose a role, what would you choose? Such as technical director. The programmer replied: "CEO". I. . . . . .
We should make a career plan for ourselves, and have a direction for future work. When the direction is right, you will avoid many detours. Just like when someone asked you when you were young, what is your dream when you grow up, Xiao Ming, who is next to my house, replied: "I want to be a mathematician." This is a good dream! Although later, Xiao Ming only became an accountant in the supermarket-a cashier.
3. The growth process of programmers
Program Xiaobai
The first stage: I just graduated to the company, and I do some simple and repetitive things every day. This is what programmers call "brick movers". Brick movers are actually nothing. Growth starts here. When you look back many years later, you will find that the bricks you moved are actually useful to you.
(Your salary level is about 3K~5K)
Junior programmer
The second stage: Finally, Xiaobai is no longer himself, from now on you can say that you are a programmer, but you can still do some simple things. When writing code, you still rely on copy and paste to complete the code. Usually a method writes hundreds of lines of code, and you can't wait for a method to achieve all the functions. They don't consider the quality of the program, the code is messy, and there is no comment, they only require the program to run. So, you need to keep working hard and keep learning.
(Your salary is about 6K~8K)
Intermediate programmer
At this stage, you have mastered a good technology, you can do some projects on your own, you no longer need to copy and paste other people’s code, start to pay attention to the quality of the code, the code specification, the place where the comments are, and the comments Okay, start doing a lot of practical projects.
(Your salary level is about 10K~20K)
Senior programmer
At this stage, your technology is already very good, and many people start to take the design route, such as system design and so on. The company will have many technical problems that need to be solved by you. At this time, it belongs to the level of the great god.
(Your salary level is about 20K~30K)
Turning point
Going further up, you are facing a turning point, or "transfer station". You need to consider which direction you are going. One route is to take the management route and the other is to take the technical route. If you take the management route, you need to have better management capabilities; while taking the technical route, you need to have excellent skills and great skills.
4. Programmers need continuous learning
The life of a sequencer is a process of continuous learning and continuous improvement, which contains sadness and achievement. Some people say that programmers eat "youth meal", and only young people can do it. When they are old, they can't do it, and they can't do it. The editor thinks that old programmers can't do young programmers. It depends on which aspect. Don't forget, old programmers have good work experience and project experience. We only need to remember one sentence: "Live to grow old and learn to grow old."
In the final analysis, you still need to be hard on your own. Only by continuous exploration and continuous learning can these problems be best solved.
Here are the "seven skills" that Java programmers must master when they grow up, and are necessary to enter an Internet company:
One: Architect's aesthetics
Learn the Java technology system, design patterns, popular frameworks and components, common design patterns, necessary for coding, Spring5, the latest framework essential for applications, MyBatis, essential components for playing databases...
Two: DevOps (Architect Toolbox)
Workers who want to do well must first sharpen their tools and choose good tools to improve development efficiency and team collaboration efficiency. It is essential: Maven, project management, Jenkins, continuous integration, Sonar, code quality management, Git, version management , Agile development...
Three: the necessary technology stack for architects (distributed architecture)
High concurrency, high availability, massive data, no knowledge of distributed architecture is definitely impossible to play, you must understand the principles of distributed architecture, distributed architecture strategies, distributed middleware, distributed architecture combat, etc. content
Four: Architecture technology (microservice architecture)
Businesses are becoming more and more complex, services are layered, and microservice architecture is the only way to upgrade the architecture. For example: microservice framework, Spring Cloud, Docker and virtualization, microservice architecture
Five: performance optimization
Any ppt architect who breaks out of the details is a rogue, can plan upwards, and can solve first-line performance problems downwards, such as: performance index system, JVM tuning, Web tuning, DB tuning, etc...
Six: essential for architecture (underlying knowledge)
From architecture design to application layer tuning, and then a deep understanding of the underlying principles, a solid basic Java skills can turn yourself into a sweeping monk: memory model, concurrency mode, thread model, lock details, etc...
Seven: E-commerce project actual combat
Large-scale e-commerce distributed system application practice...
As we all know, the architect is the technical authority in the team. Those who can master the above technologies must have the ability to be unique in technology, and gradually move from a Coder to a CTO or an architect and form an influence.
How to learn the above topics?
In order for everyone to smoothly advance to middle and senior level and architects, I specially prepared a set of high-quality Java architect tutorials for everyone, suitable for Java developers in 1-5 years . I hope you will increase your salary after learning.
Not much to say directly on the dry goods:
Open source framework analysis topic
Reading and analyzing source code is the most basic code ability of programmers, and it is also the root of code farmers. Learning the classic design ideas and common design patterns used in classic source code can help you understand how Daniel writes code, so as to absorb Niu's code skills. In Alibaba interviews, the underlying principles of frameworks such as MyBatis and Spring are often asked
High-performance architecture topics
Alibaba has many large teams. There are many small teams in this large team. After the small teams, they do different businesses. If you want to become a universal player among the first-line Internet companies, there are many in the most mainstream distributed architecture. Knowledge must be understood and learned. And during the Alibaba interview process, the interviewer will ask questions about actual application scenarios: such as microservices, user volume, concurrency, business complexity, and scalability, etc. I won't go into details here.
Microservice topic
Microservices is one of the hottest topics in Internet architecture technology, and it is also the direction that Bendi is currently studying and researching. During the Alibaba interview process, interviewers rarely ask questions about microservices. But as a developer, a programmer with technical dreams Microservice architecture is the mainstream technology that must be understood now
(1) springboot, springcould, Docker virtualization technology
(2) Dubbo application and source code interpretation, RPC principle
Engineering topics
Actual combat of large-scale e-commerce projects
Follow the private message (666) to obtain
Share some architecture learning materials collected over the years.