今天又被BAT的算法工程师拒了,是的,你没有看错,是被算法工程师拒了。或许,更准确的说,被腾讯的算法工程师拒绝了,应该是第四或第五。这是没办法的事。在大深圳,要找数据挖掘和算法人才,基本上除了腾讯这个算法造血基地外,没有其他工厂,而且比较少。就像高中生表白一样,我说我“喜欢你”,然后你说“我仔细想想,觉得我们在一起不太合适”,/捂脸,好尴尬~~听到这里,可能很多小伙伴还是有点懵,我大概描述一下剧情吧。该部门正在招聘数据挖掘工程师。当然,你也可以算是算法工程师。毕竟深圳能看到的大公司也就只有大腾讯了。所以通过条件的初步筛选,基本上大部分都是鹅厂的。(当然还有其他渠道)。由于我要找的是一个比较中高级的算法工程师,基本满足以下条件,基础通过的可能性还是挺大的:1三到五年的工作经验,就是经历过足够多的项目,很多算法,或者一个单一方向有很多积累。2出身鹅厂,有背景背书。3项目经验与岗位要求相匹配,方向不会偏离,技能复用性比较高,填坑会比较熟练。如果能满足以上几点,再加上人品没问题,思维不僵化,性格也好,基本通过的概率还是挺高的。但关键是人们不会放弃它。当然,跳槽本身就是一种双向选择。你认可他们的经验、技能、性格、性格等一系列属性,他们也需要认可你的条件,包括公司方向、团队状况、项目状况、薪酬福利等等一系列的东西。只有“两个人都心满意足”,这件事情才能继续下去。而我可以保证的是,我们的数据团队绝对是一个优秀的团队,有自己的思维、创造力和想象力,如果你能加入我们部门,你做的事情也是有意义和有意义的。相对较高的自主性和挑战性,会有足够的空间来释放你的“小宇宙”。至于其他的,我的可控性确实差了点,但还是可以提一些建议的。比如公司的方向。他们说2017年是内容变现元年的时候,我们公司2016年就已经开始做这件事了,至于我是否同意这个事情,至少我还在工作,也就是说目前还是认可的。而且这个职位给的薪水应该比其他职位高,不会低于行业水平(马丹,比我的还多),再加上中小型公司的乱七八糟的福利,所以不能'不能说好,绝对不坏。另外,据我了解,鹅厂给的月薪其实不是很高(中等),至少是普通工程师级别(T2-3,T3以上可以达到leader级别)那水平不是很高,就算是算法方向的,但是年终奖也有很多个月,但是年终不是一个固定的值,是吧,如果整体算算的话,并没有想象中那么离谱。至于其他的,好吧,我就不一一细说了,因为这篇文章的主题不是这个(你不会被骂,说了半天,你居然跟别人说主题是其他,吓到我了)~~其实我今天想讲的话题是,作为算法工程师或者数据挖掘工程师,大厂和中小厂的本质区别是什么,或者大厂的数据挖掘工程师在追求什么??也许有人会说,废话,当然是黄金了。能不能不要这么庸俗,能不能说点有建设性的,比如追求技术什么的(其实我也喜欢黄金),追求理想之类的。我们先来看看大厂的算法工程师一般是做什么的。当然,我没在BAT工作过,但是和很多大厂的朋友聊过很多,所以还是知道一些的,这里所说的算法工程师只是指普通部门的普通算法工程师,比如腾讯吧不在人工智能实验室讨论算法系,读博士。而且,这也算是我自己的理解吧,没有对错之分,你同意不同意都无所谓,所以如果有朋友要挑这个刺吐槽一下就好了。大厂搞算法、数据挖掘的专业大部分都适合,但普遍存在“螺丝钉”的现象。注意,这里的“螺丝钉”不是贬义词,而是一个比较中性的词。一方面,意味着“钉子”钉得够深,意味着其专业性有保障;比较窄,对于鹅厂的T2-2/3这样的普通工程师来说,这些特点比较明显。当然,凡事都有例外,我这里描述的只是我观察到的一般情况。当然,也许我错了。不要不满,我们举个例子说说。以用户画像这个话题为例,相信鹅厂很多相关部门可能都在做,比如书平,比如广告部,比如其他XX部门,甚至一些业务部门都有自己的一套楷模。没有办法解决这个问题。谁让用户画像在上层业务方向上如此可扩展?只要标签挖掘准确,后续上层业务能做的事情太多了。用户画像一方面是架构的设计,另一方面其实是它的本质。其实还是信息标注。关键是每个标签如何标注,以及不同标签的层级逻辑。说到底层实现,其实最常用的就是各种分类算法。不同的是数据来源不同,处理方式不同,使用的算法不同等等。在鹅厂里,用户画像等研究方向一般都是几个人一组完成的,下面就结合这个实际操作简单说一下以上观点。这个群体不需要关注数据从哪里来,因为他们接触不到,所以他们肯定不会参与这些基础数据的收集、聚合、清洗。因为这些基础原始数据已经被合作部门或者其他团体加工过提供给他们了。说到算法,很多时候不需要自己去实现各种算法,因为前人已经封装了满足业务的算法库供自己调用(这里大厂一般更喜欢自己写封装)一些算法库来实现定制化和高可控性),即使没有,也有其他的小组或部门专门做这个。当他们写的分类器需要实际运行大量数据时,已经有别人搭建的现成平台供他们调用并实际运行结果。甚至,他们不需要做工程工作,因为他们的工程流程已经打包好了。他们只需要配置分类器的服务入口,配置处理流程,直接提交任务即可。他们不能碰它。数据在里面是怎么流动的,实际的工程流程是怎么样的。OK,至此,该放的tag都出来了,画像就搞定了,sothen,然后就结束了。他们的画像被移交给其他团体或部门。至于人像是怎么用的,用在什么场景,怎么改,他们不知道,或者不关心,及时ABtest得到效果。,进一步优化指导。纵观整个过程,他们会遗漏很多东西,比如数据源的处理改造、集群平台层面的认知、工程化的实际过程、算法解决的实际业务问题等等。这就是我说的,技能点会比较单一,范围比较窄的原因。当然,也不是没有优势。比如他们接触到的数据的量级会更大(但是如果单从人像的角度来看这并不是一个很大的优势,反而在前期的数据处理和后期更能感受到)工程链接),其次,专攻算法的时间会多一些,在某个点上会比较深入。比如我这种半路出身,又不是蓝翔毕业的渣男,是绝对不敢在他们面前讲算法理论的,但不代表不能讲。比如在实际问题和算法模型的转换上,在实际业务模型的量化上,在整个数据流程的结构上,我相信我可以把大部分人秒成渣,因为我有足够的接触和理解,看够了,想够了。比如在采访鹅长算法工程师的时候,我曾经质疑过他们广点通用户画像算法的工程部分。他们以监督方式训练分类器后,将其部署为分类器服务,只需调用该服务即可获得分类结果。而他们实际的算法工程流程是,HDFS->XX消息队列(这个名字他们自己写的忘记了)->Storm,然后调用Storm中的分类器服务,最后处理所有的数据结果。我当时就问了:你们的数据每天都是周期性的从其他部门离线导出,为什么要设计成这种模式?明明是离线批量数据,还得用MQ加Storm做流处理方式。这么大的数据量什么时候才能跑完一天的全量呢?确实,这种模式其实就是一个离线批量计算的过程。批量计算过程中调用分类器服务,可以离线运行。当然,前提是你的分类器服务需要支持的并发量,或者性能足够好。这似乎有点交叉话题。回到之前的话题,不仅是用户画像的例子,还有很多其他部门。比如一些提供基础数据的部门,只负责大规模的数据清洗和正则化。至于这些数据以后会怎么用,他们其实并不关注。至于平台运维部门,他们只关心平台有没有问题,资源够不够用,并不关心集群里跑的是什么业务。一些上层部门,比如用人像做广告的部门,不关注人像是怎么生成的。只要画像的精度足够准确,他们只需要关注上层广告算法的逻辑即可。因此,你会发现每一块都是分开的,你只需要专注于某一点。对于普通人来说,眼睛很难看清整个过程。“螺丝”虽然深,但如果层次不够,那真的只是一个“螺丝”而已。那么,我们来看一下同一个岗位,中小企业的情况是怎样的呢?首先,他们首先要解决的是业务问题,这是业务驱动的。比如我们还需要广告的精准投放,那么我们就需要算法工程师,或者数据挖掘工程师,来拆解这个业务目的,把实际的业务问题转化为模型问题。广告的精准投放也是在标签的匹配上实现的,以及上层各种筛选排序相关的逻辑。往下走,标签会在人像层面实现,所以我们要解决人像怎么画。画人像,我们不仅要关心使用的算法,还需要关心如何获取数据,如何预处理数据,进而如何对算法进行工程化。我们需要考虑数据的批处理和算法的实际使用。工程中的数据规模、并发等一系列问题。在这些过程中,因为很难有封装好的算法库,或者没有时间封装算法,只能上传开源的东西,所以需要对外部信息有足够的了解,或者有能力快速从外部世界获取知识。各种封装肯定会差一些,所以你难免会涉及到一些集群操作,所以一些底层的linux操作是避免不了的。因此,一般中小企业的算法工程师会额外接??触其他知识,而不是对算法做足够的研究,他需要了解数据处理的过程,需要做算法研究和建模,需要懂Business,需要快速学习,需要学习实际的生产工程等等。其实我一直下意识的把算法工程师和数据挖掘工程师分成两类职业。在我看来,算法工程师更多的是专注于某个研究点,就是如何把明确的问题做的更细化,这有点像大厂里搞算法的同志们。至于数据挖掘工程师,显然会接触到更多的东西,会以实际业务为导向,结合算法模型来解决实际问题,这其中必然会涉及到各种数据处理等一系列问题,工程框架和工程。算法会只是其中的一部分,更像是中小公司的人用算法来解决实际问题。那么,这两个人谁更好呢?嗯,其实这个问题有点傻,没有好坏之分。一个更专注,可以更彻底地解决问题;另一个比较复合,可以快速转化实际问题,效率更高。比如现在被大肆炒作的人工智能,就是拼命研究的一个研究方向(很大一部分时间,他们并不关注当前的研究是否会带来直接的商业价值),那么他们又怎么想呢?做需求的一定是高度专业敬业的人才,所以BAT的人工智能实验室什么的都是博士集中营。但对于一般的中小企业来说,更多的是为了快速解决实际问题。注意这里有两个关键词,“快速”和“解决实际问题”。然后,他们必须在有限的时间窗口内使用算法来解决实际问题并提高效率。所以对于高技能的合成还是有一定的要求的。他们需要整个挖矿项目流程,而不是单一算法的点。最后再分析一下最后一题。算法类似鹅厂T2-2/3级别的同志,从大厂出来的目的是什么?或者我们能得到什么?我们知道鹅厂的T2-3的数量很多,但是到T3级别的时候数量就减少了,因为T3可以当领导,但是狼多肉少,逃跑是很多人的必经之路。其次,个人技能加点就像玩游戏一样。如果在一两个技能点上拼命加点,可能对很多特定的情况都有好处。然而,很多时候我们生活的环境是多变的,我们面临的事情也是复杂多样的。因此,当我们在某个领域积累了足够的积累之后,我们应该适当地学习更多的技能来提高我们的综合素质,提高自己在外界的生存能力。我觉得未来除了一些特殊的领域,对大多数人来说,在一个方向上有深度,在其他方面有广度的复合型人才,肯定会很吃香。所以,对于即将从大厂出来的小伙伴们来说,是的,外面的世界很精彩,是时候去看看了。接触不同的人和事,最重要的是找到一份更有控制力和成就感的工作,加上自己欠缺的技能,去感受一个更开放的世界。【本文为专栏作家“黄崇元”原创稿件,转载请联系原作者】点此查看该作者更多好文
