This is a manual and advice written for algorithmic engineers

The picture

Probably because the autumn recruitment is about to start in advance, Xiao Xi has received many requests for help from her friends in the background of Zhihu and wechat. So small evening here to write a literacy paste, to graduate younger brother younger sister to provide a reference (after the younger brother younger sister asked me this question when I have an article can be dumped ( ̄▽ ̄)

Experienced drivers are welcome to point out any bias in the comments section.

When it comes to domestic post names, it can be said that the exhaustion of dazzling lofty noun. Friends who have experienced autumn recruitment must have experienced the trouble of job selection:

  • XX company is recruiting artificial intelligence researchers, it feels very high-end ah, afraid of it
  • XX company is looking for NLP engineers. Does it sound like Java engineers

The lovely teacher younger brother that is about to look for a job people must not be confused by HR young lady sister, although the post does not divide on any account high or low, but the side key of different post working nature and ability is very different.

Any position that starts with a concept related to AI, whether it is researcher/algorithm engineer/algorithm researcher/technical researcher/R&D engineer/engineer, can be uniformly understood as equivalent concept. Actually is originally should not be equivalent, but in fact there is a lot of “researcher” special jobs are doing development work, struggling to move brick, no research nature (which won’t roll call, his polish eyes), there are also some don’t catch the tide enterprise is lazy, no matter what nature of work, unity is called “engineer/developers”.

An overview of

Refer to this answer by Zhihu @Howard at???? Algorithm posts in the Internet industry are mainly divided into three types:

www.zhihu.com/question/36…

  • Business-oriented algorithm engineers: the most typical algorithm engineers are mostly recruited in the market, mainly in business departments. Some big factory technology departments with independent businesses (such as Baidu Translation in Baidu’s NLP division) may also have small teams positioned in this way, which research institutes rarely have unless the company is really short of money. The primary goal of this position is to quickly solve algorithmic problems in the business, and innovations may be patented.
  • Research oriented algorithm engineers (R&D) : mainly concentrated in the technical department of dACHang, dachang research institute and large business departments may also have small teams positioned in this way. This position focuses on solving complex algorithmic problems in the business and may or may not be published in the form of patents or papers.
  • Research in the narrow sense: researchers are mainly gathered in the Research Institute /AI Lab of Dachang. The technical department of Dachang also has such positioned teams or groups, while the business team rarely recruits researchers in the true sense. This kind of position pays attention to exploring academic frontier, and will take proper care of the long-term needs of the business line. The primary goal is to create influence in the industry (paper as the main form of expression).

Obviously, these three types of positions, from top to bottom:

  • The market demand decreases in turn
  • The uncertainty (the difficulty of the outcome) increases
  • Research and innovation capacity requirements increase in turn

Xiao Xi has worked in both Research and R&D positions for a period of time, so he has no chance to contact the details of business algorithm positions. Therefore, relevant explanations of such positions are provided by the core business team of a large factory.

Before I begin, this article is intended to be a general discussion, meaning that ideas and experiences cannot be replicated for everyone on every team. Different companies have different definitions of AI Lab, and different business teams have different positioning and requirements for business algorithm engineers. Two R&D projects of the same company and the same team may also have very different positioning. Therefore, the opening method of this article is to carry out popular science in the general sense for the junior and junior teachers.

Research

I have read a sentence before, no matter how much a company claims to be a technology company, there must be a hidden word of “business” before “technology”. Therefore, even Google, Baidu this kind of technology established the Internet company, also must be the first business, after the technology. On the other hand, the Research post, which seems to be natural and contrary to commercialization, often has a disproportionate output and input.

For the enterprise itself, it needs to pour a lot of resources (money, talent, time, etc.) into the Research team to achieve visible benefits. The output of the Research team is also difficult to be measured by money. These light or heavy scientific Research achievements will be transformed into the influence of the industry, which is very important for attracting top talents and developing long-term strategies. In addition, investing in long-term research projects is also an expression of social responsibility. After all, such high-risk and high investment may lead to great changes in the industry and even the whole mankind (such as Google’s AlphaGo, Microsoft’s ResNet, And Baidu’s mixed precision training and Ring Allreduce).

However, most of the heavy investment in research institutes will result in little increase in income and influence. Reflecting on individual researchers, researchers can experience a huge gap between ability and income, and between effort and output. Alpha Go and BERT, Microsoft and ResNet are not overnight investment of a few dollars. Therefore, people in the Research position cannot avoid the problem of output. High-impact results can take years to build, but it’s hard to give you trial and error time. Even if the company is tech inclusive, you need to consider whether your own youth can afford the risk.

I recall the time when I was doing Research with the boss and a group of top buddies. I always had to consider an unsolved problem from time to time:

If ACL dies, it will be 0 for 6 months (゚д゚)

ACL is in, but there is no short-term proof of impact. ́ him.)

