算法工程师

职业定义

职业定义:算法(Algorithm)是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法工程师就是利用算法处理事物的人。

相关职业:视频算法工程师、图像处理算法工程师、音频算法工程师、通信基带算法工程师、信号算法工程师等。

任务职责

1. 用机器学习和数据挖掘的方法从海量互联网数据和日志数据中挖掘特征,用于推荐引擎中
2. 对推荐引擎进行开发和优化,支持大数据量、高并发和高性能

知识背景

学历要求
本科及其以上的学历,大多数是硕士学历及其以上

专业要求
计算机、电子、通信、数学等相关专业

专业知识背景
必须掌握计算机相关知识、熟练使用仿真工具 MATLAB 等、必须会一门编程语言

大学课程

C 语言程序设计、计算机组成原理、数据结构、高级语言程序设计、离散数学数据结构、计算机原理与汇编语言、操作系统与应用、计算机网络与应用等

职业技能

专业技能
C/C++ 语言编程、Python、Java 等

通用技能
较强的逻辑思维能力、学习能力、抗压能力

常用工具

开发工具
1. Python 编辑器:Pycharm,Jupyter notebook(Anaconda 中自带的 网页交互式应用程序) 
2. 拉代码、传代码、代码托管:Git、Github
3. 服务器开发必备:熟悉常见的 Linux 操作
4. 数据读取必备:MySQL
5. 模型部署工具:Docker

职业发展

行业发展前景
国内从事算法研究的工程师不少,但是高级算法工程师却很少,是一个非常紧缺的专业工程师。算法工程师根据研究领域来分主要有音频/视频算法处理、图像技术方面的二维信息算法处理和通信物理层、雷达信号处理、生物医学信号处理等领域的一维信息算法处理。另外数据挖掘、互联网搜索算法也成为当今的热门方向。算法工程师逐渐往人工智能方向发展。

个人发展路径
初级工程师、高级工程师、资深工程师、专家、高级专家、资深专家、研究员,大公司会有相应的职级,比如阿里技术序列就对应 P1~P14,校招一般是 P4~P5,本科一般 P4,研究生一般 P5,能力强的可能给到 P6 甚至 P7,但这毕竟是凤毛麟角。P5~P7 是干活的中坚力量,占比比较大,一般一到两年晋升一次。