技术岗位包含:算法工程师、研发工程师、架构师、测试等,研发通常又分为前端、后台、移动等。好的算法工程师一定是好的工程师,好的研发工程师的算法一定不会太差,至少也要熟悉常用的几十种经典算法。通常说算法岗位容易出科学家,而研发岗位更容易出架构师。
算法是解决问题的清晰指令,对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法工程师就是利用算法处理事物的人。
算法工程师岗位要求与价值
算法岗位对数学有更高的要求,模型、计算公式都需要算法工程师来做,研究算法原理、调整参数、优化性能等等,大多数研发工程师做不了这样的事情,就像大多数研发工程师也做不了架构一样。不过也有很多算法工程师是纯数学专业毕业的,可能只会用Matlab这样的工具,他算法跟生产离得更远一点。
算法+数据结构=程序,任何一个环节缺一不可,不应该把这这两个岗位完全割裂开,一个完备出色的微型互联网团队里面,运营最好要懂一些产品,产品最好要懂一些技术,而研发最好要懂一些产品和算法,算法则最好能够写得一手好代码。这样的团队才是最完备和成熟,不容易出现问题。
算法工程师职责更纯粹,需要知道如何把现实问题转化为数学的模型,并且把模型调到极致,从而解决问题。算法工程师工作内容更单一,但更专业需要更好的数学功底。目前市面上大部分招聘算法工程师的岗位,特指机器学习、数据挖掘领域的非确定性算法或解决一些非确定性问题。
算法工程师真的和大数据相关的工程师在工作上存在大量重合。想办法从数据中获得规律,通过规律优化目前业务产生价值。