A 35-year-old Tencent programmer was laid off: With a house and a deposit of 7 million, he can’t escape anxiety

Preface

I saw such an article in Moments. It was probably about the panic about the wave of layoffs years ago. Among them was the anxiety of a Tencent programmer after becoming unemployed: I have caught up with this wave of layoffs. I am just 35 years old. Unemployment crisis... Anxious, in a house in Beijing, two cars, the children have not yet gone to school, Tianjin invested in a set, fortunately, there are no loans, enough for self-occupation. There are more than 7 million deposits for financial management. I haven’t heard back from my job search, so at this age I have to force myself to go out...

Regarding such a news, some people may share the worries of the wave of layoffs a year ago, but it is inevitable that some people will be jealous and hateful. Yes, there are houses in Beijing and Tianjin, with a deposit of more than 7 million yuan, which may be beyond the reach of many people in their lives.

However, whether it is sympathy, envy, jealousy or hatred, it is always a loss of work, it seems that you can't find the direction of life, and even feel that life is meaningless, and then produce endless anxiety. Many people have experienced this kind of suffering!

35 years old is a hurdle in life, there is a wide road ahead, or full of thorns... However, time continues every day, it will never stop waiting for you, so you still have to bite the bullet Persevere with gritted teeth. Hold on, you may see a more exciting life.

Correct mentality

If you plan to be a programmer for a lifetime, you need to set your mindset and maintain your competitiveness. It is of course a good thing to be able to enter a large company in advance to do management and be an expert. Even if you can't get in, there is a prediction in advance, knowing that it is common for people to be picky and thin after being old, and can bear grievances and anger, and perhaps be able to live safely to 40 or 50 years old.

The status quo of career is the status quo. If there is no way to change the career, you can only think of ways to change yourself. Self-examination, continuous learning, good planning, based on 10-20 years of professional career, plan ahead. Don't wait until you are 40 years old and you are still posting your resume for interviews. It would be too passive if you wait for the rice to be cooked at home.

However, people always have to look at problems from the perspective of development. The society is developing and the times are progressing. Maybe after 20 years, programmers will not be young. Here is a passage from Wang Xiaobo to friends:

I was 21 years old that day, in the golden age of my life. I have a lot of extravagant hopes. I want to love, I want to eat, and I want to become a half-dark cloud in the sky in an instant. Later, I learned that life is a slow process of being hammered. People get old day by day, their extravagant hopes disappear day by day, and finally they become like a bull that has been hammered. But I didn't foresee this when I celebrated my 21st birthday. I think I will live forever, and nothing can hit me.

How to improve competitiveness

1. Choose a subdivision

Android is now subdivided into a lot of fields. The above mentioned are application development, reverse security, audio and video, Internet of Vehicles, Internet of Things, mobile phone development, SDK development and smart TV box development, etc. Choose one of these fields and continue Go deep.

2. Do subtraction, try to specialize in one technique

In today's society, the division of technology is becoming more and more detailed, and the more detailed it means that most enterprises (except small workshops) need specialized talents (preferably proficient in multiple disciplines).

You will find that most of the technical people around you who stand out rely on one technique, but you rarely see a bunch of techniques come out without being proficient. For example, in the world of martial arts, the master showdowns all took out martial arts in the same time period. If the martial arts of the martial arts were not good enough, and they were abused every minute, there would be no need to use the martial arts that they saved to show their ugliness.

I think the real version is to go to a big company to interview Android. As a result, I don't know the Android technology deeply, and I am abused by various kinds. The interviewer is not interested in learning about the remaining front-end technology, back-end technology, python and so on.

So it’s not that the more skills you know, the better, you must do a good job of subtraction, first specialize in one subject, and then learn other techniques.

3. Talk about the recent hot technology of Android

Kotlin, the official development language recommended by Google, is interoperable with Java, can be converted to each other, is concise and safe, etc. It is a statically typed programming language that runs on the Java virtual machine. It is called the Swift of the Android world. It is designed and developed by JetBrains. And open source. Kotlin can be compiled into Java bytecode or JavaScript, which is convenient to run on devices without JVM.

Flutter, Flutter is a new mobile UI framework released by Google at the 2018 World Mobile Conference on February 27, 2018 to help developers develop high-quality native applications on both ios and Android platforms. Since it was released by Google, in terms of prospects, it is worthy of recognition.

Friends in need can refer to the information I have compiled before:

"Advanced Kotlin Enhanced Practical Combat (with Demo)"

"Flutter Technology Advanced"

to sum up

Every industry has good things and bad things. As long as you keep learning and making progress, you will be able to pick the fruits that others can't. To put it bluntly, having the idea of ​​switching to Java also shows that he is not confident about his technical level! Only by continuously advancing on the road of technology, there will be no similar confusion.

For programmers, there are too many knowledge content and technology to learn. Many people always encounter some problems when they are new to this industry or when they encounter a bottleneck period. For example, after studying for a period of time, they feel that they have no sense of direction and don’t know where to start to learn. You can follow me every day. Update all kinds of technical dry goods.

I am already 32 years old. March of the new year will be my 33rd birthday, and in 2 years, it will be the legendary 35-year-old "Date". I have been in the programmer industry for nearly 10 years, 3 years of Java, 7 years of Android so far, the position of ByteDance architect should enable me to reach 40 years old! However, I have already run some sideline businesses, which can be regarded as a "back-hand" for myself.

So far, as an Android developer, I would like to share some generalizations and summaries of the technology over the years, and share with my notes on those skills that I need to master as an Android senior developer. I hope it can help. Friends who have gone all the way on the road of technology!

Essential skills for architects

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

Essential skills for architects

Interpretation of open source framework for design thinking

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

Interpretation of open source framework for design thinking

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 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.

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. Optimization of development efficiency

  • Distributed version control system Git
  • Automated build system Gradle

4. Project actual combat

  • Start speed
  • Fluency
  • The practice of Douyin's APK package size resource optimization
  • Full analysis of Youku's responsive layout technology
  • Network Optimization
  • Revealing the Secret of the Performance Optimization Project on Taobao Double 11
  • Analysis of source code dependence of AutoNavi APP full link
  • Sharing of actual combat experience of completely eliminating OOM
  • WeChat Android terminal memory optimization practice

360° all-round performance tuning

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 with and unfamiliar with this frequently "used" code because they are used to copying code on the Internet: 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.

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

Android framework architecture

NDK module development (audio and video 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 in this article:
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

NDK module development

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

WeChat applet development

Interpretation of Android related source code

As long as it is a programmer, whether it is Java or Android, if you don't read the source code and only look at the API documentation, it will just stay on the skin. This is not good for the establishment and completeness of our knowledge system and the improvement of actual combat technology.

Interpretation of Android related source code

Interpretation of part of the Android-related source code

Due to limited space, only part of the interview questions can be shared, and more interview questions and answers can be read and downloaded by [click me] ~ Share it with everyone for free, it is a thankful feedback.

Guess you like

Origin blog.csdn.net/zhireshini233/article/details/114378636