Take a look at how Java programmers spend 4 years, and change jobs to 30W annual salary.

I have a friend, a programmer who is a half-time monk. He never fakes his resume. He has a low starting point. He only has a monthly salary of 16k*14 in Beijing for three years. There is no lofty ideal, just earn 20k-30k pre-tax salary. It doesn't need broad vision and ideas, it's that simple.

The technology he currently masters is Spring, Struts2, Hibernate, MyBatis, SpringMVC, Shiro, Activiti, Netty, Redis, MongoDB, Ehcache, CAS, jQuery, Linux basic commands, read some JDK source code, these technologies are very skilled Yes, as for the slightly more familiar C language Android application development: Python, PHP, Hadoop, Lucene, zookeeper, bootstrap, Spring boot, kafka, jersey, cxf and MySQL tuning, virtual machine tuning, etc. Although they can use it, they are not very skilled. This is his principle of life, not bragging, not bluffing.

So here are the important knowledge points, whether it is core knowledge points or interview questions, let everyone have a basic outline of the knowledge framework. At the same time, 283 pages of PDF documents are also compiled, which is also the core knowledge point of Java.
Friends in need can click: click this! Click this! , Code: csdn.
Insert picture description here

Originally wanted to reach 25k or more in one year, what would he need to learn this year? The current work is not very busy, the project concurrency is not high, and the amount of data is large.

So how to improve your ability and strive for higher income?

  • The focus of junior programmers is to write code and use frameworks
  • Intermediate programmers focus on writing code and frameworks
  • Senior programmers technical research, performance tuning
  • Architect solves business and technical problems

Job description of a 15w salary Java engineer recruited by a friend company:

  • Familiar with common frameworks such as spring and ibatis;
  • Have experience in operation and maintenance or shell development is preferred;
  • Experience in dubbo or rabbitmq is preferred;
  • Familiar with nginx configuration is preferred;
  • Rich experience in database design, proficient in sql language, and familiar with Mysql database system

A description of the job responsibilities of a senior Java engineer with a salary of 25-40w:

  • Understand and be familiar with financial business (consumer credit, payment transaction, financial management, etc.), participate in system design of related business, and write core system code
  • System defect repair and performance tuning;
  • Leading the research of technical problems to ensure high-performance processing and system stability

job requirements:

  1. More than three years of Java development experience, passion and pursuit of technology
  2. Familiar with the design and application of distributed systems, familiar with mechanisms such as distributed, caching, and messaging; able to reasonably apply common distributed technologies and solve problems
  3. Master multi-threaded and high-performance design and coding and performance tuning, and have high concurrent application development experience
  4. Master Linux operating system and large databases (Oracle, MySql) and have rich experience in sql optimization
  5. Have good abstract design ability and logic, good at independent analysis and problem solving
  6. Experience in third-party payment development is preferred, and experience in accounting and clearing system development is preferred
  7. Those with experience in system application architecture in the financial industry, and those familiar with industry business models and application architecture models are preferred

You can compare the job description that is close to your current income with the job description that you hope to achieve. Isn't the gap in between that is another pit you need to fill?

The important points for mid-level back-end programmers to increase salary are:

  • Project experience: payment, notification, IM, SMS and other public modules are quickly implemented.
  • Code quality: abstract encapsulation, log specification, release process, fast positioning.
  • Performance optimization: server memory, hard disk, data growth, bandwidth, the most performance-consuming part of the system, which services need to be called for a request, and how long it takes to access the DB each time.
  • Architecture capabilities: distributed, load balancing, separation of read and write.
  • Selection capabilities: JMSSOA/SCA/microservices, MongoDB/Redis/Memcache, Java/Go/NodeJS, etc.
  • Management ability: team technology sharing organization, project risk control, task and work assignment
  • Requirements review ability: give feedback suggestions quickly, how long can it be completed, where are the technical risks, and whether there are any unimportant requirements that take a long time.
  • Geek capabilities: Particularly in-depth research on a certain technical point, such as the configuration, design, and architecture of Nginx. ElasticSearch design, advantages.

Engineering

(After the team is more than 3 people, you need to consider teamwork and scientific management)

Source code analysis

(A good programmer, one line of code and one design can be seen, source code analysis will take you to taste the code and feel the architecture)

Distributed architecture

(To keep up with the technological rhythm and broaden the technological horizons, programmers must upgrade upwards and have their own technical toolbox and technical awareness.)

Performance optimization

(Pursue high efficiency and scientific tuning, don’t rely on luck)

Microservice architecture

The above five knowledge systems are the experience that I have summed up through years of working in the industry. These are just the basis and tools for solving problems. How can I propose solutions if I don’t understand these? This is a necessary condition to become an architect! When you really start learning, it is inevitable that you will not know where to start, resulting in low efficiency and affecting the confidence to continue learning.

So how do you learn quickly and become proficient?

Free Java architecture learning materials are provided here. The learning technology content includes: Spring, Dubbo, MyBatis, RPC, source code analysis, high concurrency, high performance, distributed, performance optimization, microservice advanced architecture development, etc.
Friends in need can click: click this! Click this! , Code: csdn.

There are also Java core knowledge points + a full set of architect learning materials and videos + first-line interview books + interview resume templates can be obtained + Alibaba Meituan Netease Tencent Xiaomi Iqiyi Kuaishou Bilibili interview questions + Spring source code collection + Java architecture Practical e-book + 2020 latest interview questions from major manufacturers.
Insert picture description here

Guess you like

Origin blog.csdn.net/weixin_48011329/article/details/108711159