It is not so easy to find a job as a senior development engineer in a big factory. You need to be able to cache, database, database and table, big data, message queue and RPC…

So many skill points, what does each skill point need to learn? What depth do you learn? There are no specific answers, learning often makes people confused, difficult to adhere to

In my opinion, no matter what you do, you must first stand on a higher perspective and be clear about the purpose and value of doing it. Only by being clear about the purpose and value of doing things, can you in turn guide the specific details of doing things and how to better achieve the goal and create value. Otherwise, if you start to do something directly without knowing the purpose and value of doing it, you will have no direction and no sense of achievement

As for job hunting, only when we create value for the company, will the company be willing to give us a job opportunity, so what value can a technical person create in the company?

In terms of Internet giants, the significance of the existence of technology is to make products. However, it is no longer an era in which one product can dominate the world, but also requires a complete online and offline ecology and continuous operation. Therefore, the second point is that technology needs to enable the iteration and innovation of products

What are the specific requirements of the company for technology? I think there are nothing more than the following three points

  1. Quickly support business requirements, which are divided into several typical scenarios
  • High concurrency
  • Complex business logic
  • Rapid iteration
  1. Ensure system stability
  2. Authors proposed effect

Therefore, when learning technology, we can start from these higher levels to guide our learning direction

In order to build support high concurrency scenarios in the system, we require the system to study the construction scheme of high concurrent systems, which will include some general ideas, such as using a cache, depots table, using the message queue, and so on, so we’re going to learn the use of these technologies, and how to use them to build high concurrent systems

In order to achieve complex business logic and rapid iteration, we need to learn some design patterns, learn DDD ideas, understand the business deeply, build efficient development delivery models, etc

To ensure system stability, the system needs to learn solutions to ensure system stability, such as load balancing, resource isolation, traffic limiting degradation, pressure measurement, and fault drilling

In order to reduce costs and improve efficiency, we need to develop some mid-stage or common tools to reduce r&d costs and quickly support business requirements

The above provides some examples, which may not be very comprehensive, but the specific idea is certain, that is, when learning technology, we should learn from a higher Angle, know why to learn, so that the learning process will have guiding significance, the learning effect is better