Looking for a promotion and a raise only to find there is no output to sell

Did not create wealth for the company, and did not bring influence to the company to improve, so take what statement defense? … > _ <…

I’m too south…

This is why most of the Research team members are PHDS. Everyone in team is very good, generally are ranked by the start, while doing Research day, enjoy the wisdom of the collision and pleasure brought by the on their moments of inspiration, but the reality of bony causes the industry Research team of high liquidity – often have the ability to super junior partner because is out of step input and output is far away, I feel very sad in my heart. \

Therefore, before blindly worshiping and following the trend of Research post, I need to ask myself a question: are my ability and love enough to undertake such high-risk and low-output work? Have you really become so passionate about algorithmic research that you have almost given up your business? “Excellent” in the general sense is far from enough to support this post. “excellent” is only a necessary and insufficient condition for the Research post.

Research&Development

R&D, or Research oriented algorithm engineer, is a much milder position than Research. After Switching from a Research post to an R&D position, Xiao Xi summed up her experience

“Physical labor in exchange for some mental labor, physical stress in exchange for some mental stress, and a few more shackles.”

Different from the position of Research, the algorithm engineer position of Research orientation often comes from the business line, and the Research results should be directly fed back to the business line, instead of taking paper and academic influence as the first goal. Different from the position of algorithm engineer in the field of business, most of the business requirements (algorithm problems) in the position of algorithm engineer in the field of research are challenging and more research-oriented. It usually requires several months of concentrated investment, but once solved, it will bring huge online benefits. Here are a few examples from NLP:

  1. Intelligent q&A/reading comprehension problems in search business: Doing it badly won’t directly cause a search engine to fail, but once done well, it will greatly improve the user’s search experience.
  2. Text matching in advertising: If you do it badly, you can make less money, but if you do it well, it’s the real money and improved user experience that comes from high conversion rates.
  3. The small talk problem in the conversational robot business: the core service of the conversational system will not be directly suspended if it is not done well, but once it is done well, it will bring users great sense of surprise and emotional added value.

It should be distinguished from the difficulty of the problems faced by the Research staff. For example, in the dialogue robot business, the demand for the Research team may become an “open domain dialogue understanding” problem. Once this problem is solved, it will definitely bring tremendous development to the company’s dialogue business, and even become the leader of the track. The problem is, the world has been struggling with this problem for a long time.

It can be seen that compared with Research posts, R&D posts face much less uncertainty and the output curve is much smoother. While R&D still requires sufficient innovation and problem solving, it is much easier to produce output that matches effort and capability (unless it encounters questionable demand).

Therefore, for some algorithm requirements raised on the business line, maybe because the problem is not difficult enough, or you have good sensitivity in this direction, then you can skillfully explore the solution to the problem through several rounds of strategy iteration, and then give a version that can be put online. Compared with the experience of Research, the solution of algorithm problems will bring great surprise to business fathers, but it will be more boring and less sense of achievement for them. After all, they are shackled by time nodes and online performance (efficiency), so they dare not try some unconstrained ideas easily. In addition, the research results are going online, so a testing and deployment process is not immune to some repetitive manual labor.

