一、算法工程师常用网站?
算法工程师在各大互联网公司中是比较令人羡慕的岗位,给人一种神秘莫测的感觉,总觉得需要具备很高的天赋或者数理博士才能胜任,但实际只要肯努力钻研,我等凡夫俗子还是有很多渠道可以提升算法能力的,下面列举一些常用的12个算法训练网站:
1.LeetCode
最权威和流行的国际在线算法刷题网站,据说刷完上面题目的人大概可以进谷歌:
2.TopCoder
最富盛名在线算法网站之一,具有很大的国际影响力,很多互联网公司都对该网站的排名非常认可:
知名大厂经常举办算法大赛的平台,参加比赛有机会直接获得大厂offer:
来自战斗名族的在线编程网站,当然可以用英语食用:
5.CareerUp
以职业发展为主线的刷题网站,一边刷题一边完成职业规划:
看名字就知道很牛逼了,不仅可以刷题还有可能被大公司瞧上:
7.LintCode
空前强大的在线编程训练系统,练习、讨论、比赛、挑战:
8.POJ
北京大学在线刷题网站,3000+题在线训练,感觉整个大学都够用了:
9.USTC
中国科技大学在线答题网站,题目不多但质量还可以:
10.ZOJ
浙江大学在线答题网站,3000+题的规模媲美北大POJ:
更多其他学科和岗位干货,可登录‘初学者导航’查看:
欢迎加群讨论:
二、现在算法工程师都有哪些分类?
说明:以下是非专业人士的整理,我按自己的理解对算法工程师进行了分类,不定时更新。
算法工程师相关的专业回答可见SimonS 的知乎 Live - 如何成为当下合格的算法工程师 @SimonS
一、算法工程师简介
(通常是月薪15k以上,年薪18万以上,只是一个概数,具体薪资可以到招聘网站如拉钩,猎聘网上看看)
算法工程师目前是一个高端也是相对紧缺的职位;
算法工程师包括
音/视频算法工程师(通常统称为语音/视频/图形开发工程师)、图像处理算法工程师、计算机视觉算法工程师、通信基带算法工程师、信号算法工程师、射频/通信算法工程师、自然语言算法工程师、数据挖掘算法工程师、搜索算法工程师、控制算法工程师(云台算法工程师,飞控算法工程师,机器人控制算法)、导航算法工程师( @之介 感谢补充)、其他【其他一切需要复杂算法的行业】
专业要求:计算机、电子、通信、数学等相关专业;
学历要求:本科及其以上的学历,大多数是硕士学历及其以上;
语言要求:英语要求是熟练,基本上能阅读国外专业书刊,做这一行经常要读论文;
必须掌握计算机相关知识,熟练使用仿真工具MATLAB等,必须会一门编程语言。
算法工程师的技能树(不同方向差异较大,此处仅供参考)
1 机器学习
2 大数据处理:熟悉至少一个分布式计算框架Hadoop/Spark/Storm/ map-reduce/MPI
3 数据挖掘
4 扎实的数学功底
5 至少熟悉C/C++或者Java,熟悉至少一门编程语言例如java/python/R
加分项:具有较为丰富的项目实践经验(不是水论文的哪种)
二、算法工程师大致分类与技术要求
(一)图像算法/计算机视觉工程师类
包括
图像算法工程师,图像处理工程师,音/视频处理算法工程师,计算机视觉工程师
要求
l 专业:计算机、数学、统计学相关专业;
l 技术领域:机器学习,模式识别
l 技术要求:
(1) 精通DirectX HLSL和OpenGL GLSL等shader语言,熟悉常见图像处理算法GPU实现及优化;
(2) 语言:精通C/C++;
(3) 工具:Matlab数学软件,CUDA运算平台,VTK图像图形开源软件【医学领域:ITK,医学图像处理软件包】
(4) 熟悉OpenCV/OpenGL/Caffe等常用开源库;
(5) 有人脸识别,行人检测,视频分析,三维建模,动态跟踪,车识别,目标检测跟踪识别经历的人优先考虑;
(6) 熟悉基于GPU的算法设计与优化和并行优化经验者优先;
(7) 【音/视频领域】熟悉H.264等视频编解码标准和FFMPEG,熟悉rtmp等流媒体传输协议,熟悉视频和音频解码算法,研究各种多媒体文件格式,GPU加速;
应用领域:
(1) 互联网:如美颜app
(2) 医学领域:如临床医学图像
(3) 汽车领域
(4) 人工智能
相关术语:
(1) OCR:OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程
(2) Matlab:商业数学软件;
(3) CUDA: (Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台(由ISA和GPU构成)。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题
(4) OpenCL: OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU,GPU或其他类型的处理器组成。
(5) OpenCV:开源计算机视觉库;OpenGL:开源图形库;Caffe:是一个清晰,可读性高,快速的深度学习框架。
(6) CNN:(深度学习)卷积神经网络(Convolutional Neural Network)CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。
(7) 开源库:指的是计算机行业中对所有人开发的代码库,所有人均可以使用并改进代码算法。
(二)机器学习工程师
包括
机器学习工程师
要求
l 专业:计算机、数学、统计学相关专业;
l 技术领域:人工智能,机器学习
l 技术要求:
(1) 熟悉Hadoop/Hive以及Map-Reduce计算模式,熟悉Spark、Shark等尤佳;
(2) 大数据挖掘;
(3) 高性能、高并发的机器学习、数据挖掘方法及架构的研发;
应用领域:
(1)人工智能,比如各类仿真、拟人应用,如机器人
(2)医疗用于各类拟合预测
(3)金融高频交易
(4)互联网数据挖掘、关联推荐
(5)无人汽车,无人机
相关术语:
(1) Map-Reduce:MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。
(三)自然语言处理工程师
包括
自然语言处理工程师
要求
l 专业:计算机相关专业;
l 技术领域:文本数据库
l 技术要求:
(1) 熟悉中文分词标注、文本分类、语言模型、实体识别、知识图谱抽取和推理、问答系统设计、深度问答等NLP 相关算法;
(2) 应用NLP、机器学习等技术解决海量UGC的文本相关性;
(3) 分词、词性分析、实体识别、新词发现、语义关联等NLP基础性研究与开发;
(4) 人工智能,分布式处理Hadoop;
(5) 数据结构和算法;
应用领域:
口语输入、书面语输入、语言分析和理解、语言生成、口语输出技术、话语分析与对话、文献自动处理、多语问题的计算机处理、多模态的计算机处理、信息传输与信息存储 、自然语言处理中的数学方法、语言资源、自然语言处理系统的评测。
相关术语:
(2) NLP:人工智能的自然语言处理,NLP (Natural Language Processing) 是人工智能(AI)的一个子领域。NLP涉及领域很多,最令我感兴趣的是“中文自动分词”(Chinese word segmentation):结婚的和尚未结婚的【计算机中却有可能理解为结婚的“和尚“】
(四)射频/通信/信号算法工程师类
包括
3G/4G无线通信算法工程师, 通信基带算法工程师,DSP开发工程师(数字信号处理),射频通信工程师,信号算法工程师
要求
l 专业:计算机、通信相关专业;
l 技术领域:2G、3G、4G,BlueTooth(蓝牙),WLAN,无线移动通信, 网络通信基带信号处理
l 技术要求:
(1) 了解2G,3G,4G,BlueTooth,WLAN等无线通信相关知识,熟悉现有的通信系统和标准协议,熟悉常用的无线测试设备;
(2) 信号处理技术,通信算法;
(3) 熟悉同步、均衡、信道译码等算法的基本原理;
(4) 【射频部分】熟悉射频前端芯片,扎实的射频微波理论和测试经验,熟练使用射频电路仿真工具(如ADS或MW或Ansoft);熟练使用cadence、altium designer PCB电路设计软件;
(5) 有扎实的数学基础,如复变函数、随机过程、数值计算、矩阵论、离散数学
应用领域:
通信
VR【用于快速传输视频图像,例如乐客灵境VR公司招募的通信工程师(数据编码、流数据)】
物联网,车联网
导航,军事,卫星,雷达
相关术语:
(1) 基带信号:指的是没有经过调制(进行频谱搬移和变换)的原始电信号。
(2) 基带通信(又称基带传输):指传输基带信号。进行基带传输的系统称为基带传输系统。传输介质的整个信道被一个基带信号占用.基带传输不需要调制解调器,设备化费小,具有速率高和误码率低等优点,.适合短距离的数据传输,传输距离在100米内,在音频市话、计算机网络通信中被广泛采用。如从计算机到监视器、打印机等外设的信号就是基带传输的。大多数的局域网使用基带传输,如以太网、令牌环网。
(3) 射频:射频(RF)是Radio Frequency的缩写,表示可以辐射到空间的电磁频率(电磁波),频率范围从300KHz~300GHz之间(因为其较高的频率使其具有远距离传输能力)。射频简称RF射频就是射频电流,它是一种高频交流变化电磁波的简称。每秒变化小于1000次的交流电称为低频电流,大于10000次的称为高频电流,而射频就是这样一种高频电流。高频(大于10K);射频(300K-300G)是高频的较高频段;微波频段(300M-300G)又是射频的较高频段。【有线电视就是用射频传输方式】
(4) DSP:数字信号处理,也指数字信号处理芯片
(五)数据挖掘算法工程师类
包括
推荐算法工程师,数据挖掘算法工程师
要求
l 专业:计算机、通信、应用数学、金融数学、模式识别、人工智能;
l 技术领域:机器学习,数据挖掘
l 技术要求:
(1) 熟悉常用机器学习和数据挖掘算法,包括但不限于决策树、Kmeans、SVM、线性回归、逻辑回归以及神经网络等算法;
(2) 熟练使用SQL、Matlab、Python等工具优先;
(3) 对Hadoop、Spark、Storm等大规模数据存储与运算平台有实践经验【均为分布式计算框架】
(4) 数学基础要好,如高数,统计学,数据结构
l 加分项:数据挖掘建模大赛;
应用领域
(1) 个性化推荐
(2) 广告投放
(3) 大数据分析
相关术语
Map-Reduce:MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。
(六)搜索算法工程师
要求
l 技术领域:自然语言
l 技术要求:
(1) 数据结构,海量数据处理、高性能计算、大规模分布式系统开发
(2) hadoop、lucene
(3) 精通Lucene/Solr/Elastic Search等技术,并有二次开发经验
(4) 精通Lucene/Solr/Elastic Search等技术,并有二次开发经验;
(5) 精通倒排索引、全文检索、分词、排序等相关技术;
(6) 熟悉Java,熟悉Spring、MyBatis、Netty等主流框架;
(7) 优秀的数据库设计和优化能力,精通MySQL数据库应用 ;
(8) 了解推荐引擎和数据挖掘和机器学习的理论知识,有大型搜索应用的开发经验者优先。
(七)控制算法工程师类
包括了云台控制算法,飞控控制算法,机器人控制算法,导航算法工程师
要求
l 专业:计算机,电子信息工程,航天航空,自动化
l 技术要求:
(1) 精通自动控制原理(如PID)、现代控制理论,精通组合导航原理,姿态融合算法,电机驱动,电机驱动
(2) 卡尔曼滤波,熟悉状态空间分析法对控制系统进行数学模型建模、分析调试;
l 加分项:有电子设计大赛,机器人比赛,robocon等比赛经验,有硬件设计的基础;
应用领域
(1)医疗/工业机械设备
(2)工业机器人
(3)机器人
(4)无人机、云台控制等
三、算法工程师的工作职责有哪些?
看似:算法研究、实现和优化,负责特定需求的深度学习算法解决方案;负责针对业务问题场景,设计和实现具体应用的深度学习模型/策略/算法,改进业务;
研究文本、图片、视频等多种内容数据的语义理解的算法和技术,跟进业界深度学习的研究成果,开发/提升相应的算法任务
实则:提出技术方案 -> 收集数据 -> 预处理数据 -> 撰写特征工程 -> 模型训练 -> 调参 -> 看结果 -> 调参 -> 看结果 -> 重新收集数据 -> 预处理数据 -> 收集更多数据 -> 调参 -> 调参 -> 调参 -> 调参 -> 换个公司继续,循环往复
四、在哪里可以找到算法工程师的兼职?
这类核心技术的外包或者兼职很少很少,可以去部分小企业做一下技术咨询
五、工业工程师和工艺工程师有什么区别?
我就是一个学IE的,做了工艺。我来讲讲工艺吧。
工艺,主要是将图纸变成零件,或产品,属技术工种。讲究使用何种加工方法、装配方法可达到最优的质量以及最高的效率。详细的话,如何选择加工方式、刀具、设计工装、甚至钳工、焊接、喷漆、装配工艺,都在工艺工程师的工作范围内,只是不同领域侧重点不同。要懂得各种机床的操作方式,当然甚至编程,也需要学。
招工艺的单位很多,想找一个好的工艺工程师,很简单,一抓一大把,想找一个好的IE工程师,很难。另,如果真的做得好,薪资待遇也不是一个级别的。建议你还是坚持自己的专业,加油。
刚看了另一篇不错,分享给你https://www.zhihu.com/question/27881225
六、工业工程211硕士,女,毕业IE工程师VS质量工程师?
不建议做质量工程师,首先,不管哪个行业的质量工程师除了专业知识,数据分析,本职工作监督检查,更多的还有推动多部门改善,其他部门配合还好,不配合的真的累到崩溃,处理不完的各种客诉。最后就是协调组织各部门去开展工作,确实比自己亲自做一件事还复杂。当然,研发技术部门靠谱的会好多了,我做的就是质量工程师,确实协调改善比做事难多了,总有人不按照标准违规操作,跟你不在一个节拍。所以,个人觉得IE比较好。做好标准提出方案,让其他部门执行就可以了。
七、想成为算法工程师必须要有高学历吗?
本人目前国内某大厂实习,说一下我目前实习所在的组里大家的学历情况吧。LD,985本top2硕博。员工1:985本海外硕。员工2:本硕不详,中科院牛所博士。员工3:top211本985硕。员工4:本科不详985硕。员工5:本科不详,985硕。员工6:985本硕。员工7:top5本,中科院牛所硕。员工8:985本,海外top博士。实习生1,2均为:985本,本校直博。实习生3:211本,C9硕士在读。实习生4,985本,海外top博在读。我最垃圾:双非本,985硕,985博在读。
再说一下论文情况,除了我们实习生以外,其他的员工人手都有至少一篇顶会,有的人有多篇(3篇以上)。
结论:学历是敲门砖,确实能力更重要,但是没有高学历,你去敲门都鲜有人理你。能用学历把门敲开,人家才能看到的你的能力。
八、工业工程师和电气工程师有什么区别?
工业工程偏管理,本质上是商科,电气工程偏技术,本质上是工科。
举例来说,我在国外学习工业工程的具体专业课有 工程经济学(Engineering Economic) ,人机工程学(Ergonomics),先进制造体系(Advanced Mfg system), 设施规划 (Facility planning) ,全员生产维护 TPM ,价值工程 (Value Engining),工作评定 (Work measurement)。
研究的课题有人机工程(关注度比较高和大众比较贴近的有 人体工程坐椅,工作环境和设施设备设计使人不容易疲劳,提高工作效率),物流和人流动线合理规划(地铁站进出口闸机位置,人流动线布局,肯德基点餐台布局,出餐的物流动线),为商业决策提供工程经济的分析和数据等等。
毕业后对口的工作岗位是工业工程师。
九、工业工程毕业的能不能评初级工程师?
工业工程一般来说是可以评的,评工程类职称需要理工科专业毕业。
每个地区的规定不同,具体你可以去本地的人力资源和社会保障网或者联系职称办。
十、算法工程师如何应对做算法策略的不确定性;比如没效果,这时绩效怎么保证?
这个可真是个好问题。结合我自己的经历说一下这个事情。
这个问题如果可以在细化一下,“在一个绩效周期内,如果算法迭代没效果,如何保证绩效“?
构成这个问题的要素可以抽象为:“人”、“事“、”老板“。
人
- 当前的职级
- 历史的能力表现
事
- 新事情 or 老事情
- 探索性的 or 确定性的
- 熟悉的 or 不熟悉的
老板
- 务实的(经历丰富,工程、广告、推荐、产品)均有涉猎
- 短视的,无判断力的
这个时候你会发现,这三个维度一组合,也是要原地爆炸的。所以算法的不确定性和绩效不是二元对立的,而是需要分情况讨论的。
下面,就是怎么看待这两者的联系
核心:任何一个人,在做一件事之前,都要设定两个预期,一个对你自己、一个对你老板。
优秀/靠谱的定义:清楚地阐述现实目标和实现目标的过程
对事的原则:
- 对结果、指标负责,其本质是对自己逻辑的负责,即在验证自己的逻辑是否自洽
- 没有得到预期的结果和没有好好工作是两码事
- 结果的原因、条件、分析过程更重要,因为结果只是表象,其内在的原因与条件才是指导你后续迭代的根基
仅考虑事情时,以上三点意味着“尊重事实”
但是仅仅考虑事情是不够的,你需要确认你和你老板的关系
关系的原则:
- 你老板信任你的能力
- 你信任你的老板
- 你老板知道你信任他
如果这三点不满足,那么建议你直接换组!
关于绩效
- 一个绩效周期不能说明什么,当选择了难度大的事情时,如果成了回报是更大的(这是一个自主选择的过程)
- 做事情之前,提前沟通好预期要达成的状态,如果过程没有问题,结果有问题,这个责任一般不在执行的人。(这里需要注意不同级别考核的不同,一般而言,越高级的越需要对结果负责,初级的则需要对过程负责)
- 相关评论
- 我要评论
-