In order to make 500,000 a year, you must be a high level programmer yourself!

A programmer who makes $500,000 a year has at least the following characteristics:

Long working years, rich experience

Their common characteristics are: more than 10 years of work experience, as a screw in a large company, but also as a technical leader in a start-up company, with one or two periods of entrepreneurial experience that is not successful.

Such programmers can get an annual salary of more than 500,000 regardless of whether they go to BAT or start-up companies.

Although the above mentioned skill level is not the only factor in determining salary, but if the skill level is good enough, the high salary offer is also a sure thing!

Besides, you can’t be a technical bull by yourself

Programmers, nicknamed “programmers ape” or “code farmers” in China, are a group of characters with distinctive label characteristics. Many articles describe programmers with a portrait: black-rimmed glasses, a plaid shirt, a black backpack, and headphones. This is the stereotype of the IT guy, or programmer. Students who are interested in Java technology and architecture technology pay attention to my headline number, and send the keyword “Java” in the background private message to get free architect learning materials

The knowledge system has been sorted out (source code, notes, PPT, learning video), welcome to receive free. Interview videos are also available for free.

Why do some of the same programmers get paid so much, what is their tech stack, or what technical capabilities do they have?

A, Spring, MyBits source code

  • IOC container design principles and advanced features
  • AOP design principles
  • With the BeanFactory FactoryBean
  • Spring transaction mechanism
  • Handwritten ORM framework based on SpringJDBC
  • There are nine components of SpringMVC
  • Handwriting implementation of the SpringMVC framework
  • Comparative analysis of SpringMVC and Struts2
  • Spring5 new features
  • MyBatis associated query, nested query
  • Cache usage scenarios and selection policies
  • SqlSession and Mapper under Spring integration
  • The affairs of MyBatis
  • Analysis of the real implementation of MyBatis dynamic proxy
  • Handwriting Mini version of MyBatis

Two, distributed

1. Principle of distributed architecture

  • How to scale applications from standalone to distributed
  • CDN speeds up static file access
  • System monitoring, disaster recovery, and dynamic storage capacity expansion
  • Architecture design and business driver division
  • CAP, Base theory and its application

2. Distributed architecture strategy

  • Distributed architecture network communication principle analysis
  • Serialization and deserialization in communication protocols
  • RPC technology based on frame Webservice/RMI/Hessian
  • This section describes the application of Zookeeper in the Disconf configuration center
  • Realize dynamic online and offline awareness of distributed server based on Zookeeper
  • In-depth analysis of Zookeeper Zab protocol and election mechanism source code interpretation
  • Dubbo management center and monitoring platform installation and deployment
  • Distributed system architecture based on Dubbo
  • Dubbo fault tolerance mechanism and high scalability analysis

2. Distributed middleware

  • Distributed message communication ActiveMQ/Kafka/RabbitMQ
  • Redis master-slave replication principle and diskless replication analysis
  • Redis AOF and RDB persistence strategy principle
  • MongoDB enterprise cluster solution
  • MongoDB data fragmentation, transfer and recovery strategy
  • Deploy application layer Nginx and Nginx+ Lua practices based on OpenResty
  • Nginx reverse proxy server and load balancing service configuration combat
  • High performance IM chat based on Netty
  • Implement Dubbo multi – protocol communication support based on Netty
  • Netty no-lock serial design and high concurrency processing mechanism

3. Distributed architecture integration experience

  • Distributed global ID generation scheme
  • Session cross-domain sharing and enterprise-class single sign-on solution
  • Distributed transaction solution in action
  • High concurrency under service degradation, traffic limiting actual combat
  • Based on distributed architecture distributed lock solution practice
  • Distributed scheduling is implemented in distributed architecture

3. Micro-service architecture

1, Spring Cloud

  • Eureka Registry
  • The Ribbon integrates REST to implement load balancing
  • Fegion declarative service invocation
  • Hystrix service circuit breaker downgrade mode
  • Zuul implements the microservices gateway
  • Config Distributed unified configuration center
  • Sleuth Invokes link tracing
  • BUS Message BUS
  • Hystrix based interface degradation combat
  • Integrate Spring Cloud to achieve a unified integration solution

2, Spring the Boot

  • Spring Boot Hot deployment actual combat
  • Spring Boot core components Starter, Actuator, AutoConfiguration, Cli
  • Spring Boot integrates Mybatis to realize multi-data source routing combat
  • Spring Boot integrates Dubbo combat
  • Spring Boot integrates Redis cache combat
  • Spring Boot integrates Swagger2 to build API management and testing architecture
  • Spring Boot implements dynamic parsing of multi-environment configurations

Docker virtualization

  • Docker image, warehouse, container
  • Docker File builds LNMP environment to deploy personal blog WordPress
  • Docker Compose builds LNMP environment to deploy personal blog WordPress
  • Docker network composition, routing interconnection, Openvswitch
  • Build Docker cluster based on Swarn
  • Kubernetes

Fourth, performance optimization

1. JVM tuning

  • Each ThroughputCMS Usage Scenario
  • JVM memory model JMM
  • JVM runtime data area
  • Each ThroughputCMS Usage Scenario
  • To understand GC logs, look at the logs
  • MAT analyzes dump files

2. TomCat tuning

  • The operating mechanism and framework of Tomcat
  • Tomcat thread model
  • Knowledge and tuning of Tomcat system parameters
  • Tomcat Benchmark

3, MySql tuning

  • MySQL supports B+ Tree
  • SQL Execution plan
  • MySQL > select * from database;
  • SQL statement optimization

Development tools to improve team collaboration efficiency

1, Maven

  • Generate executable JARS and understand Scope to generate the most accurate JARS
  • Locate and resolve class conflicts and package dependencies on NoClassDefFoundError
  • Maven Archetype is generated
  • Maven popular plugins to practice, write your own plugins

2, Jenkins

  • Build Jenkins automatic deployment environment
  • Jenkins integrates Maven and Git to realize automatic deployment
  • Testpreproduction multi-environment release
  • Jenkins multi-environment configuration, authority management and plug-in use

3, Sonar

  • Use Sonar for code quality management
  • FindBugs/PMD code inspection tool
  • SonarQube code quality management platform installation and use
  • Continuous code testing using Jenkins integration with Sonar
  • Use of Idea with Sonar collection

4, Git

  • Git and how it works
  • Git uses the Best practise command
  • How do Git conflicts arise and how can they be resolved
  • Git Flow specification team Git usage guidelines
  • Case sharing

Want to get an annual salary of 50W about the knowledge system has been listed, in fact, so much knowledge is not only so simple, but also familiar with the underlying realization principle of these knowledge, more to know, know why.

Is there any free information on how to learn these techniques?

Students who are interested in Java technology and architecture technology pay attention to my headline number, and send the keyword “Java” in the background private message to get free architect learning materials

The knowledge system has been sorted out (source code, notes, PPT, learning video), welcome to receive free. Interview videos are also available for free. Follow me, you can get no architectural experience!!