又一个人生的分叉口——研发or算法

眼看秋招提前批一个个开启,还没选定方向的自己是真的有些着急了,害,以前听前辈说不建议算法和研发都搞的原因是容易两个都不精,结果现在大概都能进到心仪的公司,但要挑一个作为职业生涯的起点,委实是个难题。

困扰了快一个月了,选到自闭,最近一个月平均每10天会有条相关的pyq🤦‍♂️

拖拖拉拉的可真不是我的风格,不准备再拖下去了,昨天老板得知我想换去工程也找我聊了一小时,今天冷静下来再好好梳理下利害关系,确定下来后,就不再回头啦

其实心里已经有答案了,只是想确认自己是否真的想清楚了,也想给有类似困惑的学弟学妹们一些启示

About 算法

老板当时是这样劝我继续做算法的,梳理如下:

a.客观的角度:

  1. 算法更有挑战,对应人才开的价格更高,看看阿里星有多少是算法多少是研发
  2. 算法的价值更大,很多工程问题是由算法引发出来的
  3. 公司更重视,算法比工程晋升容易
  4. 算法肯定存在不确定性,但是,都是有套路的,掌握方法大概率是能出成果的
    1. 也正是因为这个不确定性,能够拉开和别人的差异,能够做出亮眼工作
    2. 刚起步没有掌握套路时,确实容易有比较强的挫败感

b.主观的角度:

  1. 老板说他见过很多从算法工程/数据/业务工程想转算法的同学,但算法转研发的我是第一个
    1. 给我说了大部分人想转算法的原因是:需求做多了,确定性很强,和别人能力差异不明显,想转算法的都是自认为聪明的/数理基础好的
  2. 算法换到工程还容易些,但工程到算法很难,举了个社招的例子,做算法工程的老哥如果面工程能拿7,到他这面算法最多给到6,让我好好想清楚

然后说完了又说我是适合做算法的,我又追问了具体的原因,他说有这些素质的人适合做算法,答:

  1. 数理基础好的,包括推理、逻辑分析
  2. 发散性思维好的

结合自己工作的情况,确实这两点对做算法而言很重要,思维是否足够发散决定了能否在现有领域提出新的idea,而数理基础则是讨论这个idea可行性的必要保障

最后老板说,假如我真的想转工程,建议我不要做偏业务的,挑战小,难拿到亮眼工作,要做也做偏底层些的,比如引擎,但这和我自己的技术栈/过往经历又不太搭,底层一般都是C/C++

About 工程

在这阐述下我的一些想法吧,针对上面提到的几个点:

  1. a1确实是现状,但要想拿到更高薪水与发表的paper质量密切相关,竞赛的话语权并不重,只要0 paper基本就告别这些啦,而且即使实习可以投出一篇顶会paper,但因为时间的关系也并不能在秋招结束之前得到结果

    1. 再从薪资的角度出发,现在低级别算法和研发的差距越来越小,以阿里为例,去年同级别的校招算法只比开发高了1k,5%,一年下来可能也就少一个月工资,这点差距去个绩效好的部门分分钟抹平
  2. a2不置可否

  3. a3晋升的话,可能确实算法比较容易,不过个人自身的影响因素可能更大(嗯,老板影响也很大),从我的角度出发还是做自己擅长的吧

    1. 这里有个点是说,算法的老板感觉并不在意工程上的实现,所以我工程的优势发挥不上,但反过来,工程的老板不一样,如果你能发掘出一些算法能用的上的地方,稍微搞一搞,这不就好起来了嘛

      从老板的角度出发,算法会点工程没啥,工程会点算法就挺不错

  4. a4的不确定性这,确实双刃剑,做的好的人可以很快与其他人拉开差距,但做的不好的呢?我现在了解到算法内部的竞争还挺激烈的,都说面算法神仙打架,那进来了之后呢?大家都是顶会/顶赛/顶校,是要和神仙打一辈子架的,做过那么多算法相关的事也大概有数在和同行竞争的时候是否能够脱颖而出

    校招面试不是终点,仅仅只是个起点👊

  5. b1的话,首先大流的选择并不一定是对的(羊群效应),其次我老板作为算法的leader,他能接触到的当然都以工程转算法为主,算法转工程找的也是别家工程的老板不是。。。

    1. 后来我反驳说我有个也是阿里的学长干了一年算法,后面跳去了工程,老板回我:你接触的人都还和你差不多岁数,可能他们自己也还有和你一样的迷惑,是不准确的哦,emm这个说法也有道理
  6. b2,社招之后无论是算法转工程还是工程转算法都难,代价都很大,校招决定了之后就别回头了吧

  7. 其实最让我在意/犹豫的是老板说的最后一个点:偏业务的工程挑战小,难拿亮眼工作,这个我现在能想到的解法就是,首先不去太没挑战的部门,其次用自己的算法能力去赋能,去创造差距

    1. 感觉这话说的也有点片面,这不等于否认了做研发的高p们嘛😌

最后

从写作的文风也能看出心里偏向的选项了,每一点都在试图找反驳的点,害,心里想干啥还没点数吗

大概最想让我转工程的原因有两个吧,按优先级排序如下:

  1. 我的算法能力可以赋能工程,而反过来却不行,再直白些,我觉得我做工程能取得的成绩会大于算法
  2. 工程的确定性,或者绩效/晋升的确定性
  3. 也算给自己找个后路,要是以后30+了想跳去外企,研发比较容易,外企在国内的算法很少

其实迟迟下不了决心的很大原因还是 当大家都想去算法,而你放弃了这个大家都追求的选项,这个是很难的,几乎所有人听闻都会问你为什么,而研发转算法就不会有人过问。。。现实哈哈,想到自己以前保研选学校,大家都说去交大,然后我偏偏选了更容易的选项,不过我觉得当时的决定非常地正确,至少从现在来看是如此

害,选来选去,我觉得说不后悔是不可能的,没有走过的路永远会更好,至少follow your heart吧

最后贴一个老哥的回复,深感赞同:

说一下我的看法吧,仅供参考。
算法的特点是投入大风险高,赢者通吃。算法对数学能力,开发能力,独立研究能力都有很高的要求,同时对于平台(实验室或者公司)的依赖性也更强。能力强,能把算法落地到项目中的算法工程师在市场上溢价很高,供不应求,但是普通水平的算法工程师在市场上处境比同等水平的开发工程师要更加艰难。
举个例子的话,开发进谷歌微软,你只需要题刷得够溜就可以了,算法的话,得有好的实验室或者好的论文背景,同时刷题也不能拉下。
对于秋招来说,公司之间的差别比岗位之间的差别要更大,一线外企互联网,一线国内互联网,国企银行,等等,这些公司内部的开发与算法工程师之间的差别要远远小于这些公司之间同一岗位的差别,无论是生活方式还是工资水平。
在这个时间点上,哪个方向自己更有把握去自己心仪的公司就选哪个方向好了,至于工作的挑战性,更多的取决于你所处的平台,自身的能力,以及对于工作的态度,而非岗位,不需要太过纠结,除非你有明确的个人喜好。

Author: Apiao
Link: https://Apiao-1.github.io/2020/07/11/2020-07-11/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.