返回首页

算法工程师和软件工程师的区别?

233 2024-08-07 06:20 回车巷人才网

一、算法工程师和软件工程师的区别?

算法工程师,前端工程师,大家都是软件工程师。只是细分领域不一样,没有本质区别。

在硅谷,我没听说过算法工程师这个title。Facebook在面试名校PhD的时候也会重点申明来的都得干脏活,不会区别对待。

说说具体的例子。我所在的Facebook Newsfeed Ranking在我13年加入的时候只有不到10个人,大家在做所谓“算法工作”的同时也要负担日常的“非算法工作”,甚至包括代码部署和服务器监控这类偏运维的工作。至于需要自己动手去做数据收集就更不用提了,Facebook第一版记录用户在每个新鲜事上停留多少时间的代码就是我写的,网页端的javascript和后来的Android,算是半个前端了。

说这些不是为了炫耀什么,只是想说明,好的算法工程师必须先是一个好的软件工程师,因为没有什么好的算法是可以脱离工程实践而成立的。

优秀的算法工程师不应自绝于非算法工作,就如同好的软件工程师不应自绝于产品测试。

二、算法工程师和软件工程师的区别在哪里,他们工作?

大数据挖掘工程师需要了解整套数据流入的过程,包括数据的接入、预处理,然后需要知道怎么用数据解决实际的业务问题,说白就是想办法让数据产生价值。

他需要知道一整个数据到业务输出的机制或者说是系统,可能涉及到复杂的算法转化,也可能只是简单的规则转化,或者多个模型的转化组合输出等等,他是一个比较全面而概括性定位。

而算法工程师则不一样,他们的职责我认为更纯粹,他们需要知道如何把现实问题转化为数学的模型,并且把模型调到极致,从而解决问题。所以,算法工程师工作内容更单一,但是更专,需要更好的数学功底。

三、算法工程师和算法研究员的区别?

算法工程师偏向于算法工作的执行,比如算法实施,参数调整,交叉验证等等,主要工作还是干活为主,类似于it民工,两者没有什么区别,执行的工种不一样。

算法研究员更偏向于新算法的研究或者对于旧算法的改进工作,工种更偏向于研发,档次更高。

四、it工程师和软件工程师的区别?

it工程师,IT工程师是从事IT相关工作的人员的统称。它是一个广义的概念,包括IT设计人员、IT架构人员、IT工程管理人员、程序员等一系列岗位。

软件工程师和网络工程师主要是从事的行业不同

软件是从事的软件开放,需求分析,软件架构,运维等等岗位

网络工程师从事的是硬件系统集成、安全的设计、施工、运维等硬件的岗位

五、微软工程师和软件工程师的区别?

微软工程师是微软公司的工程师,软件工程师是软件的工程师。

六、算法工程师工资,算法工程师工资很高吗?

算法工程师各种待遇按工作时间,资历,等不同,差异很大,基本从4500元到15000元不等。

七、it工程师和工程师的区别?

区别是大类和小类的关系。工程师是大类,包含很多行业的技术人员,IT工程师是小类,是专指从事计算机行业的技术人员。IT工程师是指从事信息技术相关工作的专业人员,他们主要负责计算机系统的设计、开发、维护和管理,需要具备较强的计算机技术和编程能力。

八、算法工程师原理?

算法工程师是处理数据的专业人士,他们研究并开发可用于计算机程序的算法。原理是基于数学和计算机科学的基础理论,结合各种技术来实现数据处理、模型构建和性能优化等任务。算法工程师的工作需要了解常用算法的原理,需要掌握数据结构、算法复杂度分析等知识,以及具备编程能力。算法工程师的工作职责是识别问题、设计解决方案,实现这些方案并优化算法的性能。算法的使用和优化是算法工程师的核心任务,他们需要保证算法的准确性、高效性以及可扩展性,以使计算机程序能够高效地进行数据处理和分析。

九、算法工程师简称?

答:算法工程师简称是cuda。

利用算法处理事物的人

算法(Algorithm)是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。

