算法工程师和软件工程师的区别
算法工程师,前端工程师,大家都是软件工程师。只是细分领域不一样,没有本质区别。
在硅谷,我没听说过算法工程师这个title。Facebook在面试名校PhD的时候也会重点申明来的都得干脏活,不会区别对待。
说说具体的例子。我所在的Facebook Newsfeed Ranking在我13年加入的时候只有不到10个人,大家在做所谓“算法工作”的同时也要负担日常的“非算法工作”,甚至包括代码部署和服务器监控这类偏运维的工作。至于需要自己动手去做数据收集就更不用提了,Facebook第一版记录用户在每个新鲜事上停留多少时间的代码就是我写的,网页端的javascript和后来的Android,算是半个前端了。
说这些不是为了炫耀什么,只是想说明,好的算法工程师必须先是一个好的软件工程师,因为没有什么好的算法是可以脱离工程实践而成立的。
优秀的算法工程师不应自绝于非算法工作,就如同好的软件工程师不应自绝于产品测试。
大学学软件工程专业毕业后能当算法工程师吗
谢谢邀请!
作为一名计算机专业的教育工作者,我来回答一下这个问题。
首先,从当前软件工程专业的就业情况来看,本科毕业生从事算法工程师岗位并不多,而研究生从事算法设计岗位的要相对多一些,一方面软件工程专业的人才培养方式更注重代码实现能力,另一方面算法工程师对于学历往往也有一定的要求。
对于软件工程专业的本科生来说,要想成为算法工程师,需要注重三方面能力的培养,其一是基础的算法设计能力;其二是算法实现能力;其三是基于场景的算法设计能力。
基础算法设计能力的培养要从算法设计基础知识开始学起,算法设计虽然从本质上来说属于数学问题,但是学习算法还需要具有一定的逻辑转换能力,算法知识更注重利用数学思维来解决逻辑问题。
早期的算法工程师可以只专注于算法设计,通常对于算法实现并没有严格的要求,而当前很多算法工程师岗位也要求从业者具有较强的算法设计能力,这就要注重算法实现能力的培养。算法实现能力与编程能力有密切的关系,可以在学习算法设计的过程中,同时加强代码实现能力的培养。
算法工程师的场景算法设计能力对于就业有非常直接的影响,当前由于大数据、人工智能等技术正处在落地应用的初期,所以用人单位更注重应聘者基于场景的算法设计能力,这一点在当前的算法岗位复试环节有比较明显的体现。早期的算法设计岗位通常只考察算法本身的知识,但是当前会基于场景来考察算法的设计和应用。
我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!
一般情况下,软件工程专业的并不适合复杂的算法,但不排除个别人对算法比较擅长。主要原因是:
1.算法的本质是数学方法,所以复杂算法一般由擅长数学的人去编写;
2.算法服务于模型,软件的模型归根到底是数学模型,所以精通数学模型的更容易设计和编写高质量的算法;
3.软件工程更偏向研究软件的开发过程,知识面比较广,但是也比较泛泛。
总体说来,软件工程专业中擅长数学的占优势。
应该来说想要从事哪个岗位,要看你到时候面试的情况。
软件工程专业是一个非常好的专业,他对于计算机的学习来说更加偏重于软件方向。在软件学习过程当中,即使学到了很多的编程以及相应的算法。当然如果想要成为一名算法工程师的话,还要更多的研究算法的内涵。
其实说起算法本质上还是一些数学公式啦。所以相对来说你的数学可能也会成为一门考量的学科。一定要非常重视数学这门学科。
把数学学好,把一些常用的算法经过自己去推导。相信你总有一天会成为算法工程师的。