想要从事算法工程师,要掌握什么?
链接:https://www.zhihu.com/question/312955056/answer/2501177554 编辑:深度学习与计算机视觉 声明:仅做学术分享,侵删
作者:芯动的信号
https://www.zhihu.com/question/312955056/answer/2259045816
在要从事算法工程师这个岗位之前,我们一定要弄清楚几个问题,否则就算你从事了算法工作,后面的路可能也不太好走
作者:TechTorch
https://www.zhihu.com/question/312955056/answer/2315721527
上周六我和几位在大厂工作的算法工程师吃了个饭,而且他们也都面试过很多人。正好聊到了从他们的角度了解一名算法工程师都需要具备什么能力。
前排回答其实已经非常的齐全了,我这里就不说具体的技术方面的建议了。我这里主要说一些非技术所需要的,但是很多没从事这个行业的人却没有意识到的点。
需要了解工业界到底要什么
我们在聊天时,他们谈论的最多的就是现在的学生离工业界实在是太远了,根本不知道工业界到底需要什么。大多数人都是看到薪资高就一窝蜂的去学,总想着毕业之后我月薪能有多少多少。
但是实际上很多人去练习算法,但是却没有想过什么是工程化能力。
比如你的语言表达组织能力。比如给你一个project,有一个小组能让你讨论发言,然后让你真正去解决这个问题,然后你debug问题。
这个听起来好像是不难对吧,但是实际上要想完成这个还真就需要工程化能力。
现在有很多人的简历都是很多项目长的一样,就假设可能有个什么大牛在智库上说做了这几个项目做完之后就能找工作。就比如Rose一个车道线检测项目,或者是一个什么车辆的识别和分割问题。那像这种人面试官会认为你做的这个根本就不重要。因为这种人根本不知道他用的是什么,基础根本不行。
那我们现在再来看看大多数人呢?大多数人都是想着给我一个project然后我去run,完事了就ok了,至于中间出的问题你最好爱找谁上找谁,反正别找我。
那现在问题来了,企业招你进来是想让你来debug问题,而不是请你来制造问题。
Debug问题其实最需要的是对基础的掌握,并不是说按照某个project去执行就完事了。因为你不啃基础你很难在日常工作里找到问题,就更不要说debug问题了。
所以建议好好啃基础,锻炼自己工程化能力和debug能力最为重要。
踏实
对的没错,就是踏实。这句话很鸡汤,但大多数人还真就做不到。
现在很多毕业生可能因为学历或者基础不够牢等因素而 去刻意美化自己的简历。实际上这个在算法工程师这个职业还真没必要,很多的东西真的就是一问就知道你行不行。很多人简历上写的东西你去问他他都讲不出来。虚头八脑的肯定谁都不会喜欢。相反,如果在面试的一个小时里面能够实实在在的表现出来他是怎么认认真真的做这件事情的,那这站在企业角度就是非常不错了。
但凡企业想培养人才或者招正经做事情的人,那他一定不会刻意的刁难一个毕业生的,往深了问也只是想知道你的基础怎么样。
所以一旦你踏实下来了,你真的很容易就脱颖而出,因为这年头踏实的人实在是少的离谱。
总的来说这就是我们聊天这么久达成的共识,基本上只要捏能做到这两点,学历差点或者之前项目差点都没事。因为掌握这两点所展现出来的潜力就已经足够找个还不错的工作了。
https://www.zhihu.com/question/312955056/answer/2340533181
业务型算法工程师有3个关键词,业务,算法,工程师,这是三个方向的技能,缺少一环,就会导致发展的失衡。
作者:趣趣童
https://www.zhihu.com/question/312955056/answer/1572220206
在不同的公司里面算法工程师的要求还真就是不一样,就拿开发语言来说有的需要Java,有的需要C或C++,如果是用爬虫来说的话更多的企业现在都喜欢Python。
这就需要一定要有目的性的去做这件事儿,题主究竟想去一个什么样的公司,这个岗位的描述究竟是什么样的。有了目标才好办事儿。当然了前提就是你的基础一定要打好,每天一定要多刷题保持好一个状态。
如果你有心仪的公司那就最好不过了,直接看一下他们招聘算法工程师的岗位描述是什么样,然后去牛客网的牛客题霸上面找到对应的岗位练习题,里面的面试题都是这个公司的面试真题,相对于其他的网站来说还不用花钱,里面还有一个功能就是AI模拟面试功能,在这个功能里面是完全的模拟出互联网公司远程面试的一个场景,里面的考官也是人工智能,能够根据面试者的现场表现给出一个综合得分,多多练习,拿offer的概率大幅度提升。
作者:知乎用户
https://www.zhihu.com/question/312955056/answer/2839018522
个人认为是抽象,逻辑,实现,这三个点。
把问题抽象化,之后分析里面的逻辑链条。在通过仿真或者实现结果的反馈,对问题补充了解。
抽象化和逻辑这块,可以差不多理解成天赋,天赋不够,做算法很糟心,如果无法把问题理解充分,那么只能是隔靴搔痒。天赋够的话,会觉得自己才是整个团队的核心,有种掌控全局的错觉。
实现部分考验的是编程能力,当然要求不用像软件工程师一样程度,只需要能自己把算法部分实现就行,Matlab一般是算法工程师的标配,python也有很多人用。一方面是对算法的验证,另一方面是和其他人对接的时候,能降低沟通成本。
知识储备方面,算法工程师的话,数学是核心。起码,高数,线性代数,概率论,数值分析这些基础的东西必须掌握,最好不是单纯背公式那种,看一些论文的话,最好学下泛函。理解线性代数的正交性会增强对最小二乘的理解,懂了高斯分布特性就可以从概率的角度去看卡尔曼滤波。知道基础的系数拟合的模式对学习机器学习也会有很大帮助。只有懂了基础的,才能真的熟悉并掌握一些稍微深一点的知识。
往期精彩回顾
适合初学者入门人工智能的路线及资料下载 (图文+视频)机器学习入门系列下载 机器学习及深度学习笔记等资料打印 《统计学习方法》的代码复现专辑
机器学习交流qq群955171419,加入微信群请扫码