<> preface

Now there are more and more programmers , How should you plan your career path ? Where is the way out for programmers ?

A map shows the way out for the apes :

<> proposal

The way out for programmers , There are the following suggestions :

20-27 year : Technology accumulation stage

Hypothetical undergraduate 22 Graduated at the age of , So before work 5 Year is the foundation stage for you . Here 5 Within a year , You have to accumulate enough code , Polish your technical strength , Become a leader in a technology segment .

28-35 year : The stage of forming thinking methodology and knowledge system .

When you accumulate enough code , For example, more than 10 After 10000 lines of code , You should form your own thinking methodology and your own independent learning skills , Any new technology can quickly see the essence of technology in your eyes , Quickly absorb and become part of your knowledge system .

At this stage , You will find that there are very few new technologies and knowledge you don't know at all , New technology is just a good toy for you to play with in a few days , Learning is becoming easier and easier , Have more and more knowledge reserves .

You are gradually no longer satisfied with the exploration of pure technology , But think about more questions : How to transform technology into productivity ; What technology can play the greatest value on what occasions ; How should the technical team be built ; In a company , How can I maximize my technical ability ?

At this stage , Accumulating skills is a piece of cake for you , What you need to hone more is your ability to think , Form their own thinking methods and knowledge system , This will be your weapon to help you throughout your life .

35 After years old : Know yourself , The stage of realizing yourself .

Needless to say ,35 Your front line after the age of coding Ability must decline , You're definitely not as good as writing code 25 Year old programmer fast , efficient . But it doesn't matter , Because programming is the least important thing in your arsenal , Your experience , Your vision , Your architectural skills , Your management skills , Your ability to analyze and solve problems is far beyond the field of technology .

While young , Technology quickly accumulated !


* thorough Java generic paradigm ( The role and definition of generics + Wildcards and nesting + Generic upper and lower boundary +RxJava Usage analysis of generics in +Json Analytic generics and Bean Strong rotation principle and Practice )
* Notes in simple terms ( Custom annotation + Use of annotations +Retrofit Annotation principle project practice + Custom annotation implementation ButternKnife Project architecture practice )
* Concurrent programming ( Thread sharing and collaboration + Deep understanding of threads +CAS+ Blocking queue + Analysis on the bottom implementation of thread pool +AQS analysis +AsyncTask Principle analysis )
* Data transmission and serialization (Serializable principle +Parcelable Interface principle analysis +Json)
* Java Virtual machine principle ( Garbage collector mechanism + Memory allocation strategy +Dalik virtual machine )
* Reflection and class mechanism ( Basic probability and of reflection Class+ClassLoader Class loader + Actual combat of hot repair loader project )
* Dynamic agent ( Basic principles of dynamic agent +Rxjava/Retrofit Application practice )
* Efficient IO(Java IO system +File File operation +IO operation Dex File encryption +APK Reinforcement project practice )


* senior UI Promotion
* Framework Kernel parsing
* Android Component kernel
* Data persistence

<> Design ideas :

* Design idea and code quality optimization (
* Program performance optimization
* Development efficiency optimization

<> framework :

* Thermal repair design
* Interpretation of plug-in framework
* Component framework design
* Picture loading frame
* Network access framework
* RXJava Design of responsive programming framework
* IOC framework design
* Android Architecture component Jetpack

<> last

The key road of life is to go by yourself , The matter of seeking knowledge , There are no terminal shortcuts . Only think deeply , Constantly summarize and reflect , Build your own knowledge system step by step , Is the quickest way .

however Android Advanced architecture learning is a long and arduous road , You can't rely on a moment of passion , It's not that you can learn it well after a few days and nights , We must form the habit of studying hard at ordinary times . therefore : The most important thing is persistence !

When many people first came into contact with this industry or encountered a bottleneck period , There will always be some problems , For example, after learning for a period of time, I feel no sense of direction , I don't know where to start to learn , In this regard, I aim at Android programmer , I've been sorting it out for a while Android Information on the most important and popular learning directions , There are also self-taught programming routes in different directions , Interview question set / Facial meridian , And a series of technical articles, etc .

<> If necessary, you can scan the QR code below for self reference

©2019-2020 Toolsou All rights reserved,
Android Using wechat in H5 Payment result refresh during payment shock !!C++ Can make a sound ! Basic operation of single linked list C Language explanation Java Implement an epidemic number management system 2021 year 11 World programming language ranking linux upper mysql Invalid command _linux lower mysql The command is useless Java project : Campus dormitory management system (java+jsp+javaweb+mysql+ajax) Wechat applet development project directory linux ubuntu Which version ,Ubuntu Which version is the best ?python Code painting cherry blossoms - How to use Python Draw a beautiful cherry blossom