Do technical people look down on doing business? Do business people look down on miscellaneous people? Boss: They are all part-time workers!

Boss: Who do you look down on? Go work for me!

Preface

Hello, everyone, I wrote an article about the miscellaneous culture in the workplace before, and the response was good. Recently, some friends were preparing for school recruitment, and they came to ask me what " doing business " means in the recruitment information . So I wrote this article to tell everyone about the doorway inside.

When we talked about the word business, the most popular one should be sales or after-sales service. But in fact, there are differences between technology and business in Internet companies. In interviews, HR often talks about this: We are a technology-driven company or a technology-oriented position. We all understand what she meant by saying that our position is very precious, and you have to take it well.

But why is the technology expensive, and the business seems to be weak? If you want to clarify this problem, you must first clarify what is the business of Internet companies.

Business and technology

What exactly is doing business? To be honest, there is no standard answer to this question, I feel that everyone is relying on their own guesses. My personal understanding of this issue is that whatever the product manager asks you to do is business. What other programmers ask you to do is often technology .

In fact, it is easy to understand, what do product managers usually do when they come to us? It is generally for us to fulfill their needs, such as making a version of new features, such as making a piece of analysis data, such as solving a user problem, and so on. These things are often directly or indirectly oriented to customers or users. For example, if a new function is created, users can do things that they could not do before. For example, customers are dissatisfied with certain places, and we make targeted changes. These things in order to meet customer needs or make customers more satisfied are business.

Technology is on the contrary, not to satisfy some people, but to solve certain technical problems or system problems . For example, think of ways to improve the response speed of the server, think of ways to provide machine throughput, think of ways to store larger-scale data, think of ways to keep the server down under large-scale traffic, and so on. These things are often not obvious to users, but if they do not do it, it will either affect the company's subsequent development or cause greater trouble. The source of these things is often other programmers, who can be architects or teams that collaborate upstream and downstream. Few product managers find programmers for technical upgrades or transformations.

Pros and cons

business

When it comes to doing business, everyone may be more concerned about the shortcomings of doing business, for example, the technical content is relatively low, and many things are more complicated . If it is development, add a function here today and a button there tomorrow, referred to as CRUD (addition, deletion, modification, and check). The algorithm is similar. Here we will make a model to predict user preferences, and there will make a model to predict user retention. It is even possible that the model is not available, and running some SQL to do statistics will meet the requirements.

You say that you want to use some high-end methods, and you will be called back by the product manager or the operating lady in all likelihood. As long as we can use it, we don't pursue technology, the sooner the better.

It may be fine in a short period of time, but it will be very boring after a long time. I don't know when such a day will end. Work seems to be all these boring and trivial things, and the technical field has not grown for a long time. You say you should learn a little bit more advanced technology, and it won’t come in handy if you learn it. Therefore, the enthusiasm of many engineers has been eroded in the business, and they feel that they can't see a way out and can't grow up. Therefore, many people have a headache when they hear the three words doing business, and they are very resistant. These are also very, very normal.

I felt the same way at the beginning. I felt that doing business was very boring. I wrangled with product managers and operations all day long. And the pressure is also great, sometimes the system has a problem and I have to wake up in the middle of the night to watch. I feel like a coding machine with no emotions. But then I look back now, and my views on the problem have changed a little, mainly because I have seen the benefits of doing business and have a more comprehensive understanding.

I don’t know if you have heard of something called the CEO Award in some companies . That is, every year the CEO chooses a team that he thinks has done the best to present this award. Once this award is won, the performance of the entire team and year-end awards are very, very impressive. I heard that the King of Glory team won the CEO award that year, and everyone in the team paid millions in taxes that year.

I have observed the CEO awards of several companies, and almost all of them are business teams. For example, in Ant Financial, I know that there are two teams that have won this award. One is Ant Forest and the other is a small program . Obviously, these two teams are business teams.

From our personal point of view, we may pay more attention to the improvement of personal abilities and technological growth. But from the perspective of the company's decision makers and managers, they obviously value the company's development and growth more. For Internet companies, development and growth are mainly reflected in business rather than technology. No matter how good the technology is to make money, the company will eventually go bankrupt. Such examples are not uncommon.

So doing business is not the main thing, the main thing is what kind of business you do. If it is in the core business team, whether it is team and individual performance or promotion opportunities, it is much better than other teams. It is also easier to attract the attention and appreciation of the boss, and get the opportunity to be promoted.

Another point is that doing business exercises soft power, such as communicating with upstream and downstream, product managers and operations, and so on. Another example is that you may often need to report business to the boss and leader. And in the process of doing business, we also cultivated our understanding of business scenarios , which is very important to us. Just take an advertising business as an example. How does the advertising bidding mechanism work? How to design an anti-cheating mechanism when a merchant has a click-through rate? What is the difference between CTR and CR? What is the difference between advertisements in different scenarios?

The understanding of these issues is not a direct technical ability, but it is also very useful for our job-hopping and employment. This is also the reason why many people do not change their technical direction when they change jobs. Those who advertised before, often choose to advertise after changing companies because of the accumulation of these business understandings.

technology

After talking about business, let's talk about technology. In fact, Internet companies rarely have purely technical teams . After thinking and thinking about it, there may only be teams like Alibaba Cloud or middleware. In addition, there are some artificial intelligence laboratories or various laboratories. I used to think that the department called xx laboratory sounded very tall, and I got a certain halo after entering it.

I learned about it later and found out that this is not the case at all. The projects in various laboratories are often far away from the business , which means that application scenarios are often not found. The absence of an application scenario means that it cannot bring profit to the company, and that it cannot bring revenue to the company basically means that there is not much value. Some large companies may be okay and are willing to raise a group of people to study technology and pave the way for the company's future. But even so, the risks are great. Once the company's performance is poor, these may be the first technical team to be laid off.

Another hidden factor is that the technical direction actually restricts the choice . What does it mean? Very simple, for example, you are doing middleware. We all know that middleware is a very technical position, but the problem is that middleware positions are only available in some large companies. Small companies use open source middleware and basically do not develop them themselves. In other words, you have learned the dragon slaying technique for nothing, but dragons are only available in a few large companies. When you want to change jobs, your choices will be restricted. This problem does not exist in business. Even if the business is small, as long as the technical literacy is OK, it will not become a problem when changing jobs.

You shouldn't need to say more about the advantages of making technology, you can guess it. It's relatively simple. You don't need to deal with products, operations, and various people. You can write code and learn technology with peace of mind. There is also sufficient technological growth to enhance their own strength and so on.

Miscellaneous

In addition to doing business and doing technology, there is another kind of miscellaneous. That is, neither core business nor access to core technology can be done, and only marginal things can be done on marginal teams. This is also the norm for most engineers. To be honest, this is very embarrassing, and I have experienced it and have a deep understanding.

When we cannot change the status quo, if we keep looking at the status quo, it will only make ourselves more painful . At this time, in addition to thinking of various ways to show your abilities and make yourself stand out and be reused, there is also a better way to learn to entertain yourself and meet your own needs. For example, the boss doesn’t give us jobs with technical content (or maybe the boss doesn’t have it himself), what should we do? Then can we do some technical things ourselves?

We can be a leverage, pick one of the problems in the current system, and then find a way to solve it, or optimize it. If you think which system or tool is not easy to use, you can make a better tool by yourself. If you have permission to access some of the company's idle machines, you can also deploy various distributed cluster frameworks on them as an experimental device of your own. Only people stipulate that the company's resources cannot be used to make a profit, but no one says that they can't use the company's resources to improve themselves, right?

How to improve

I have been doing Android development by myself in the 6th year. Two years after graduation, I have the honor to join the big family of ByteDance. In the 4 years of Byte, I have witnessed too many people coming and going, and I am deeply impressed by a colleague who switched jobs to Ali and directly doubled his salary, but I also saw many people bumping into the wall with gold plated with "big factory". Technically!

I may be considered a successful example myself. I achieved 2-2 from 1-1 in 4 years. Of course, the "sorrowful tears" behind this will be discussed later. In general, thanks to my continuous learning, review and summary, and improve my skills! Let me share my specific study route and notes in the past 4 years, hoping to help friends who are interested in improving technology!

The following complete study notes PDF, you can like + comment to support the worker brother, click here to pick it up for free !

  • 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
  • Source code dependency analysis 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 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 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

  • Flutter learning advanced

2019 is undoubtedly a year in which Flutter technology is in full swing.

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 enthusiastic about exploring and applying Flutter technology in different scenarios, and we are also facing a variety of different challenges.

Key points of this article:
1. Overview of Flutter cross-platform development
2. Flutter development environment construction in Windows
3. Writing your first Flutter APP
4. Getting started

with the Flutter Dart language system ...

Flutter learning

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

Interpretation of Android related source code

Interpretation of part of the Android-related source code

Due to space reasons, if you need the PDF of the above complete study notes, you can like + comment to support the worker brother, click here to pick it up for free !

Guess you like

Origin blog.csdn.net/Androiddddd/article/details/113390504