The competition between big factories is so fierce, why do they still have to get in when they squeeze and break their heads?

Isn't the competition among big companies fierce now? Besides, the salary of major companies is no better than that of some second-tier companies. In that case, why do we have to squeeze our heads into major companies?

Today I will chat with you a few words, what follows only represents my personal opinion. If you have different opinions, please leave your opinions in the comment area.

Golden Signboard
In the past few years, when Ali was recruiting at school, he used the banner of "Ali University". Comparing the company Alibaba to a school, we didn't go in to make money, nor to work, but to study and study on another level. Therefore, many resigned friends on the intranet posted that they were not resigning, but that they "graduated."

But if you think about it carefully, you will find that apart from the purpose and means of corporate publicity, there really is so much truth. Every year, a large number of engineers leave BAT and enter companies of all walks of life, large and small, to continue to shine. To a certain extent, the large number of talents needed for the development of the Internet industry are provided by these large companies. When you go for an interview, when you look for a job, the BAT work experience in your resume is like a diploma from Tsinghua University and Peking University. Not to mention 100% of the interview passed, but at least it can give you a chance to get an interview. In the resume off.

When I applied for the on-the-job master's degree at the National University of Singapore this year, I was always hesitating. Because I have thought about it and thought that for my resume, there is not much difference between the diploma and the absence. If I change jobs in the future, I will definitely not be able to get the job interview by relying on a diploma. In that case, why bother? Although I finally decided to continue to apply, I also knew in my heart that I did this only to learn something, not really expecting it to give me much help in career development.

Many anxious salespeople have been promoting the 35-year-old elimination theory, but the few 35+ programmers from large companies I know have not been eliminated, and they still mix well.

Customs clearance map
Many people are very repulsive of large companies, and a common saying is "interview to build rockets, enter the factory to screw the screws".

Indeed, because of the very clear division of labor and perfect tools in large factories, most jobs have no technical content. Just continue to do it according to a standard, and there will be no surprises and no changes. I have personally experienced it. I have been in Ali for two years and wrote about the business for two years, with function A today and function B tomorrow.

I always felt that in the past two years, I should have learned nothing. All the skills were taught by myself in my spare time. I also regretted it for a while. I felt that I had chosen the wrong one and I shouldn't go to Ali. But not long after I came to Singapore, I completely overturned this view, because I discovered that I didn't learn anything. It was a bit like an iceberg theory. All I saw was a point on the surface of the water, most of which were hidden under water.

What do you mean, let me give you an example with screws. For example, if you work as a screwdriver in a large company that builds aircraft carriers, you will screw this screw today and that screw tomorrow. One day you can't bear to leave your job and go to a small shipyard. As soon as you entered, you found that the roof of the small shipyard was too low. It's okay to build small boats, but it won't be enough if you want to build a big ship one day. Two days later, you find that the wrench that is screwing the screw is wrong, the durability is very poor, and you can only screw a certain type of screw. After another two days, you find that the design of the built ship is also problematic, and it is not streamlined...

Before you came to the small shipyard, you thought you had only screwed the screws for two years and learned nothing. In fact, you have already seen the customs clearance map. Sometimes I still regret it, but what I regret is no longer the original choice, but regret that when I had the opportunity, I did not look at the customs clearance map carefully, which resulted in a lot of omissions.

Gathering big bosses and rich information.
I met a very, very senior senior in Ali. He has been in Ali for more than ten years, but for various reasons, his level is not very high. I asked him at the time, since you are so dissatisfied with the status quo, why don't you want to leave to find better opportunities?

He pondered for a moment and told me, he said that although I am here now is not going well, but the people I have come into contact with are very good. I have a problem, and I can discuss it with you. If I go out, if I encounter problems again, there may not even be a single person to discuss.

I just thought it made sense when I heard it at the time, but when I think about it, I feel very deeply. Three perspectives, structure, and ability. Those who can enter a large company are generally not too bad in these three aspects. Apart from other things, as far as personal ability is concerned, I have met many colleagues from various overseas prestigious schools after I went abroad. Compared with my colleagues in Ali, it is nothing more than that. I don't know if it is my prejudice, but as far as I can feel, the pattern of foreign engineers is relatively small.

In addition to excellent colleagues, large companies often have a wealth of internal documents and materials. At that time, I saw many excellent articles in Ali, and there were also many excellent technical salons and sharing. Now that I think about it in the past two years, I haven't been there a few times, and I haven't read a lot of articles and materials. It is a pity to think about it now. In addition, as far as the recommended field is concerned, papers with good quality in recent years have often come from large companies, especially large domestic companies, mainly from Ali, Huawei and Toutiao. In addition to public papers, there are many technical-related materials and documents inside the company. These are really valuable and very precious.

Continuous learning and improvement It is
said that three years is a hurdle for programmers. Whether they can be promoted or improve their core competitiveness is very critical in the past few years.
With the rapid development of technology, from which aspects can you learn to reach the level of senior engineers, and finally advance to Android architects/technical experts.
Android-related books include "Android Authoritative Programming Guide", "Android Development Art Exploration", etc., further You can also read Android-related source code, with books such as "Analysis and Actual Combat of Android Source Code Design Patterns", which is of great benefit to reading the source code.
So how to build a complete knowledge system and dig deeper into Android technology?

