8

入职半年小结 | 给应届校招算法同学的几点建议

 3 years ago
source link: https://mp.weixin.qq.com/s?__biz=MzIwMDIzNDI2Ng%3D%3D&%3Bmid=2247489348&%3Bidx=1&%3Bsn=f35046c0c121e730dd9ad1b85b6d2832
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

入职刚好满半年,趁这个时间做一些总结和分享。总体而言,入职半年以来,通过自己学生生涯时期的积累为团队和项目做出贡献,取得了业务收益,不仅仅提高了自己的自信心,也赢得了同事的信任。我也借此机会对半年来的收获和感悟做一个小结,梳理了几条建议,希望对2021届即将入职的同学有所帮助。

更多校招经验面试分享,参见: 2021届校招算法岗知识点总结 (知乎原文可点击该文章的"阅读原文",目前已获得1040个赞同,欢迎大家关注)

总体建议

总体上,对于刚入职的新人而言,我觉得最重要的是如下两组词所体现的内涵:

  • (1) 「发挥所长,赋能项目,做出成绩,赢得信任」 。短期看,第一印象很重要。入职第一步,尽快找到和自己优势/专业相符合的业务应用和落地场景,努力发挥长处,做出成绩,赢得大家的信任。

  • (2) 「保持耐心,夯实基础,脚踏实地,事无巨细」 。长远看,长期保持耐心,苦练基本功,不管事情多小,脚踏实地做好每件事。

细分建议

细分上来说,按照入职时间线和心路历程的变化,可以总结出如下建议给到大家:

  • 「1.全局出发,迅速熟悉主要业务、开发工具、流程和团队协作方式」。刚入职1个月内,基本上都在熟悉和梳理核心业务、常用的开发工具和流程。这个阶段要从全局、高的视野来出发, 「不要过多落于细节」 。先自己阅读项目Launch文档和系统设计文档,并整理问题,然后 「主动找mentor解答和梳理」 。尤其是系统层面的设计,全链路调用关系图,搜索/推荐多层架构等,让mentor帮忙画出来并逐步讲解,整体上了解业务的每个环节,清楚每一环都有哪些重点优化方向。

  • 「2.从数据出发初步洞察业务」。可以借助mentor布置的一些小任务,去初步了解数据,前期主要就是写SQL做一些数据分析,阅读每日的指标报表。这个部分个人感觉挺重要的,通过了解和梳理业务 「打点日志」 中常用的信息,能够初步了解业务是什么?刻画业务的特征和信息是什么?收集的用户反馈是什么?通过学习和梳理特征表,能够初步了解模型的输入输出是什么?召回和精排等模型的任务是什么?通过观察指标报表,可以了解优化指标是什么?团队的目标是什么?

  • 「3.初步学习团队技术沉淀」。对业务和数据有了一定的感知之后,可以考虑去学习和梳理 「介于数据和业务之间」 的团队核心研发/算法工作,这个部分也是团队核心的技术沉淀。去阅读团队项目和模型代码的优秀实践,然后边看、多梳理、多总结、多记,此时可以学习、梳理核心的 「技术细节」 。比如:如何利用深度学习框架来做开发,可对核心的模型结构做梳理;核心的业务研发代码逻辑梳理;现有的召排数据、特征、模型梳理等。倘若要在前人的工作基础上迭代的话,梳理清楚现有的工作,发现里头潜在的问题,有哪些坑,还有哪些优化空间,是下一步进行迭代的关键所在。

  • 「4.多思考,从真实场景/用户角度出发思考问题」。入职2个月的时候,mentor或者leader一般会给你安排一些小的优化任务,比如从某个小方向入手去优化点击率目标等。很多时候,我们一拿到任务可能马上就会去迭代模型,迭代半天发现没有效果,很容易造成挫败感。我的经验是动手前先多思考,多从应用场景角度出发,假设你是用户,你的体验会受到哪些因素的影响,多进行自我头脑风暴并及时记录想法,实践的时候,再将这些影响因素通过数据、特征、模型结构设计的方式来反映和刻画。个人认为自己比较好的习惯是,只要迸发出一丝想法,都会用手机备忘录记录下来,尤其是日常上下班地铁上会先思考下要做的方向有哪些切入点,复盘今天的工作,然后用备忘录记录下来。这样在上班期间就能够比较高效、有方向性地开展工作。

  • 「5.优化模型时,细节和全局要兼顾」。我的经验是,迭代模型的时候,先全流程把控,确保了解清楚你的模型从输入到输出在全链路上都会有哪些潜在风险,会受到哪些可能的影响。比如:从 「原始特征」「模型输入特征」 的特征处理环节;从 「模型输入特征」「模型打分输出」 的环节。每个环节都可以模拟和测试一些CASE。确保你的整个流程是可控,输入输出是符合你的预期的。当然,大部分通用的环节一般都不会出现问题。毕竟有专门的工程团队在维护,我们有的时候更应该关注优化的细节。对于细节型问题,指标提升很大程度不是依赖模型,而是底层的数据和特征。比如挖掘特征的时候,你这个特征挖掘出来必须是准确无误,反映真实数据分布,挖掘出来的特征的覆盖度有没有问题,特征分布如何。就我入职半年的感受而言,越底层的收益越容易拿,比如数据和特征。一定要学会细致的debug方法,特征分析/监控、损失曲线、模型参数分布、算法工程调试等等都算,这一点个人认为是取得收益的关键点。如果能在取得指标提升的基础上,也能有模型结构方面的创新,那固然好,但是实际情况是很难的,模型结构的创新必须是立足于业务目标和真实场景,这一点本人还没有达到这种能力。题外话,个人认为业界最优雅最有代表性的模型结构上的创新就是FM、DIN、以及近期的CAN等工作。

其它的小建议

  • 「锻炼、跑步、健身」:每周必须固定完成锻炼任务。

  • 「固定时间提升自我」:每天抽至少1个小时看paper、定期做总结,比如:写博客。

  • 「积极主动,勇于探索未知领域」:多积极主动地去查CASE,去处理告警;去接触团队不擅长、或者自己也不太熟悉的领域。

  • 「多点开花,平摊风险」:不要死磕某个方向、某个具体优化点;多看、多调研、多快速试验和尝试不同方法、尽可能多参与不同项目。

  • 「多交流、适当时机表达想法」:产品、业务、方向上的想法不断积累和记录,适当的时候表达,输出观点,提升影响力。

  • 「多关注学习周围的榜样」:平日里多观察leader/mentor平时怎么处事的,怎么规划方向,怎么领导团队,怎么布置任务等等。

  • 「全方面发展」:算法,业务,系统三者的权衡和并行发展。

以上是我作为职场新人的一些感悟,希望对即将入职的2021届校招算法岗位的同学能够有所帮助。也欢迎大家关注我的公众号"蘑菇先生学习记",会定期分享最新进展,工作实践感悟。欢迎交流。

多校 招经验面试分享,也可参见: 2021届校招算法岗知识点总结


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK