A 37-year-old farmer came out and said: I submitted 500 resumes, but only received 3 interview invitations.

Recently, I saw a story in my veins, oh no, a very surprising story.

is this real? Why hasn't such a situation occurred?

A survey found that the main reasons why many programmers no longer work as programmers after the age of 35 are:

First: The job pressure of software development positions is relatively high.
Second: The programmer's knowledge structure is updated quickly.
Third: Many programmers generally go to management positions after the age of 35.

Learn to turn around gracefully

Next, I would like to share with you my transformation path for so many years. Just listen to it:

1. Transformation technology management

From the second half of 2007 to the beginning of 2009, I slowly turned to the role of technology management and started to manage a research and development department. The route I take is "skills and excellence are managed."

To put it simply, it means you are a technical expert, easily solve various problems, start to lead people, and then lead the team to manage the project, and then it is logical that the company will be pushed to transform into a technical manager.

This route is also a route taken by more than half of technical managers. If you want to transform technology management, you can consider this.

The main point of "Skills and excellence is managed" is: there is plenty of power in action .

What does it mean? Focus on the present and handle your tasks efficiently. When you are more than enough, the leader will give you more and more difficult tasks. When you can do it efficiently and seem to have spare capacity, the leader will give you more important tasks...

In this cycle, you become more and more important, and you will bring people and opportunities for projects.

If you can't finish all the work you have at your disposal, or do not do well, you will basically not be able to follow this route. But there are other routes.

2. Join the ranks of entrepreneurs

In September 2014, due to some kind of opportunity, I left the company where I had been working for 7 years and reconsidered my direction. At the end of the solar calendar, accept the invitation of a friend to start a business with him.

The reason why I am willing to try is because:

  1. The future possibilities of starting a business and going to work are very different. If you start a business successfully, your influence and financial return will rise to a higher level.
  2. People who work together are reliable.
  3. The product made has a clear profit model.

Of course, unfortunate things always happen-we failed.

I personally do not regret this failure experience, because when you are responsible for the company from the perspective and height of the owner, your perception of work will change dramatically! This change will have an important positive impact on subsequent work and life.

If you are skilled and reliable, many entrepreneurs will invite you to join their team. Don't be hotheaded, take a closer look:

  1. Evaluate whether the product to be made is reliable
  2. See if the people you will work with are reliable
  3. Assuming that there is no income in the past 2 years, can the living standards of oneself and family members be maintained?
  4. Imagine what impact the full investment in entrepreneurship will have on the lives of yourself and your family, and whether you and your family can accept it

3. Return to development position

I started to do technical management in 2009 and failed to start my own business at the end of 2015, which lasted 7 years. But in the face of many better management opportunities, I resolutely chose to return to a technical position to continue development.

why?

This is because the purpose of our work, in addition to making money, is self-realization.

Self-actualization includes several aspects:

  • growing up
  • achievement
  • Will

Growth refers to the positive changes you want before and after you do something.

If you have been developing for ten years, and your technical level and problem-solving ability are still the same as when you first entered the industry, it is called no growth!

Achievement means that you have made achievements and gained recognition from relevant stakeholders.

You are responsible for a module, using the latest technology and the most powerful design, can also run, to achieve user needs. You personally think it is very successful, but the technical framework you use is too complicated and the maintenance cost is high. If the operation and maintenance team and the secondary development team do not approve it, it is not a real achievement.

Intention is easy to understand. It is what you are willing to invest your time and energy in, and what you do will be happy .

For example, when I re-employed after a failed business venture, it was because I felt that I was more excited and invested in using technology to develop software and solve individual problems, so I chose to return to the development position.

Many developers will encounter the question of whether to switch to management and whether to continue to work on technology. The key to choosing the answer lies in your personal wishes and your feelings about doing something.

Some people may ask, if you have been doing development and getting older, how do you fight with young people?

I drew a picture before and posted it for everyone to see:

[External link image transfer failed. The source site may have an anti-leech link mechanism. It is recommended to save the image and upload it directly (img-1DBtGhuB-1614263349509)(//upload-images.jianshu.io/upload_images/19956127-d443b1df0fd824a9.jpg?imageMogr2 /auto-orient/strip|imageView2/2/w/582/format/webp)]

It can be seen from this picture that the developer creates the software in two stages. The first creation is done in the mind and belongs to the thinking level; the second creation is the realization of coding and the physicalization of mental work.

If you want to go beyond age, you have to work harder on the abilities required for the first creation:

  • Build your own knowledge system around specific business areas
  • Refine imagination, abstraction, induction, analysis, integration, design, etc.

So you can think more, do less, do the key, do well, and you can go beyond the age limit. Otherwise, if you just pay attention to crackling and typing code like young people all day long, it is definitely worthless and will be removed soon.

The so-called senior engineer is obtained by gradual precipitation in technology and gradually mastering the core technology systematically.

The direction of our programmers is nothing more than managers and architects. To become a manager, one should have certain management knowledge, high emotional intelligence, and good organizational and coordination skills.

And if you want to become a mobile architect, you have to shoulder the important responsibilities of technology and organization, and it is especially important to build your own complete technical system.

Of course, in terms of the results, the salary of an architect with outstanding ability will also rise, and it is normal for an Android architect to get an annual salary of 400,000.

[External link image transfer failed. The source site may have an anti-leech link mechanism. It is recommended to save the image and upload it directly (img-n23ckOaC-1614263349511)(//upload-images.jianshu.io/upload_images/19956127-010c8fe63fcf1175.png?imageMogr2 /auto-orient/strip|imageView2/2/w/1080/format/webp)]

The introduction of the responsibilities of Android architects has been overwhelming on the Internet, so I will not repeat them. Today I will mainly share with you the technical abilities that you should master to become an Android architect.

Advanced learning route of Android architecture for first-line Internet giants

  • Architect builds the foundation of language

At present, the mainstream language for Android APP development is the Java language. The biggest feature of the Java language is to increase the possibility of software interaction. It can be said that almost all applications on Android phones are written in the Java language.

Knowledge points:
1. In-depth understanding of Java generics
2. Explaining in-depth explanations
3. Concurrent programming
4. Data transmission and serialization
5. Principles of Java virtual machine
6. Efficient IO

image

  • Interpretation of Open Source Framework

With the continuous development of Internet companies, there are more and more modules in product projects, and user experience requirements are getting higher and higher. It is becoming more and more difficult to achieve the purpose of small steps and fast iterations, and the application of plug-in technology is born. If there is no plug-in technology, the applications that integrate a large number of "app" such as Meituan and Taobao may be as big as a few g.

Therefore, today's Android mobile development will not be hot-fixed, plug-inized, or componentized, and more than 80% of the interviews will not pass.

Knowledge points:
1. Hot fix design
2. Plug-in framework design
3. Component framework design
4. Picture loading framework
5. Network access framework design
6. RXJava responsive programming framework design

  • 360° all-round performance tuning

In the hands of development engineers at different levels, because of the uneven technical level, even if many mobile phones are running with very high software performance, there will still be a phenomenon of lag when opening applications.

In addition, with the iteration of product content, the functions become more and more complex, and the UI pages become more and more abundant, which also becomes an obstacle to smooth operation. In summary, the performance optimization of APP has become a comprehensive quality that developers should have, and it is also a guarantee for developers to complete high-quality application works.

Knowledge points:
1. Design ideas and code quality optimization
2. Program performance optimization
Start-up speed and execution efficiency optimization
Layout detection and optimization
Memory optimization
Power consumption optimization
Network transmission and data storage optimization
APK size optimization

3. Development efficiency optimization
Distributed version control system Git
automated construction system Gradle

4. Project actual combat
Start-up speed and
fluency
The practice of Douyin's APK package size resource optimization practice
Full analysis of Youku responsive layout technology
Network optimization
Mobile Taobao double eleven performance optimization project Secret AutoNavi
APP full-link source code reliance analysis to
completely kill the actual combat of OOM Experience sharing
WeChat Android terminal memory optimization practice

  • Android framework architecture

Android framework architecture (advanced UI+FrameWork source code) This piece of knowledge is currently the most users, and we call it the technology of Android from 2013 to 2016.

Android developers are often familiar and unfamiliar with this frequently "used" code because they are used to copying code online: the familiar is dealing with them almost every day, and copying the code every day; the unfamiliar is that although with these codes every day Dealing with codes, but I haven't studied the principles of these codes in depth and the connotations in the depths of the codes.

Knowledge points:
1. Advanced UI promotion
2. Android kernel components
3. Essential IPC for large projects
4. Data persistence and serialization
5. Framework kernel analysis**

  • NDK module development (audio and video development series)

NDK (abbreviation of Native Development Kit) is a software development kit based on a native programming interface that allows you to use C and C++ code in Android applications. The program developed by this tool runs directly locally, not a virtual machine.

In Android, NDK is a collection of a series of tools, mainly used to extend the Android SDK. NDK provides a series of tools to help developers quickly develop C or C++ dynamic libraries, and can automatically package so and Java applications into an apk.

Knowledge points:
1. Introduction to C/C++ developed by NDK
2. JNI module development
3. Linux programming
4. Low-level image processing
5. Audio and video development
6. Machine learning

  • Flutter learning advanced

2020 is undoubtedly a year in which Flutter technology is in full swing. Now this technology is still very valuable.

Every mobile developer is crazy about the features and concepts of "rapid development, expressive and flexible UI, native performance" brought by Flutter, from super apps to independent apps, from pure Flutter to hybrid stacks, developers We are happily exploring and applying Flutter technology in different scenarios, and we are also facing a variety of different challenges.

Knowledge points:
1. Overview of Flutter cross-platform development
2. Building Flutter development environment in Windows
3. Writing your first Flutter APP
4. Getting started with Flutter Dart language system**
……

  • WeChat applet development

As one of the most popular programming development application scenarios, WeChat applets are very popular in the market, which makes many developers greedy. But for beginners, it's completely at a loss. I don't know what knowledge needs to be learned in the development and production of WeChat applets. Friends in need can refer to this article.

The main points of knowledge in this article:
1. Overview and introduction of
applet 2. UI development of applet
3. API operation
4. Practical combat of shopping mall projects

The full version of the information has been organized into a PDF file, and interested friends can click here to get it quickly! Hope to help everyone!

Guess you like

Origin blog.csdn.net/weixin_43901866/article/details/114107879