In addition to the shackles and “the drudness of creative manual labor,” another problem with R&D jobs is that it’s harder to find time to write papers, partly because of scheduling (although you have a few months to explore strategy, you don’t have time to write papers). On the other hand, the research results that can solve the major problems of the business may not be convenient to make public (although you feel that the innovation and breakthrough are not very big, the rival products may not even make this breakthrough in a short period of time, which brings the market competitiveness for the business).

Since the problem requirements are extracted from the business line, it is obviously more difficult for the research-oriented algorithm post to see the whole picture of the business than the business algorithm post. So you can solve a major problem for your search or advertising business and make a significant improvement, but you still don’t know how to build a simple search engine or advertising system. However, this disadvantage can also be inferred from the reverse advantage, is that you can be exposed to the company’s major lines of business at the same time.

Therefore, before following the trend and worshiping the research-oriented algorithm, you might as well ask yourself two questions: how much ability and enthusiasm do you have to research and solve algorithm problems? Have you reached the level of Research post? Do you love business more, or algorithms more?

Development

After listening to Xiao Xi’s experience of Research post and R&D post, let’s talk about the experience of business algorithm post by @rabbit sauce and @Deer Deer.

Compared with the previous two positions, the business algorithm position has relatively low risk and relatively predictable output. Besides, it has another very important advantage that it can see the whole business. Having a macro understanding of the problem is of great help to the further development of more detailed technical points and to the development of management.

As the name implies, the primary goal of business-oriented algorithm engineers is to solve business problems, and for a business with clear business value, most of the business departments use algorithms that have been honed by academia for a long time. So researchers generally don’t have to work as hard as researchers and research-oriented algorithm engineers to do prospective studies of algorithms. Here I would like to emphasize that although we do not spend much effort on forward-looking research of algorithms, business-oriented algorithm engineers are also inseparable from innovation and wisdom. They need to switch perspectives and solve problems from users in a more realistic way, rather than simply doing empirical physical labor.

We need to find users’ pain points and difficulties from actual products, put forward cost-effective solutions and quickly launch them, constantly check the effect of the algorithm and adjust the strategy through real user feedback, and so on. In this process, we pay more attention to the controllability, maintainability and on-line performance/reasoning efficiency of the algorithm than to the innovation of the algorithm. After all, if a complex algorithm improves a few points on the standard test set, the actual users of the product may not feel the optimization effect at all, but actually feel the delay brought by the complex algorithm as long as hundreds of milliseconds.

R&D and researchers tend to approach problems from an algorithmic model perspective. In contrast, business algorithm engineers are more open and clever at solving problems, such as through product design or other ways to fill or bypass algorithm bottlenecks. These are inseparable from the product and business familiarity, understanding of user experience and a variety of clever shake.

In the rhythm of daily work, it is also significantly different from xiao Xi’s team. As the business team has multiple and clear requirements and needs rapid iteration, our business algorithm engineers are required to have relatively high programming efficiency, be able to quickly solve the requirements in hand and keep up with the business rhythm of continuous high-speed optimization.

In summary, if you love business more and want to solve algorithm problems in real business, then you can consider doing business algorithm like Rabbit sauce; If you love algorithms and research and want to solve algorithm problems with more challenges and benefits, you can consider working as a research-oriented algorithm engineer or even a Researcher with a higher risk factor like Xiao Xi. I hope you can choose rationally according to your own situation and avoid blindly worshipping and following the trend.


【 Interview for a job 】

Practice push fast forward! Bytedance has all kinds of jobs!

Practice push fast forward! [Ali Dingding] Technical intern of 2021 push inside! \

Ask me to push inside! Tiger teeth live 2021 a variety of internship positions for you pick~\

Part of the internship in 2019 was reviewed

2019JDATA store purchase prediction contest rematch (champion scheme) \

The le qing! Convolution, separable convolution parameters, and FLOPs calculations! \

C++ references and Pointers and const constant qualifiers?


Share more, long click to follow our official account: