Meet the algorithm engineer

Source: Internet
Author: User
Tags documentation

About this article: the article will be from what is the problem of algorithmic engineers, on the network to travel, found that there are good sentences to extract, of course, finally, I will give some of their own humble opinion.

"The following reference: https://www.zhihu.com/question/20281296"

Work Products: Software engineers output code and documentation, where code is the main product; algorithm engineers output algorithmic models and descriptions, although often also code and documentation, but are intended to express algorithms .
Means and tools: software engineers use a variety of programming languages and software architectures. Algorithmic engineers also use programming languages, but rely more on professional tools such as MATLAB, various statistical analysis software, and so on.
Focus: Software engineers focus on using off-the-shelf algorithms to deliver applications and solutions, and in most cases the core algorithms are provided by algorithmic engineers. Algorithmic engineers focus on how to solve a particular type of problem and implement a certain kind of function.

Give an example of how everyone works together. Company to develop a multimedia player, is usually said MP4. The algorithm engineer studies various video and audio decoding algorithms , studies various multimedia file formats, and studies how to achieve the fastest decoding speed with minimal resources. In a company that is not very large, algorithmic engineers are usually responsible for implementing the above algorithm into a software library, providing only a few very simple APIs to the software engineer (usually the application software engineer). Application software engineers use the software library to implement peripheral functions such as UI to form the final product.

At present, the Internet IT Enterprise recruit algorithm engineers are mostly engaged in data mining and machine learning .
Research and development Engineer is to do the application layer development, back-end research and development and algorithm engineers to provide the interface docking, the front-end research and development of the data interface with the backend docking.

This is a little bit abstract, let me give an example of myself.

I now in an Internet mobile advertising start-up company to do algorithms, not many engineers, the boss is Baidu and Ali out of business, mainly divided into front end, back end, algorithm.

The function of the algorithm is to model the user data , such as know what goods you have seen, which sites, through a number of data mining means to transform these information into eigenvalues, so as to achieve the classification of user groups and clustering, so as to targeted advertising delivery, In order to improve the rate of click-through and conversion, the effectiveness of this algorithm basically determines the company's technical hard power, because you do the algorithm is rotten, you can not make money, not to melt the capital, everyone waiting to eat xiang.

back-end development is mainly proficient in some web architectures, how to do many threads, how to distribute, how to solve the problem of multiple concurrency , etc., if the company is small, the backend research and development may also be part-time system engineers and operations. System Engineer is to do server configuration, do load balancing, do the database distributed building, do the server real-time monitoring and alarm, etc., operation is to maintain the server daily work, incidentally repair computer to do a few network cable or something ...

Front-end research and development is mainly JS and node stream, incidentally, CSS writing. but now the college students more or less misunderstood the meaning of the front-end development, feel that the front-end development and art is a work, resulting in my recent two school strokes in the fundamentals of the front-end talent (or really too much water can not look directly). In fact, the front-end is still quite technical content, if you know a few different browser kernel is how to work is already very powerful, page interaction is also a technical work, make too ugly or force lattice is not high enough, is also an unqualified front-end engineer.

Work for two years in addition to the front-end development of other jobs I have done, if the treatment, the same level is basically the algorithm > back end > Front end, want to go to bat algorithm, no ACM Regional and above experienceIt's not an estimate.
Software engineers in the domestic generic code, because most of the farmers have a title: Software engineer
Software engineers in the United States are very popular, because software engineers are the core of a technical team, with engineering thinking to do software, to think about software, including design, development, debugging all aspects, understand the design patterns, understand the architecture design , not our domestic traditional meaning of the coder
Algorithmic engineers are actually more representative of some scientific research ability of engineers, these people do not appear in the civil software implementation of the process, that is, not too involved in writing code implementation functions, generally in a product at the beginning, to solve technical problems, to provide some technical solutions, but also includes a preliminary algorithm implementation of the program , for example, in X, a Research video processing team , the people will be the core technology of the algorithm to achieve, make a heap of libraries, a bunch of packages, the development team to get these core technologies, the development of practical products bird.
"The following reference: Https://baike.baidu.com/item/%E7%AE%97%E6%B3%95%E5%B7%A5%E7%A8%8B%E5%B8%88"
Research direction: video algorithm engineer, image processing algorithm engineer, audio algorithm Engineer, communication baseband algorithm engineer, signal algorithm Engineer   Current situation at home and abroad: many engineers engaged in algorithmic research in China, but Advanced algorithm engineers are very few , is a very scarce professional engineer. According to the research field, the algorithm engineer can deal with one-dimensional information algorithm in the fields of audio/video algorithm processing, image technology, two-dimensional information algorithm processing and communication physical layer, radar signal processing, biomedical signal processing and so on. In the computer audio and video and graphic image technology and other two-dimensional information algorithm processing more advanced video processing algorithm: Machine vision becomes the core of this kind of algorithm research, there are also 2D to 3D algorithm (2d-to-3d conversion), de-interlacing algorithm (de-interlacing), Motion Estimation Motion compensation algorithm (motion estimation/motion Compensation), de-noising algorithm (Noise Reduction), scaling algorithm (scaling), sharpening processing algorithm (sharpness), super-resolution algorithm ( Super Resolution), gesture recognition (gesture recognition), facial recognition (face recognition). In the communication physical layer and other one-dimensional information field of the algorithm: RRM, RTT in the wireless domain, modulation and demodulation in the field of transmission, channel equalization, Signal detection, network optimization, signal decomposition and so on. In addition, data mining, Internet search algorithm has become a hot trend today. The algorithm engineer gradually develops to the artificial intelligence direction .
The following references: http://www.zmonster.me/2015/10/11/algorithm-engineer.html (thinking about the position of algorithmic engineer) "

The 1th difference is that the "input" of the above problem is very uncertain, and it is difficult to detect and deal with these uncertain factors. For ordinary software, apps, and websites, the so-called input (primarily user-operated) is limited to a finite set , so it can be processed in accordance with well-designed logic, but in the above-mentioned projects, the input data is not guaranteed to be in compliance with the processing (filtering, regularization , transformation)-the so-called "preprocessing" is a necessary part of the system.

The preprocessing of data is very important in the work involved in algorithm post. the core of the algorithm, in the promotion of academia, there are many mature, reliable choice, but these algorithms, often have strict requirements for input data, data preprocessing if not done well, then good core algorithm is often powerless. However, due to the natural instability and complexity of the input data, data preprocessing is often cumbersome and complex, and it is necessary to set up a variety of rules according to the actual business situation and data situation. For some mature areas such as voice, image, the type of abnormal data is limited, so there are general processing methods, so-called "denoising" is the image and speech recognition of the more important preprocessing methods, but the business situation with the product positioning and function of the changing, This requires the algorithmic engineer to have a deep understanding of the specific product's business.

-----

Due to the inability to perform fast iterations, the work strength of the algorithm engineer is not too large (relatively), and the general treatment is good, which is the advantage of this position. In contrast, the work of algorithmic engineers will be more boring, far from the layman's imagination so "cool", and most of the time is doing engineering and tuning, in fact, there is not much time to do exploratory work.

【】
 

Meet the algorithm engineer

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.