大约整理出以下几个疑问:
1、 软件工程师、算法工程师、大数据工程师区别
2、 一个算法工程师的日常
3、 算法工程师有哪些类别、涉及的技术、作用领域
4、 算法工程师的段位怎么分
5、 算法工程师常见的面试问题
这次我们先来看看第一个问题。
软件工程师、算法工程师、大数据工程师有什么区别?
从事软件开发相关工作的人员的统称。
其工作内容会比较宽泛,从编程到算法,软件整体架构到编码的实现,都是需要涉及。
而事实上,我们常规所说的软件工程师,其狭义的定义实际上软件研发工程师、程序员等,他们是主要进行软件架构和编码实现,会使用我们常常听到的JAVA、PHP等开发语言。
下附目前市场上常规的软件工程师的类别:
大数据工程师,其实上并不存在这样的岗位。
它实际上是与大数据相关联的一类岗位的总称。
跟大数据有关的职位主要分成2大类:一类是应用类、一类是系统类。
应用类
偏向于数据分析、数据应用,比如我们经常讲到的数据分析、数据挖掘,均属于这个类别。这类职位主要的功能是提取数据、挖掘数据中隐含的业务信息,支撑企业决策。
这个类别中的大数据算法,其实我们基本上可以理解算法工程师。
这是唯一跟算法工程师有交叉的部分
系统类
偏向于系统开发,比如我们经常听到的hadoop、云计算,就是属于这个类型。这里其实主要是hadoop(一个分布式系统,简单理解为另外一种和Windows或者是MacOS一样的东西)偏多,开发语言一般是Java。而另外数据管理员(DBA)和大数据运维工程师,其实,还是原来的DBA,没有变化。
他们的职责会更纯粹,他们需要知道如何把现实问题转化为数学的模型,并且把模型调到极致,从而解决问题。
算法工程师工作内容更单一(其实有时候,他们只是在思考问题,而不是真的闲),但是更专,需要更好的数学功底。
不过,目前市面上大部分招聘算法工程师的岗位,特指机器学习、数据挖掘领域的非确定性算法或解决一些非确定性问题(见名词通俗解释)。
因此,有时候所谓的算法工程师,真的和大数据相关的工程师在工作上存在大量的看起来『重叠』。因为,这个工种是想办法从数据中获得规律,通过规律优化目前业务、从而产生价值。
算法工程师大致分成以下2类,其中建模类的算法工程师,实际上的工作会和大数据相关的岗位相似:
上述简单从职位的定义上做拆解,其实这3个岗位,其工作职责分别处于不同的阶段和层次。
更多时候,一个完整优秀的产品,可能需要上述几个岗位协同进行配合工作。他们的工作流大约是这样的。
这张图大致描述了不同岗位之前是在什么时候介入工作相互配合的。
其实算法工程师,也可能是数据挖掘工程师。
其实生活中有非常多跟算法有关的现象,只是我们没有发现而已。
对于我们不是做技术类工作的人而言,我们只是不知道其细节,但我们应该要定位到其位置,这样我们在进行人才招聘的时候,才更容易做到心中有底。