毕业之后在多家大厂从事算法方向研发工作,并在不断的学习技术的过程中,学习整理相关的技术知识。 机器学习相关的依赖知识方向重多,前沿方向可拆分为常规广告推荐,图像识别,自然语音处理,强化学习,社交网络等方向。虽然每个方向涉及的解决问题的思路有些差异,不过很多论文有些共同的思路,且每个方向实际上又重叠的很多基础知识。 那在面对这样规模的知识的时候,就需要个人从自身经历和知识理解的角度整理相关的知识,构成相关的知识体系。
在实际的算法研发的工作中,很多时候并没有人push你去学习,学习成长只能靠自己。算法的工作产出常常伴随着不确定性,所以充实感并不能完全依赖于业务本身,自身的成长学习的过程,也能给自己带来小小的成就感,从而更好的推动自己终生学习。
知识体系包括数学基础 + AI 算法基础 + 领域基础 + 业务衍化 + 最新各方向的论文和行业解决方法
经历的业务的方向包括【广告算法风控; 常规付费增长侧重广告变现方向; 电商付费增长】
-
主动学习,拓宽视野,心态open且自信
-
擅长解决问题,热爱技术, 比较好的平衡长短期的技术,能快速出方案和系统规划
-
有解决问题的技术,也有解决问题的思路和方法论
-
做有价值的事情,并把有价值的事情扩大影响
-
了解周围的环境,了解团队和部门甚至行业的主体方向
- 自驱力(想在前头,不需要别人来 Push)
- 好奇心(不局限于自己的 Scope,多了解同事、Lead、行业的事情)
- 善于提问 (还应当知道如何提问,利用批判性思维进行提问)
- 高标准(仅仅做完是不够的,一个问题往往有很多可以挖掘的点)
- 时间管理(不会疲于应付各种需求和问题,有优先级和 Plan)
- 以终为始,带着核心目标看待所有的过程问题和方案(Begin With The End In Mind)
- 良好的编码能力(半年之后的自己依然可以维护,出问题可以快速定位)
- 享受解决问题的乐趣,具备化繁为简的能力(抽象,分解,分层,分模块)
- 抗压能力(压力下,不变形)
- 数据意识(好了,坏了,用数据说话)
- 注重效率(平台化工具化思维, 不吝啬在工具上的投入)
-
提升影响力(注重输出;做能够影响更多部门/使用方的事,并把它做好)
-
如果现状让我不舒服,我可以做什么来改变,而不是逃避和埋冤
-
从别人角度看问题(如果是 TA来做你手头的事,Ta 会怎么做)
-
事情推不动就上升,但要提供充足的上下文以便 Lead 做决策,Context not Control
-
汇报时要切换视角,有条理,把要点说清楚,同时提供了解细节的入口
-
与优秀的人共事,找一个良好的参考人(学习他们的技能和做事方式,不要成为最聪明的那个)
-
做符合大趋势的事( Focus 在某个领域可能是把双刃剑,多结合一些通用技能)
-
做事情有足够的空间(可以发挥自己的创造力,而不是偏流程化、对着操作手册就能做的事)
职业生涯发展取决于每个人的背景和机遇,当然是有一些人一毕业就做到了自己感兴趣并且自己擅长的方向,擅长+ 感兴趣+平台业务良好,这是无敌的一种优势。但是这几个因素大部分都不满足,特别对于普通人而言,大部分人都是一毕业就开始找工作,并不是工作找你,你感兴趣的方向并不是一定拿到offer,或者拿到了offer之后进去发现,大部分都是工程业务的工作。当然这里有些强者是bad case 不做讨论,我身边也见到过资源背景很好的,但是和我一起打杂,最后干了半年就跑路去读博了。 对于开局不好怎么改变自己的命运,对于我这个30岁左右的视角而言,几乎是不可能发生的。开局决定了发展的速度,少年得志,直上云端。但是对于我而言,开局并不是特别好,刚开始做的方向和业务都不是特别的有价值。于是刚毕业的时候有点怀疑自我,是不是我只能干这些,我怎么成长呢,过几年我和刚毕业的有差距吗。在反复问自己后,我决定多看书,多看论文,多看其他工业届和行业解决方案,向他们学习。职业生涯的发展有机遇性,但是技术的发展是需要靠自己去推动进步,逆境则砥砺前行,等待下个职业机会。引用公司内部的大佬的职业培养理念《成长是自己的事情》
开发和工程是基础的基础,算法工程师要有开发能力,如果是科班的话,学的基础的开发应该都没啥问题。但是算法和开发不同的在于,算法要解决的是直接的业务问题, 开发要解决的是功能或者平台功能的问题。 所以我把自己定位成为一个解决问题的人, 思考如何的定义问题,不同的角度的看待问题, 然后提出基础的解决方案,优化的解决方案。 不过很多团队把算法工程融为一体,算法本身也在做很多工程开发,无可厚非。
算法工程师价值的定义每个团队不同,偏业务的和偏Research的都是不同的定位。算法能够解决的问题,大部分基础naive 的方法也能够解决,很多团队评估算法工程师价值的是增益的优化。如果把平均值策略视作基线,我们不能把自己价值定义为R2_score,而是要把R2_score 视作自己追求的优化方向。 因为一块业务整体的Pipeline,包括业务本身的框架,业务玩法的搭建,业务的稳定性和业务高效率的运维化都是作为算法工程师的一种能力。 不能做完就跑路,要踏踏实实的保障一块业务,并且保障的同时慢慢的优化。
希望每个人都能找到一个感兴趣并且可以长期投入优化的方向。