目录
一些碎碎念 关于工作习惯 工作中的由被动变主动 问题本身的思考与拓展 关于战斗意志 战斗意志的提升 战斗意志的保持 坚持写笔记于我的成长 未来的愿景
一些碎碎念
如今已是在北京工作的第四个年头,想要离开了。
这个月离职后,大大小小的事情一堆一直没有空闲下来,昨天已经打包好了所有的行李,可以短暂的休息一下了。马上就要离开北京、结束北漂了,在北漂的这段时光里,虽然没有经历过大风大浪,但也有一些零零散散的感受怕自己忘了,所以就想着写点什么记录一下。我还依稀记得刚上班没多久的时候,看到过李沐老师的一篇文章,写的是他在亚马逊做算法五年的工作总结。于是乎,我也有了这个想法,想总结一下我北漂这几年对于工作的一些感悟。
其实说白了也是给自己留一个纪念与念想,从北京到青岛,城市之间的跨越,人生轨道的转移。对自己在北京这段时间的工作进行一个总结,能够更好的去适应和投入到新环境与挑战中。
在开始碎碎念之前,我想提前声明一下,本文完全是自己的一些感慨与总结,随心而写,文笔有限,通篇没有很强的逻辑性,写到哪算哪。
细想自己从大学到北京的求学与求职之路,我自认为没有蹉跎岁月,但难免会存在一些小风小浪,以及面对人生诸多分岔路口的犹豫与抉择。
我大学读的是计算机专业,最开始我也对那些C语言、程序设计、数据结构等课程没有什么兴趣,也对未来自己的职业规划没有任何的打算。但是这一切的改变,都是从一场公开课开始。那是一个下雨的午后,有一个培训机构在学校办公开课,我也被舍友拉着去试听了一下,当时讲的是用 Java 写一个狼抓羊的小游戏,对于当时的我来说,可以说是打开了新世界的大门。于是乎,我就报名了。白天没课的时候、以及周末就会去培训班上课,从最开始学的前端 CSS、jQuery、JS,到后端 Java、JSP、面向对象、各种数据库、Spring 等等框架,虽然有一些基础的在学校也会学到,但培训班里教的确实是内容更多,从基础的知识到项目的实战。当时自己脑子想的就是以后干软件开发,全栈工程师、系统架构师就是那时我的目标。
后来一次偶然的机会,我接触到了大数据和人工智能,当时大数据和人工智能远远没有现在这么高的热度。于是我又调转了方向,开始学大数据和人工智能。最初学的就是如何搭建大数据的生态环境,以及一些分布式的计算算子,如 Hadoop、HDFS、Spark、Kafka、Hive 等等。后来慢慢地发现还是人工智最能有意思,同样的也是最具有挑战的。其实当初选择再学人工智能,不单单是因为兴趣,那会儿脑子里总是围绕着李云龙的话:“奶奶的杂牌暂七师有什么好打的,老太太挑柿子捡软的捏,要揍就揍王牌晋绥军”。同时也是本着趁年轻试错机会多的想法,就做出了学习人工智能的决定。
万事开头难,我是从机器学习、数据挖掘、推荐系统开始一点点的学。比如一些经典的机器学习算法:KNN、KMeans、SVM、决策树、集成学习等等;再到一些推荐系统的算法:关联规则、Apriori、DeepFM 等等。买了各种各样的书,看了许许多多的视频资料。在跟着视频学完了好几个数据挖掘和推荐系统的课程之后,想要出去工作的想法就愈演愈烈了。那会儿年轻,初生牛犊不怕虎的精神最为强烈。同时,首都北京对于像我这样一个普通学历、普通水平的人而言,是可望而不可即的。于是,又一个改变我人生轨迹的想法就决定了:北漂。
当然,人生如旷野,一切都是体验罢了,只是现在回想自己近期的状态,发现我没有了当初刚来北京时那样的慷慨激昂,也许这就是工作之后带给人的疲惫感吧。我不清楚是否是大家神话了大都市的艰难,亦或是我非常的幸运,在北京的第一份工作,我面了13个,offer了5个;第二份工作,面了7个,offer了6个。就面试经历来看,我更倾向于后者,我很幸运,也很感谢。
刚开始工作的时候,跟着接触的 NLP 和 CV 项目开始慢慢的学深度学习。在这期间,我算是真的体会到了什么叫“发展迅速”。比如 NLP 领域中,从最初的统计语言模型到 RNNs 的串行序列模型,又到了 Transformer 时代的大一统模型,并且在语言理解和生成式任务这两个领域上又各自迸发了 BERTs、GPTs。同时 Transformer 也深深的影响到了 CV 领域,从各种的模块化 CNN、残差结构到 Vision Transformer 与 Swin Transformer 的霸榜,可以说如今的视觉网络算是离不开 Transformer 了。在另一个赛道,生成模型与扩散模型也在加速的发展,从 VAE、GAN,再到 DDPM 以及许多加速采样的扩散模型的发表,可以说图像生成的任务已经完全由扩散模型所取代。Stable Diffusion 与 ChatGPT 的问世更是将 AIGC 和 LLM 推向了高潮。
在见证了各样算法模型的发展后,我是由衷的感慨真的学不过来!对于我而言,有太多太多太多的东西需要去学习了。不过没关系,我依旧有满腔热血。
我最开始的想法就是在北京干1家公司2次合同,但天总不随人愿,第一家公司因为疫情影响,我不得不离开,幸运的是第二家公司做的事情我更加的感兴趣,同时给的薪水我也很知足。至于为什么决定离开北京呢?其实千言万语汇总成一个字:家。
北京相比于小城市,人们确实是能够凭自己的努力,公平的得到自己想要的工作机会,至少对于我来说确实是这个样子的。但是在北京待的越久,越发觉得没有归属感,虽然这座城市聚集了大量的人才、优秀的资源、公平的机会。回老家了未来工作可能会很忙,但想回家了可以随时回。在北京可不一样,有时心疼钱,有时觉得回一趟在家待不了几天会折腾,还有时觉得休息了想在出租房里躺着不想坐地铁和高铁。但是时光流逝的速度是很快的,父母变老的速度亦是如此啊!不要到了子欲养而亲不待的时候后悔,这就是我想离开北京的根本原因。
我想,并不能以留不留在北京作为标准,去评判我这段北漂体验是否成功。大城市固然有大城市的魅力,小城市也有小城市的安逸。我承认,刚来北京的时候,我确实是花了一些时间去见识、去惊叹、去对比,然后就是沉默与自愧不如,奋斗和哀叹命运的不公。但知足常乐,之前的很多想法现在看来确实是很幼稚,人总是要认清现实的,接受自己的平庸是一件听起来很普通、很理所应当,但是做起来有点难受的事。接受自己的平庸不是说要躺平,而是在属于自己的轨道上继续努力,它大概和知世故而不世故是一个道理。
碎碎念了这么多,总结一下我在北京的经历就是:一路走来都是学习。在这个“学校”,我见识到了很多、也学到了很多。下面就开始本文的正经部分,我个人对自己在北京工作的一些感悟和总结,主要是想分两个方面来谈,一是工作习惯的养成,二是战斗意志的锻炼。
关于工作习惯
工作中的由被动变主动
从小到大,上课、写作业,我们都是在被动的接受,哪怕是到了大学,很多人都是比较安分的完成任务课题就行。但未来的日子肯定不是这样,我们真想把事情做好,做自己想做的事情,主动的去推进是非常重要的,所以这一部分我其实是想谈一谈要主动负责起自己的工作。
对于刚踏入职场,或者基础比较扎实的同学而言,一般是要经历从新人走过来的这么一段路程,这段路程其实就是从干中学,领导或许会具体的教着你如何一步步的完成任务,或者是给你具体的解决思路。对于没有多少工作经验的人来说,这确实是很友好的。
但新人总有变老的一天,对于接手过的每一个项目,我们要主动的、认真的负责起来,即由被动变得主动一些,这是我的观点。因为我们日后所面临的,不单单是有具体解决思路的问题,更多的是模糊、没有解决头绪,甚至是棘手的问题。那么男子汉大丈夫,总要去独当一面吧!而慢慢的主动积累,认真负责起每一个项目,是我这种普通人所能做到厚积薄发的不二法则。
至于如何把事情主动的负责起来,我就聊一些我的看法。
首先是被动的过程,对于跟进的项目中所遇到的问题,我们要认真的记录和总结;对于别人的一些方案,我们要认真的倾听和思考;对于问题的诸多解决方案和落地解决方案也要认真做笔记记录。对一切的一切,不单单是问题和同事的思路,我们都要怀有谦卑和敬畏之心,虚心学习,取其精华,这样自己的思维才能开拓,学到的才能更多。
其次是主动的过程,自己要主动的去分析当前遇到的问题与难点,然后自己尝试去找解决办法。但自己的力量终归有限,在所难免的会遇到技术上的难题、跨团队沟通的问题等等,这个时候一定要积极的去寻求帮助,比如找朋友、群友,或是自己老大、其它团队的同事帮助,这样才能尽快的推进处理,能够更有效的解决问题。
我们举一个比较简单的例子,实际工作中到手的很可能是一个比较完整的任务,例如完成某个具体的识别任务,那这时需要会的就不只是一个文本分类或图片分类就够了,我们还需要知道数据怎么处理比较好,代码如何写才能具有可扩展性,这些都是由被动到主动的工作当中一点点积累的经验。认真主动负责的好处当然不单单于此,在另一方面,我们通过主动的积累,可以聚焦于模型算法的思路到工程、性能上的扩展,以及关于模型、工程的广度。
所以,主动、认真的负责起来,对于干好工作真的是很重要,这期间我们要持续学习、持续分析、持续思考,毕竟一技之长才是我们自己突出拔尖的重要因素。
问题本身的思考与拓展
这一部分我主要想聊一下独立思考。
在现在这个信息时代,不论是被动还是主动,当我们在完成任务或者解决问题时,我们能够搜到很多的资料,这很多的资料就足以给我们提供有关问题的决策信息,但对于像我这种普通人来说,实际欠缺的是辨别信息的能力,也就是说我们要锻炼自己的独立思考能力,要能够识别出什么是有效的信息。
所谓独立思考,一个最直接的映射就是甄别信息的意识和能力,即我们要能够从大量信息中筛出自己所需要的信息。所以在遇到问题的时候,我们首先要做的是:明确问题。只有问题明确了,才能找到解决的目标。当然,事情的发展总要有个过程,解决问题也不例外。对于遇到的问题,自己要有规划,或长或短,只要目标和路径正确,然后再从众多的信息中提炼,结合自己的思考以给出可行的实施方案。所以我们一定要培养自己的独立思考能力,这样在遇到问题的时候,我们才能够有正确的路线以及坚定路线的信心。
将独立思考放到某一个具体的问题上,在诸多的信息资料中,我们如何能够甄别出对自己有用的信息,这个其实也是个经验的积累,一方面需要我们自己有足够的调研,另一方面需要我们有充足的知识储备,对于这两个方面,我们掌握的越多,独立思考的能力也就越强。
大道至简,可能我的表达过于口语化,我还是举个例子吧。比如现在有一个文本分类的需求,我们首先肯定是要去了解文本分类的相关问题的,看数据、看文档、看实战案例等等。这时候我们的目标是明确的,就是一个特定的文本分类问题,先别管是否用深度学习或者是规则词典等方法,总之我们的目标是明确的。
于是,以独立思考的方式来看,这时我会问自己:我手里到底有多少方法?
首先,如果方法不多,只知道一些模型的话,这很难支撑我们去针对问题设计方案,因为设计方案是一个选择的过程,此时我们没有足够的方法、知识去支撑,何谈选择。
其次,这个阶段我们的核心应该是找方法,我们了解问题的方向其实就是套用方法的方向,而我们手里的方案其实是指导自己了解问题一个重要参考,如果连一个简单基本的方案都没有掌握的话,那恐怕我们根本就不会思考这个问题是不是一个方案就能解决。
最后,方法的多少和质量决定了我们对于问题的解决程度,这个和集思广益的道理是一样的,更多的方法有利于我们更好的解决问题。
说到这,不得不说的是,这也是为什么大家在工作后还要持续学习的原因,就是扩充自己的知识面,以便解决更多更复杂的问题,而在持续学习的这个过程中,培养自己独立思考的能力是至关重要的。回到小标题的本身,我们在成长的过程中,每次遇到问题都要进行独立思考,对问题本身和一系列的解决方案进行拓展,长久下来,其实是成长的很快的。
我主管之前对我说过一句话,大家可以共勉:如果给你一个问题,你张口就来一个方法,这个时候你要记得反思自己是不是只会这个方法。
关于战斗意志
战斗意志的提升
相信看过亮剑的朋友们对于“战斗意志”这个词并不陌生,没错就是李云龙台词,逢敌必亮剑,狭路相逢勇者胜!而实际上,对于我而言,假想敌并不是真正的人,而是许许多多、各式各样的问题。
为了更好的应对将要遇到,以及未来可能会遇到的问题,提高和保持自己的战斗意志是至关重要的。关于战斗意志的提升,结合我自己的工作来说,其实无非就四点:
算法原理的理解 工程能力的加强 数学思维的锻炼 身体健康的重视
对于增加自己对算法原理的理解这一方面,最有用和直接的一点就是多看论文。而实际工作中,我们可能会很忙,以至于没有很多的精力去读论文。所以我对于这一块的一个看法就是:边干边学,把当下做的项目所涉及到的相关算法,按照前后、因果的方式进行记录,然后在晚上下班、周末、白天没事的时候,以固定的思路去学习具体的算法原理:
这篇文章提出的背景 具体的贡献以及解决问题的方式 原文给出的实验结果
在按照这种方式学完之后,去评估和感觉这篇文章的重要程度,来选择性去读原文。我目前是以这种方式去学的,但是我的这种方式是有缺点的,就是我对于具体模型的源码看的比较少,这是我需要改进的一点。
对于加强自己的工程能力这一方面,除了好好的跟进项目和优雅的写代码外,在空闲的时候也要维护一下自己的开源项目,我在前年的时候就想这样干,但总是被一些事情给耽搁,这一点也是我需要去改进的。
对于锻炼自己的数学思维这一块,其实也挺重要的,对于算法岗来说,当我们的算法能力和工程能力都足够的时候,那么碰到的问题就只可能是数学问题了。对于很多遗忘的知识点,比如积分、微分、线代等等,还是需要抽时间去复习的。
对于重视身体健康这一块,其实也能理解,我长期久坐现在也腰肌劳损和颈椎骨质增生了,平时还是要约束自己进行运动的,毕竟身体才是革命的本钱。
战斗意志的保持
关于战斗意志的保持,不管对于哪个岗位而言,都离不开两个字:学习。我记得和珅说过一句话,对于我来说特别受用:知识可以不精但不能不博。我想对于我们每个平凡的普通人而言,大家都想要在遇到任何问题的时候,都能够有应对问题的解决能力。那么持续的、广泛的学习,就是实现这一途径的强有效的方法。
另外,我自己感悟最深的还有两点:目标性和敬畏感。
所谓目标性,就是我们做任何事情的时候,都要有相应的规划,有时候行动力不足的真正原因就是计划模糊。之前看过一部电影叫《银河补习班》,里面有一句台词使我印象深刻:人生就像射箭,如果你连箭靶子都没有找到,那每天的拉弓又有什么意义?正如孙子兵法所云:谋定而后动,我们不要打没准备的仗,做事情的时候一定要思考周全。如果对于目标所涉及到的具体问题,我们有棘手或拿不准的时候,那就缓一缓,事缓则圆,有时候慢就是快。
所谓敬畏感,就是对所有的人和事,都要怀抱谦逊、好学的态度。人无完人,金无足赤。我们要取其精华去其糟粕,不断地丰富和完善我们自身。
这一部分,我主要是分享了我关于战斗意志的见解,同时我也希望自己在未来的岁月能够脚踏实地和认真务实。我记得有句话说的非常好:就像你会永远活下去一样去学习,就像你明天会死去一样生活。当然,重要的是行动起来,然后再有顺其自然的心态。说到底工作只是谋生的一种手段,但我是幸运的,我幸运在我有一个感兴趣,且愿意为之奋斗的事业,所以我一定要不断地提升和保持我的战斗意志。
坚持写笔记于我的成长
最初决定写文章的原因就是想让它成为我学习的一个关键动力,当时 CSDN 里的复制文章一大堆,所以我就索性写公众号,公众号对于原创的保护力度要比 CSDN、掘金等博客强的多。除了督促自己学习外,另一个原因其实还是方便自己进行复习回顾。
毫不夸张的讲,最开始写文章的时候我丝毫没有头绪,不知道要怎么写才能写好、才能被大家看懂。拿 Transformer、BERT 这两篇来讲,我当时光修稿就准备了足足1个月,查阅了许多的资料,然后进行融会贯通,形成自己的输出体系。万事开头难也是可以理解的,我时不时的就会这样安慰自己。随着这样的慢慢坚持,我的公众号已经有了自己固有的风格,以及一些来自读者的夸奖和鼓励,这令我非常的高兴。
这几年坚持下来,我有一个非常深的感悟,那就是写文章让我对知识梳理的能力有了很大的提高。因为我是一个平常水平的普通人,我没有办法像大神们那样直接“马上使用”或“教别人”,所以我就会以自己的理解,按照自己的方式去梳理,形成一篇文章。这样在写的过程中,我可以把凌乱的知识进行梳理,可能做不到井井有条,但也不至于凌乱无章。
其次就是写作和沟通的能力也得以提高,就像是本篇文章,到这已不知不觉写了7千字了。除了能够提高自己的知识梳理和写作沟通能力外,额外的一个收获就是所谓的成就感吧。我承认,每次看到自己用心写的笔记被大家阅读、被大家点赞、分享,我会高兴;每次看自己公众号主页的时候,我也会高兴;每当大家加我微信或是公众号留言,讨论问题或是夸奖鼓励的时候,我真的是打心底里高兴。
所以我会一直坚持,持续的写下去。并且为了篇幅的可读性,我并不会为任何流量主和广告主服务。我认真的将自己的笔记分享出去,一是提高自己在各方面的能力,二是方便自己复习回顾。当然,如果能够帮助到大家,那就更好了。
未来的愿景
以上是我从工作习惯、战斗意志两方面给出了我北漂工作的一些感悟,文笔不好,大家多多见谅。总结而言,我们要工作与学习并行,要树立和保持战斗的意志。
至于未来的一些愿景,我首先是希望自己能够完成我当初制定的目标,按照雷总的话:看五年,想三年,认认真真做好一两年。如今马上就要到第五年了,所以我希望能够通过努力去成就自己。
其次是拥抱变化吧,做出结束北漂的这个决定,也不单单是因为想家,自己也将会面对未知的挑战,不知道是否是机遇,但总不至于几年后自己感慨看不见、看不起、看不懂和来不及。所以有句话说得好:人生所有的努力,无非是两种结果,见笑或者见效,做好遇见前者的准备,做好遇见后者的从容。我希望我能用最大的平静去热爱、去面对不确定的生活以及挑战。
时光如水,总是无言。写到这,算是对我北漂这几年进行了一次好好的告别吧,这篇文章也记录并见证着一个普通人的奋斗历程,期间或是高兴,或是曲折,但我依旧斗志昂扬、满腔热血。
最后以史铁生老师的一段话,结束通篇的碎碎念:
如果你站在童年的位置展望未来,你会说你前途未卜,你会说你前途无量。但是你要站在终点看待生命的轨迹,你看到的只有一条路,你就只能看到一条命运之路。不知道命运是什么,才知道什么是命运,所以很多人口中说的看不到未来,其实是看到了未来。人生唯一确定的就是不确定的人生,所以大胆的去做你想做的任何事,活在当下抓住你周围的一切美好。