" Android Architecture Video + BAT Interview Special PDF + Study Notes "

Let me share my specific learning route and notes in the past 6 years, hoping to help friends who are interested in improving technology!
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. Java serialization, generics, reflection
2. The underlying principle of virtual machine
3. Android memory principle
4. Java high concurrency principle detailed explanation
5. Compile-time technology mastery and actual combat
6. JDK advanced dynamic agent
7. Advanced data structure And algorithm
8, Java IO operation

Android R Frame Work source code and UI

In Android, Framework refers to the system architecture layer. Framework means "framework" in Chinese. In software development, it usually refers to the development framework. It is above the kernel layer in a system and provides interfaces for top-level applications. It is designed to help developers quickly develop top-level applications without having to care about the system. The kernel operating mechanism, usually Framework will hide the main function and other necessary components of the application, developers only need to focus on the realization of the function code. To put it simply, the specific work of Framework is to provide a series of services and API interfaces for developers of android application development.
UI does not simply refer to the effect the user sees. Because in Android development, there is a deep-level system behind each control. Naturally, UI does not simply refer to custom controls. We should also know the execution process behind custom controls, including from Activity Creation, analysis of XML, measurement, layout, and drawing of each control. Of course, there are also knowledge points such as animation, event distribution mechanism, and nested sliding mechanism. There are also some UI frameworks provided by Google that also enable us to grasp the objects, such as Jetpack component library, Material Design, etc.

Knowledge points:
1. FrameWork source code analysis
2. In-depth analysis of common Android components
3. In-depth analysis and customization of UI
4. Jetpack family bucket
5. Android R
6, RXJava responsive programming framework design

360° all-round performance tuning

Performance optimization is for the entire app development. When a good project is developed, not only is the product better, the developer also needs to know why the app I developed can run on most mobile phones, and why most mobile phones do not have bugs when users use it. Our apk file can be optimized to be very small. For example, if you make a project, it may be 10m after packaging, but after optimization, it may only be 8m or even smaller. In addition, how safe is the project we are doing? Why do we conclude that the app we made is safe? These are all involved in performance optimization.

1. Design ideas and code quality optimization

Whether an app’s performance is good or not, we need to work on two levels. The first level: you need to pay attention when writing code, make your own code high-performance and high-availability code, this process is to write high-performance code; the second level: check the code problem with tools for the already formed code , To guide us to delete and modify the code through the checked problems, this process is called tuning.

How to write high-performance code? Then we need to have a deep code knowledge, which is the basis of the code, such as: the data structure can be written according to the application scenario to meet the current scenario of the special structure, for example, Google developed sparseArray instead of HashMap for the characteristics of the Android platform. In addition, he has his own unique insights into commonly used algorithms. There are hundreds of questions on LeetCode, so that you can almost achieve the ability to be proficient in the most commonly used algorithms such as sorting and searching dynamic programming. Furthermore, if efficient algorithms and memory-saving data structures are matched with excellent design patterns that meet application scenarios, these provide a basis for high-performance code.

The other is to tune the written code. Then the direction of tuning is to use the Profiler tool to test and check to see where there are performance-consuming operations, and then analyze the problems with the code. The direction of tuning becomes how to optimize memory, power consumption, network traffic, and of course, there are reasons for startup speed, page switching effect and speed, boot white screen experience, and splash screen. Wait for analysis and tuning. Finally, add a screen adapter camera adapter.

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-up speed, fluency, practice of Douyin in APK package size resource optimization, Youku responsive layout technology, full analysis, network optimization, mobile phone Taobao double eleven performance optimization project, revealing the source code dependence analysis of the entire link of AutoNavi APP, and completely eliminating OOM actual combat experience sharing WeChat Android Terminal memory optimization practice

  • Benchmarking the necessary technologies for Tencent T3.3 architects

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.

Key points of knowledge in this article:
1. Code design guidelines necessary for architects
2. Component-based architecture design
3. Plug-in architecture design
4. Hot fix design
5. Open source framework source code analysis and implementation

image

  • Advanced audio and video (audio and video series)

From the perspective of future trends, with the advent of the 5G era, audio and video have gradually become necessities in people's daily lives. In addition to online education, audio and video conferences, and instant messaging products that must use audio and video technology, other products also need to add audio and video elements.

It is precisely because of such a big trend that in addition to major factories, other small factories are also starting to look for audio and video talents.

A slightly better audio and video talent may now have 3-4 companies rushing to get it, earning it. The demand for audio and video talents has changed from a niche to the general public, which is more a result of everyone's expectations of the future market.

Why are audio and video talents rare?

Audio and video knowledge is complex, and there are very few easy-to-understand materials;

Online blogs and videos are filled with a lot of wrong information, making many beginners unable to climb out of the pit.

For example, according to the traditional audio and video learning method: first contact a large number of audio and video open source libraries, such as FFmpeg, MediaCodec, and often these APIs have already made your head bigger. Staying on the API will not allow you to adapt to changing needs. The first direction was wrong. No matter how hard I tried, I couldn't learn audio and video.

Key points of this article:
1. Basic syntax
2. H264 video coding
3. H265 coding principle
4. H265 coding application
5. MediaCode

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

Due to space reasons, the above complete study notes pdf, or the complete outline if necessary, can be picked up here for free !

Guess you like

Origin blog.csdn.net/A_pyf/article/details/114339121