心法利器
本栏目主要和大家一起讨论近期自己学习的心得和体会。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。
2024年新的文章合集已经发布,获取方式看这里:再添近20万字-CS的陋室2024年文章合集更新,更有历史文章合集,欢迎下载。
往期回顾
书接上回(心法利器[143] | 算法工作太枯燥?我的热情保持心法),上一期和大家讲的如何保持这个方向的工作和研究热情,这一期就讲的现实一些,我的视角下什么是算法工程师的成长,如何进行成长。
前面因为大家各个角度的提问,我写过不少聊过类似话题的文章,但一直后台的提问仍旧不少,可能是角度和想法会有些不同吧,这次我再集中讲讲。
先把最近有关这方面的文章再列举出来,太久远的可能理解有偏差我就不放了。
- 心法利器[140] | 致校招算法新人:从完成任务到独当一面的成长路径
- 心法利器[135] | 五千字聊算法工程师的成长反思(答读者问)
- 心法利器[128] | 2024年算法小结-个人成长-打开思路-生日
目录:
- 什么是成长
- 成长规划的几个原则
- 后记
什么是成长
要了解如何成长,首先需要知道的是,什么是成长,尤其是什么是有效成长,从很多交流发现,很多人对成长的理解存在分歧,所以这里我首先谈谈我对成长的理解。
- 熟练度、经验值提升。对某一项任务,能提升熟练度,同时能增加对这个任务的理解,在后续的相似事情中,有更高的执行速度和质量,能把这个事完成得更好。这是自己的技术基石,看家本领,成名绝技,是自己最擅长的一个方向。
- 持续有有效、前沿的新知识输入。持续学习,通过各种信息媒体、论文博客、同行沟通等模式,增加对原本没接触过的知识的理解。在现在技术发展快速的版本下,持续学习,内化强化自己的技术体系是非常有必要的,确保不落后是自己保持核心竞争力、不可替代性的关键,也是自己应对新问题新技术的底蕴。
- 能把控的模块难度、规模有所提升。从完成一个简单的问题,到完成一项任务,再到一个项目,都可以轻松把控。注意,这里的把控,不仅是指模型本身,还包括相关的工程架构、相关的模型技术甚至相关的人,都需要囊括在内,问题一旦复杂,模型和工程之间的势必要交互,而复杂的工作肯定涉及团队合作,必要的沟通难以避免,所以这方面的能力提升也很有必要。随着自己在职场的地位扎实,自己想做、能做、要做的事变多,你会需要大家的帮助,你要具备能集中资源,团结大家完成一件更大的事的能力。
简而言之,就是3个维度的提升,深度、广度和高度,深度是指对某一项任务的理解的提升,广度则是对某个方向或者某个前沿技术的新的了解,甚至是尝试使用,而高度则是,能从点到面地对工作有新的理解增强对事情的管理和把控能力,这里的任何一个方向的提升,都可以被认为是对一种成长。
以这套思路为基准,可以看到某一些所谓成长的思路,可能是有偏差的,我比较常见的是这些。
- 以大模型为目标,只要做大模型才是唯一路线。大模型只是一项技术,如果只聚焦于此,那短期内熟练度可能会提升,但长期容易收敛,做一两次可能会提升,哪怕是微调这种看起来比prompt高端一点的操作,五次十次肯定就不是了。在很多人的视角下只有大模型技术,一些别的技术,经典可靠的技术在这些人视角时间上虽老,但知识面上其实仍旧是新知识,直接忽略肯定就瘸腿了。
- 只想做技术,不想做工程。SQL是不想写的,服务是不想搭的。所谓算法工程师,既有算法也有工程,算法要求你能对特定问题建模,工程要求你能让这个算法跑起来最终完成部署,还要适配具体性能需求,所以工程其实是你的模型落到实处的关键一步,不能忽略。
- 不想接触业务,为业务奔波。诚然,业务做得多,可能就会过分聚焦在一些业务的琐碎需求上了,工程常说的“业务代码”就是这个意思,但我们不能脱离业务,上一篇文章我提到了“反馈感”,在这里有体现,只有我们把我们自己做的东西用上,才能形成闭环,真正有效,因此适当做一些业务落地,能更明确自己的研究方向。客观地,东西只有真的有用,才会被认可,才有价值。
可以发现,很多误区的出现,大都是因为自己过于追求某一个方向,甚至在这个方向上还会出现“自己在进步”的幻觉,实则停留在舒适区,那就早晚会出问题。而我们还是得尽可能多方面发展,持续完善自己的能力,才能有真正地提升。
成长规划的几个原则
说规划可能太远了,每个人都有自己的一些想法,也有很多比我强的大佬前辈,我就不展开说怎么规划,但是有些应该有共识的思路,这里给大家梳理了一些。
想进步,还是得从目标而并非喜好出发。技术的范围很广泛,并不可能每个领域你都会喜欢,也并非每个领域都非常热门,很多人容易被很多自媒体或者是个人喜好带偏,啥啥技术热门就去学,但实际上你的处境,目前你的环境,你未来的发展和这个东西的热门与否,你喜欢与否并不相关。举个例子,大家应该能够感受到RAG有关技术现在的热度,相比前几个月已经少了很多,这说明RAG技术已经没用了吗,未必,目前大家非常关注的Agent,内部RAG的成分越来越重,大家的经验越来越发现,RAG在这里面是不可缺少的部分,那在技能层面,我们也应该要掌握。
主动。这应该是我从小到大发展至今觉得收获最大的一个点,主动积极找事做。无论是在学校还是在职场,都不能局限在老师、领导、业务被动地找你给你方向和思路,而应该把主动权掌握在自己手里,自己把握好自己想要成长的方向。尽管学习、科研和工作肯定有“不得不”的成分,但我们可以结合自己的实际情况来安排自己的成长,例如我们把自己的成长路线和实际的科研任务结合,把业务工作的和自己的学习实践结合,形成合力,于是自己的科研成果、工作成果就和自己的发展是一致的。通常我们讲的“顺势而为”就是这个意思,我们可以乘着某些“东风”来达成自己成长的目的。
持续有新的输入。成长本就是自己整体能力的提升,要想持续提升,就必须要持续新的输入。这个输入可以是自己主动地阅读各种材料,论文、博客、github项目等,都是可以的,但绝对不能局限在这里,输入还可以来自项目和自己的反思总结,可以来自自己的动手实践,可以来自和前辈同行的沟通。这可以解释为什么很多人,都会在公司或者团队发展开始变慢的时候想走,很大程度是发现因为自己做的事开始重复,反馈少。成长变慢甚至停滞了,所以想走。
实践和转化。我的视角看很多人有这个情况,每天读几篇论文,读完甚至还做点笔记,这种行为很有反馈感,从知识面程度看提升也很大,但要想真的内化成自己的东西,还是得转化,通过实践来转化。一方面,读书只能让你学会了这个知识,但并不能让你在实践过程中能够“激活”这个知识,让你能在关键时刻“想到”这个知识,尤其是在积累多了以后,一些相对老的,不常用的知识就会遗忘,就像现在很多初高中知识后来我们不常用而忘记了一样;另一方面,光学习不实践我们可能很难理解到某些方案的优缺点,对方案的理解最多也就停留在作者自己的理解中(这还是在认真精读论文的前提下),而要深入理解,还是得实践。
观察自己的变化。持续观测自己的变化,例如以月为周期,主动观察自己相比上个月的变化,什么方面得到了成长,学会了什么原来不会的地方。这个模式会让自己主动地卷起来,在这个成长时间非常宝贵的版本下,这么做能持续调动自己的积极性(当然伴随的也会有些压力)。
反思。这里的反思,更多是针对最近工作和学习的反思,什么地方自己没做好,什么地方是否有做得更好的空间,什么地方有一定泛用性可以整理抽象成一种通用的能力,这些抽象化的反思,能让自己的工具库更加丰富扎实。
模仿。模仿是一个很简单地找到前进方向的方式,如果你对未来成长方向感到迷茫,你身边的前辈,通常就是很好的模仿对象,他具备、擅长的能力,就是你需要学习的内容,他每天的工作,可能就是你未来可能要做的工作,他可能经常和你相处,对你比较熟悉,他的建议通常也比较可靠,跟着这个模式来学习进步,你也能很快进步。但是,值得注意的是,前辈在之前的进步路径和你可能有所不同,现在做的事也可能和你目前需要做的事有所偏差,他对你的预期和未来方向和你的理解可能因为很多复杂的原因而有所偏差,请注意仔细甄别。另外,还有需要注意的是,虽然我们不能被媒体牵着鼻子走,但是媒体所透露的一些大厂、走在前面的研究团队的工作方向,我们仍旧需要关注,他们很大程度代表着版本演进的方向,我们要根据他们给的信息对我们的方向进行调整。
后记
成长是长期的,可以说这是一种修行,苦与乐肯定都是有的,风雨兼程就这个意思,每个人有每个人自己的道,与各位共勉。
