作者有多年行业相关经验,走过很多弯路、趟过很多坑,所以这里将我的一些经验教训和建议分享给大家,让大家少走弯路,这些经验即所谓的“道”。其实这些经验和建议也适合很多互联网行业的其他职位,甚至是非互联网行业的职位。
(1)关注业务、关注价值产出
推荐算法工程师不能只关注自己做了什么,是否保质保量地完成了任务。对公司老板来说,能够为公司创造商业价值才是最关键的。配合公司产品同事将功能快速高效实现是我们的主要工作之一。如果你没有关注业务、关注推荐价值产出的意识,你一定不会在日常工作中思考业务和价值,更不可能基于自己的思考来优化推荐产品,最终你的工作很难产生商业价值。如果你无法真正为公司和用户创造价值,那么对公司就没有价值,从而也不会受到重视,无法得到更大的成长。所以,及早具备关注业务和商业价值的意识,并在日常工作中不断践行,你才会有更大的成长空间。另外,不光要关注价值,更应该量化你的价值产出。
(2)让系统尽快运转起来,尽快产生价值
很多刚入行推荐算法的新人,会进入一个误区,以为算法工程师就是要做一个牛气冲天的算法出来,让效果一飞冲天。这种想法太幼稚了。先不说牛逼的算法是否容易实现,即使实现了,是否可以分布式计算,是否可以在一定时间内跑完,是否稳定,这些问题在实际应用中都得考虑,并且也是制约算法是否可以落地的重要因素。所以推荐算法工程师不能将所有精力放到研究高深的算法上,好的做法是先采用尽量简单的方法实现,先让系统跑起来,对业务先产生价值,后面逐步去优化它。其实,往往简单的推荐算法比不用推荐会有一个较大的提升,非常牛逼的算法也很难在简单算法基础上再有极大提升了,上一个简单的算法其实已经解决了 80% 的问题了。特别是对创业公司来说,往往没有那么多的资源招聘很多牛逼的算法工程师,这时做一个简单的系统先上去比什么都管用。
(3)打造倒三角知识体系,培养核心竞争力
现代社会科技发展日新月异, 特别是计算机行业,新技术更新迭代更快,你不可能将所有东西学会,即使是推荐系统这一个子领域,你也不可能每一块都特别精通。我个人建议在有限的时间和精力下,你要结合自己的兴趣和长处选择一个更专的方向深入钻研,做到这个方向的绝对专家,同时在与这个行业相关的行业上拓展广度。这种提升方式叫做打造自己的倒三角知识体系,见下图所示。
只有这样你才会有自己的核心竞争力。
拿我个人来说,我自己的数学很好,也非常喜欢数学,所以我会在推荐系统上深挖,成为推荐专家,特别是推荐算法上,同时在大数据、搜索、广告、NLP、计算机视觉等领域拓展自己的能力边界。
将来不管你是不是一直做推荐算法,在一个领域做到专家肯定会对你有帮助的。首先可以形成自己的一套思考解决问题的理论体系,这一套体系会帮助你在其他方向或者行业打开局面,重新快速地构建自己在新方向的认知体系。
(4)抓住核心,有的放矢
不管是在推荐系统知识学习上,还是在实际推荐业务开发上,我们都需要将精力放到价值产出最大的任务上,这样才能产生事半功倍的效果,我们每个人都要活学活用二八定律。
(5)关注外面的世界,不闭门造车
推荐系统涉及到算法和工程两大块,具体的做法和实现虽然不同的行业不太一样,但是肯定是有借鉴价值的,平时除了工作外,需要多关注外面的动向,了解别的的公司在做什么,怎么做的,只有这样才能知道哪些地方做的不够好,有待提高。有了对比了解,就更有提升的方向和目标了。
(6)沉淀核心技能,持续学习新知识,学习跨领域的知识
推荐系统是一个复杂的体系工程,需要持续学习新知识和技能,一万小时理论说一个人要成为一个领域的专家必须在这个领域积累一万个小时,每天工作 8 小时的话,相当于 5 年时间。注意一万小时是必要条件,不是充分条件。另外,每个领域都在快速发展,除了积淀已有知识外,还需要学习很多新知识。比如,深度学习对很多行业产生了革命性的影响,那我们也需要对深度学习在推荐系统上的实践持续关注并努力践行。
技术的学习是无止境的,我们需要从各个渠道学习,论文、书本、Github、各种技术公众号、线上课程、付费直播、线下分享、线下沟通交流等等。
除了学习本领域的知识外,还需要适当学习跨领域的知识。比如产品、运营、项目管理等等,甚至是管理学、心理学、哲学、经济学、会计、营销等等。
更宽广的知识体系会让你从一个完全不同的视觉来看待问题,可以给你提供更多的灵感来源(和最优化求最大值类似,在很窄的知识面上,你很容易就走到了一个局部极大值,学习更多的知识,相当于给自己一个扰动,让自己可以找到更大的局部最大值)。
如果你打算将来走管理路线,那么学习跨领域的知识必不可少。
(7)构建良好的人脉关系
个人的力量是有限的,要想在事业上获得极大成功,一定需要别人的帮助,人类祖先之所以能够在恶劣的环境下生存下来,靠的就是群体的智慧。我们在工作中需要跟同事保持良好的人际关系,尽量多帮助别人,需要跟同行业的人多沟通交流,互相学习,甚至是认识完全不同行业的人。尽量多结识优秀的人,他们是你成长的榜样,别人身上的优点值得你学习。在人际交往上不要太短视和功利,你的人脉关系其实是无价之宝,在适当的时候说不定你的朋友可以助你一臂之力。
(8)基于自己的认知和理解,构建一套属于自己的思考体系
优秀的人都是有自己一套思维体系和思考逻辑的。当我们在一个方向上深耕时,我们会积淀很多经验,这些经验就是你最宝贵的财富。我们要实时总结,将经验教训内化为你的知识体系, 通过不断思考及有意识的总结提升,你就会构建一套自己的认知体系。
我们可以将这套认知体系看成一个机器学习模型,你的经历就是训练数据,你的总结深度思考过程就是构建模型的过程。通过不断的总结你不断地优化你的模型,最后模型会越来越精确,泛化能力越来越好,最终你就可以对很多未知数据 (情况) 做更好的决策。
(9)打造属于自己的个人品牌
我曾经看到过一句话,说一个人对社会的价值在于你的输出而不是你的获取,我是非常认可的。
要想让自己得到行业和社会的认可,除了做好本职工作还是不够的,你需要将自己的经验知识整理并输出,通过你对社会的影响来构建个人品牌。相信品牌的价值大家都能理解,有了很好的个人品牌,你可以找到更好的就业晋升机会,如果你技术很牛逼的话,你创业也更容易拉到合伙人。当然,构建个人品牌可以有很多方式,比如开源自研技术、写博客、写公众号文章、组织线下技术活动、发表论文、开网络课程、写书等等。这些活动难的不是你能不能做,最难的在于你是否能够一直坚持做下去。只有当你持续投入时,通过时间的积淀,你的个人品牌就会不断成长放大。