A friend just graduated , Entered a certain degree as an outsourcing , At that time, I was anxious almost every day , Everyone's technical ability is not too bad , Why are you outsourcing ?

He resigned later , I went to one 20
Startups around people , As technical director . Because the team is not big , After all, he has the experience of landing a large factory , I'm very young and have ideas , Yes 2,3 The individual basically put his own ideas to the ground . At some time, I was satisfied with the state at that time , After all, the pressure is not great , The salary is good, too .

There was a party with college students , And a few of the first-line Internet factory students chat about technology , I found myself in a start-up company these years , It's totally a state of living on one's money , It's been pure output , The business development of start-up companies is slow , Both management and technology are very limited , It's not even as good as the technological growth of outsourcing .

Then he began to deliberately let himself input something . Because learning ability is good , Through the introduction of a former colleague , I entered the company now , And growing up to be an architect , Pay is also crushing peers .

Looking back on this 10 year , In a word :

Out of the comfort zone , Keep learning deliberately , To be an architect .

Today, technology is developing very fast , Where should you start your own deliberate practice next ? Here you are 5 Suggestions :

1, Read the framework source code

The framework itself is a tool , But as a senior engineer and architect, this is what you have to learn and master . Let you read the source code is not really let you read it , It's about understanding the underlying principles , Develop the ability of frame thinking and self defining framework .

spring Source notes

2, Master distributed architecture design

Facing the high concurrency of Internet projects , High availability , High performance features , You must master the architecture ability of distributed system . How to meet the challenge of high concurrent traffic in the face of data system architecture of 100 million level , This is as an architect , Issues to be considered .

《 Principle of distributed service architecture , Design and Practice 》

《 Scalable service architecture : Framework and Middleware 》

3, Deep understanding of algorithms and underlying principles of computers

Part of the project performance bottleneck is achieved through the underlying tuning , Some advanced kernel and engine development often need some sophisticated algorithms and understanding of the underlying principles ,
Only by mastering these , In order to optimize the project from more angles .

also , Interview with some big factories , So is it 100% All met . Even if you don't use algorithms and underlying principles in your current work , But how do you want to enter in the future BAT Such a big factory , We should learn as soon as possible .


4, Master database optimization and selection

The hardest part of architecture is storage , How to use it MySQL Support massive data , And maintain high responsiveness , How to keep the database running stably , They are all skills that must be mastered . Whether it's mainstream now
MySQL,MongoDB, Big data Hadoop In the ecosystem HBase wait .

Mastering these data technologies will enable you to select the technical solutions and interview , All can add to the icing on the cake , And be able to cope with the business needs of extending to big data .

High performance MySQL

MySQL Performance optimized 21 Best practices


5, Performance tuning and Solutions

Yes Tomcat,Nginx
And other mainstream application servers can be used in depth , Performance tuning can support business concurrency . Some solutions are given for some classic scenario problems , as SSO, instant messaging , Order system , Log system and so on , And be able to know how to choose in the face of many options .

Nginx Complete development guide

Tomcat Architecture analysis

There are friends who want to obtain the above corresponding learning documents , Look at the picture below :