Project address: github.com/Skykai521/A…

In 2021, I have been working on Android development for eight years. With the deepening of my work, I find more and more that for most engineers, apart from improving their technical ability, they also need to learn how to communicate, how to think and how to coordinate resources in the workplace. These abilities, in turn, determine the upper limit of an engineer’s development. I wrote this booklet for this purpose, where I break down the progression of Android development into three stages: beginner, Intermediate, and advanced. This is just to make it easier for the reader to find the chapter to start reading. You can go through the whole table of contents before you start reading, and skip that stage if you already know what it’s going to be. If the entire handbook is devoid of interesting topics, of course, there is no need to read any further.

If you have any ideas or questions, you can communicate with me by making an issue, and welcome to follow my official account: SkyKai. Looking forward to your communication!

The first part, junior engineer advancement

The primary task of junior engineers is to improve their working ability and strive to advance to middle and senior engineers. It’s a long, hard climb, one step at a time, to become a senior engineer. The first step is to become an engineer who can excellently complete the tasks assigned by the superior, can investigate problems independently, has a positive attitude and is willing to meet challenges. I define a good junior engineer as “fast and good”, where “fast” refers to the speed at which requirements can be completed, problems can be answered quickly, problems can be solved quickly, etc. “Good” means good code, good work attitude, good job completion, etc. I’m going to talk about how to advance as a junior engineer from the cognitive, knowledge and career chapters.

Cognitive article

  • 1.1 What should I do if I encounter problems?
  • 1.2 Good engineers can’t live without GitHub
  • 1.3 Decompilation is not an advanced technique
  • 1.4 Learn to Debug
  • 1.5 Take responsibility for your own code

Knowledge article

  • 2.1 the Activity and the Fragment
  • 2.2 Handler Message Mechanism
  • 2.3 Understand the View system
  • 2.4 Customize the View
  • 2.5 Animation Mechanism
  • 2.6 Threads and Processes

Working paper

  • 3.1 Matters needing attention in workplace
  • 3.2 Complete process of requirements development
  • 3.3 When to jump ship?
  • 3.4 Do you want to work hard to enter the big factory?
  • 3.5 How to Prepare for an interview?
  • 3.6 How to Choose an Offer?

The second part, intermediate engineer advancement

Junior engineers only need to finish tasks quickly and well, while intermediate engineers need to be fast and well, but also able to work independently. Being independent means being able to handle a project independently, or a business independently. When encountering problems, I can solve them independently and become the most familiar person in charge of my business. Mid-level engineers start by focusing on code specifications, learning more low-level knowledge, and generally mentoring junior engineers. At the same time, they should know more workplace rules and make long-term career plans.

Cognitive article

  • 4.1 How to Introduce Open Source Projects
  • 4.2 How can I Quickly Rectify Faults
  • 4.3 How to write beautiful code
  • 4.4 How to Write Comments properly
  • 4.5 What should I do if there are bugs in the code?
  • 4.6 How to reduce bugs?
  • 4.7 Business development and Architecture development

Knowledge article

  • 5.1 Inter-process Communication
  • 5.2 Hot repair technology
  • 5.3 Common Design Modes
  • 5.4 Common Architecture Modes
  • 5.5 How can I Optimize application Startup Performance
  • 5.6 Classic Open Source Project analysis

Working paper

  • 6.1 Workplace communication skills
  • 6.2 Do the essentials of a requirement well
  • 6.3 Plan for the long term
  • 6.4 Should I reject 996?

The third part, advanced senior engineer

As a senior engineer, you have acquired some irreplaceable programming and business skills. You are usually responsible for the pre-research of new technologies, the promotion of important requirements and the selection of technologies for new projects. Senior engineers make bosses and colleagues think they have to be you. You spend more time solving things that no one else can solve, trying new solutions in the industry, and helping other engineers grow. At this point, programming languages don’t matter anymore. It’s all about the business. There are also more things to think about outside of code.

Cognitive article

  • 7.1 Characteristics of senior Engineers
  • 7.2 Participate in open source projects
  • 7.3 How to Judge the Technology Development Trend

Knowledge article

  • 8.1 Understanding cross-platform development
  • 8.2 Is Flutter the future of Cross-platform?
  • 8.3 What is the Optimal cross-platform solution?
  • 8.4 Architecture analysis of large Projects
  • 8.5 Building a Mobile Development Platform

Working paper

  • 9.1 How to Become the Core of a Project
  • Should I save my salary, finance or buy a house?
  • 9.3 How to Cope with turning 35

Project address: github.com/Skykai521/A…