不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法工程师就是利用算法处理事物的人。

十、算法工程师评价?

我认为算法工程师的核心竞争力是对模型的理解,对于模型不仅知其然,还得知其所以然。

于是我把目标检测的经典论文翻来覆去地看,将各种目标检测模型分解成了N个模块,针对每个模块,反复比对各篇论文处理方式的异同,思考各种处理方式各自的优缺点,以及有没有更好的处理方式,比如:

深度卷积神经网络中的降采样总结了降采样的各种方式;

深度卷积神经网络中的升采样梳理了升采样的诸多方法;

关于物体检测的思考简述了anchor free与anchor based的异同、one stage和two stage的区别与联系;

深度学习高效网络结构设计和高效卷积神经网络一览总结了高效网络的设计思路与具体细节;

在anchor free检测器炙手可热的时候,Why anchor?分析了anchor free和anchor based的历史由来,以及各自利弊。

同时对目标检测实践中一些开放式的问题也有一些自己的思考,比如:

关于感受野的总结详述了感受野的计算方式和在应用时需要注意的地方;

目标检测网络train from scratch问题猜想了一下目标检测能够train from scratch的关键,在这篇文章里我质疑了DSOD和DropBlock这两篇论文对train from scratch问题下的结论(当时何恺明那篇讨论train from scratch的paper还没出来,从何恺明后来paper的实验看来,我的质疑是对的)。

上面是把模型揉碎了看,最近开始有更多时间与精力接触除了目标检测以外的任务,于是思考如何将各个计算机视觉任务统一起来,最近有了一点小的想法,该想法形成了一篇简短的文章。

第二阶段

这一阶段我认为算法工程师的核心竞争力在于代码功底好,一则知道各个模型的实现细节,二则能即快又好地实现idea。于是我用pytorch手撸了Yolov2和Yolov3。同时看了不少优秀的开源代码,比如darknet、mmdetection等等。最近正在用pytorch仿照mmdetection撸一个语意分割的训练框架。

第三阶段

最近开始接触各个行业对计算机视觉的需求,我发现一名优秀的算法工程师仅仅对模型理解不错、代码功底不错是不够的,还需要对有计算机视觉业务需求的行业有着较深入的理解。恰好最近看了一篇阿里云机器智能首席科学家闵万里的专访文章,专访里这几段话我深以为然:

在阿里云的时候,我就亲自打造了一个岗位:DTC:Data Technology Consultant。DT有两个含义,一个是数据技术Data Technology,一个是数字化转型Digital Transformation,一语双关。他们像大夫,望闻问切,跟客户一起梳理出业务流程中的痛点,找到优化方式。DTC不只是对行业整体的判断,还要对赛道中的选手体检,有开药的能力。可以把对方的难言之隐梳理出来,定量、优先级排序,然后从整体到细节,一层层结构化分解,最后进入具体执行。你要在传统行业创造新价值,就要搞清楚:什么东西制约了你的产能,制约了你的效率,制约了你的利润率。技术人员今天往产业走,我相信整体遇到的障碍就是如何把技术思维变成以业务需求为导向的技术思维、技术分解思维。

虽然闵万里这几段话里的主体是技术咨询师,但我觉得这也是成为一名优秀算法工程师的必备品质。

总结一段话就是:

算法工程师往产业里走,需要把技术思维转变为以业务需求为导向的技术思维、技术分解思维;

算法工程师需要像大夫一样望闻问切,跟客户一起梳理出业务流程中的痛点,找到优化方式;

算法工程师不仅需要有对行业整体的判断,还需要对客户有体检、开药的能力,可以把客户的难言之隐梳理出来,定量、优先级排序,然后整体到细节,一层层结构化分解,最后进入具体执行;

要在传统行业创造新价值就要搞清楚什么东西制约了产能、效率、利润率。

仅仅输出模型的算法工程师比较容易被替代,更高的追求是输出一整套端到端的系统方案,从与客户一起梳理业务痛点、硬件选型、模型部署环境的规划与搭建、数据采集和标注标准制定、模型选型与设计等等。