查看原文
其他

从新东方讲师到AI框架工程师,我的历次职业转折|OneFlow U

OneFlow社区 OneFlow 2022-05-22
姚迟,一流科技研发工程师,现主要负责技术文档和内容输出。他在湖南大学本硕读的化学专业,在长沙新东方主讲了五年化学,但由于一段话击中了他,使他感到自己必须亲身参与一次科技浪潮。
于是他毅然选择辞职,在培训班闭门学习了汇编,并且顺利进入做互联网安全的大厂转型成为一名工程师。不过在大厂短暂并不愉快的工作经历,让他大失所望,后来由于种种原因,在安全行业逐浪的愿望离他渐远。一次无意插柳又让他重燃技术热决定参与到深度学习框架这个新浪潮之
多次职业转折源于他不给自己设限,追求实现自我,这使他拥有比其他人更丰裕的人生密度,当然其中也有可想而知的挑战和风险,但在职业生涯早期,他磨炼出了克服困难的足够勇气和底气。
本文为姚迟自述。


1

五年新东方化学讲师


我接触编程应该算很早了。小时候,父母可能受到了“英语、计算机、驾照是21世纪的通行证”这种饥渴营销的影响,很早就让我去跟一个老师学计算机,其实就是学DOS命令、五笔、QBasic一类的,他们也很舍得教育投资,大概在1997年还给我买了一台奔腾II电脑。
 
遗憾的是,虽然起步早,但我小学到高中的时间大都浪费在了折腾搭私服“江湖”、逛论坛等一系列没什么沉淀的事情上。初中时,我是网络安全小组20cn.net的“圈内”成员,和一圈大我一轮两轮的人冲浪,却没想到和他们深入学习编程,没有对朴素的技术原理做有深度的思考,比如“为什么printf可以把字符串打印到控制台”,学到的更多是“网管”技能。
 
我上大学后学的化学专业。湖南大学的化学专业有个国家重点实验室,可以开设本硕连读班,只用读6年,并且湖大是可以到大三研修“第二专业”的,当时我的小算盘是:本硕班可以快一年拿到硕士学位,然后大三(2008年)去辅修计算机。

但没想到,当我怀揣着梦想和刚取出的3000块学费去报名时,相关老师告诉我“人太少了,开不起来,赶紧去其它二专业吧”。我也不知道我能学啥,就去报了个英语二专业。

在英语专业,有同学在新东方实习,新东方又在扩科招人,听说我是本硕班的,就把我推荐过去了。我是抱着随便见见世面的想法去的,还没分清疯狂英语和新东方的区别,可以想见,我应聘时的表现肯定是不佳的,多年后我的上司也坦言“刚开始实在太难找人了,让这家伙试着吧”。后来没想到,我在那儿一待就是5年。
 
我的硕士导师谭泽老师,他在34岁时就成为了湖大教授、博导,师从化学家Negishi(根岸英一,2010年获诺贝尔化学奖),是个严厉又佛系的人,非常有个性。他一方面接受我做他的学生,和我讲蒲慕明写给学生的信,讲美国读书时导师如何不惧学生威胁,把办公室换上防弹玻璃;一方面决定放养我,大概意思就是“实验的仪器和试剂都很贵,你做一线可能浪费材料,当备胎吧”。后来他申请到的基金少于预期,我就更加备胎了,被鼓励先自谋生路,最后一年再来加倍做实验。于是,我有了充足时间去应对新东方的工作。
 
在新东方,我见识了当时最顶尖的理科老师,着实被震撼到了,原来可以这么牛,他可以背下20年内所有高考题的序号、分值、内容、答案……,更震撼的是,背后的手段可以这么简单枯燥:刷题、写逐字稿、反复总结、练习……
 
我真的就很单纯,觉得当那种很牛的老师太“酷”了。在没有任何工资补助的前提下,花了大半年时间,刷了十年的高考题目、手工抄了其中数百道、写了几十万字的逐字稿,然后顺理成章登上了讲台。
 
然后,我破格以兼职身份成为了全职人员才能担任的项目负责人。毕业后直接留任新东方,在这里我得到了很多(包括老婆,哈哈)。
 
当一切都很顺利时,我的中二毛病就渐渐抬头了。当时看到《浪潮之巅》里的总结“近一百年来,总有一些公司很幸运地、有意或无意地站在技术革命的浪尖之上。在这十几年到几十年间,它们代表着科技的浪潮,直到下一波浪潮的来临。对于一个弄潮的年轻人来讲,最幸运的,莫过于赶上一波大潮。”读到这段话让我很激动,觉得自己应该去参与某一波浪潮。
 

2

学习汇编转型工程师


因为我长期逛论坛、玩微博,所以关注了不少技术网红,比如老师木、tombkeeper、kxn、delphij等。在2014年,我结婚了,同时敏感地意识到,安全圈要迎来春天了(习大大说“没有网络空间安全,就没有国家安全”)。中二的我觉得是时候转行去参与某一波浪潮了。
 
小时候的经历、在大学参与过SIT项目(本质上是用Matlab解决一个物理化学领域里的最优化问题),加上旁听过其它学院的课,回头看我应该符合“调包侠”的小白水平,但是想到没有搞懂“为什么printf可以把字符串打印到控制台”这个问题觉得非常可耻,不搞懂它,我就无法达到我仰慕的那些人的水平(当然现在我知道了,我搞不搞懂这个问题都没法达到)。

当时我不知道如何搞懂它,但觉得从底层的汇编学起肯定是没错的。
 
于是我打算从汇编学起,一边买书一边在网上找“怎么学汇编、哪里教汇编”,最后找到了一家可以闭门苦学的培训机构武汉科锐去学习“软件逆向”。家人也非常支持我,于是我就辞职去学编程了。
 
在那里,我第一次知道了调试为何物,感觉之前自己硬看代码太傻了,知道了畸形PE、0环等……创始人兼主讲老师钱林松也很快与我亦师亦友,带着我参与科锐的一些企业项目,其实都挺有意思的,比如通过二进制逆向做一些“稀缺游戏”再发布,把游戏“战争之人”给改成“亮剑”版本,如果考虑不仔细,就会出现“马爆炸了”的笑点,因为马是由坦克替换资源得到的;或者做像猎杀潜航、文明这类游戏的MOD。做完之后免费发布出去,然后用“异于通常手段”的方式和客户端通信。
 
临近“毕业时”,老钱想留我,和我说“大公司做的事情就是你做的这些”,我是不信的,觉得游戏等毕竟只是玩具,我想去“一线安全公司”大干一场。老钱很支持我,考虑360在北京,北京居不易,就想去广东某头部移动互联网安全公司,他就把我推过去了。

很快,我就会知道,我要被生活大干一场了。
 
2015年,我到这个南方的互联网安全大厂成为了“反病毒工程师”。我本以为理想中的病毒分析应该是,认真分析每一个接触到的新样本,完全搞透它背后的原理,以此不断积累技术。然而实际情况是:可能一天给你数百个样本,然后一天内必须标出白名单、黑名单。我痛苦了一阵子后,直接写了个脚本,把样本上传到  VirusTotal 根据上面的结果自动打黑白,这样工作更轻松了,但感觉自己被“逼良为娼”。最不能忍受的是所在小组的领导们假装努力工作的氛围。
 
本来看这种情况,两星期内就想跑路,但怕履历上不好看就熬着,工作三个月后被通知可以转正,但我摊牌后连夜“逃”回了长沙。
 
这段经历我感觉很受伤,觉得这种一线互联网公司太让我失望了,当然主要还是怪自己的幼稚、中二和无知。
 
正在犹豫自己要干嘛时,老钱又向我递来了橄榄枝。我和老钱说“我在新东方可能把我这辈子应该讲的课时用完了,不想讲课”,所以他让我只做管理和项目,主要是合法地做与本文出现的一种动物有关的软件,在此就不展开了。

再后来我有了可爱的女儿,2017年在武汉买房安了家,但我老婆非常不适应武汉,居住了几个月,被形形色色的小商小贩骗得团团转,就给我下了最后通牒:你再不回长沙我们就分手吧。

于是,我含泪和老钱分手了。

3

参与新浪潮的机会再至


辞职很匆忙,长沙的IT环境也没有武汉好,回长沙最开始offer预选方案有两个:一家做 DDOS 防御的公司智为,还有国防科大某个实验室(待遇比不上智为,但有寒暑假)。
 
鉴于我想继续做技术,同时又对老婆、女儿、父母有较深的愧疚,回长沙后想多陪他们,在两个选择中我挺纠结的。这时,长沙的老牌IT培训机构牛耳出现了,给的offer待遇比较好,并且破格只需要上课到场,其它时间可以自由活动。我很快接受了。
 
我在牛耳的工作是去长沙一所高校林科大给本科生教嵌入式,之前完全没搞过,不过此时水平已经学一学就可以任职了。教学方面我还挺受认可的,反正我带的学生开始毕业之后,牛耳林科大校区断流多年的一线大厂的offer又重新复活了。
 
除了每周花十几个小时去给学生上课外,我的时间基本上就在陪孩子,小区里的游乐场、公园、商场、画画体验馆到处都留下了一个男人背着妈咪包抱着孩子的身影。
 
这时,袁老师出现了,也应该出现了。
 
与袁老师联系上非常偶然,我关注袁老师(@老师木)很久,但并不是很清楚他在干嘛,只知道另一位在我微信联系人里的技术网红@梁斌Penny对他评价很高,说是“大象级码农,在干大事”。
 
2020年5月的一天,他发了个“技术文档招聘”,但上面没写薪酬、没写具体做什么,我就脑补认为这应该是招“论坛版主”这样的角色。当时我空闲时间很多,觉得版主这种事适合我做啊,还可以多认识下技术网红,和技术一线建立联系,有利于教学培训。
 
我还挺正式的,没直接给袁老师发私信,是先按海报信息联系上行政合伙人赵姐,然后再联系上的他。

和袁老师第一次电话聊了一个多小时。
 
他的开场是“我们要做全世界最好的深度学习框架”。我说,我不懂你们要做什么,但是我想认识你,我懂技术也表达好,还时间多,可以免费给你当版主。
 
聊天过程中,才发现OneFlow是真在招全职的“技术文档工程师”,不是招版主。和袁老师聊得挺愉快的,包括工作经历、项目经历、技术演化、人生感悟等,因为没有面试的心理包袱,所以更像是两个男人之间的喝茶侃大山。
 
中间袁老师突然插了一句:你不会来北京是吧,那也可以远程上班。我说这太不靠谱了,即使现在可以远程,到时说有变化,不能远程了让我再去北京可怎么办。
 
袁老师:我们北京的同事也正在远程上班。
 
我:哦~~~那倒好像是真的。
 
愉快地结束聊天后,我发了两类资料给袁老师,一类是我的上课录屏,证明我“表达好”;一类是破解商业软件的笔记,证明我“懂技术”。
 
然后袁老师就邀请我加入了:你的工作经验、能力和履历都挺符合我要求的,有一个问题就是要搞深度学习方向这类型的工作,同样也要求你成为这个方向的准专家(算法、应用、架构等等),也需要你像搞化学、逆向、IT培训一样投入,去学习很多新的东西。
 
在溜娃和躺平中,早已没有技术追求的我,突然很兴奋,我又有机会参与到“做全世界最好的深度学习框架”这波浪潮中,而且可以完全远程上班就更棒了。我答应了。

4

成为AI框架的准专家


OneFlow的工作氛围是非常“野生”的。比如我第一次去北京办公室,遇到个猜不出名字的哥们,就询问身边的同事,结果问了一圈也没问出来是谁。后来直接去问本人,才知道是坐那都已经有一个多月的实习生。当然现在流程上已经很完备,没这么“野生”了,实习生入职有指派的导师、新手村任务、陪练NPC、保护期等。
 
同时OneFlow是强调“心力”的,节选袁老师的一个issue回复:每个人出于热爱和责任做事,要把某一方面的事情做好,要发自内心的热爱,有激情,而不是指派。我理解,这种“心力”是创业公司和大公司做事的最大不同,也是一种最大的优势。我们不预设每个人的能力和工作范围,把自己负责的事情做好,证明能搞定一类事情,也可以获得去试探其它方向的机会。
 
OneFlow强调的“热爱和责任”是个巨大的优点,这很难在其它公司见到:只要你提问得当,几乎所有同事会把帮助你解决技术问题当作他的责任。
 
从我加入开始就不断受到其它同事的帮助:暄哥(谢暄)带我了解OneFlow本身、GitHub工作流;成诚、俊丞给我讲OneFlow的内部设计及原理;文骁严格地review我的代码并教我CUDA优化注意事项;德澎帮我挑有代表性的模型算法去复现、学习;建浩给我讲我没实践过的 C++ traits……不胜枚举。
 
所以,在之后我写文档遇到了知识瓶颈,就通过直接参与算子开发加深理解,开发几个算子后又成为“算子负责人”(这个重大的责任现在转交给了比我适合得多的同事 BBuf),又参与了建浩牵头的多设备支持项目等,就显得比较自然(编者注:袁老师评价姚迟已经是一位优秀的深度学习框架研发工程师)。
 
从不忘初心的角度看,我坚信,我的职责是成为“深度学习框架的准专家”并做优质的技术文档产出,我的工作都围绕这个目标展开。

OneFlow 框架中有许多领先的技术和设计,如果被更广阔的人群或技术圈知晓,可能会推动更爆炸的技术浪潮,如何做好这方面的技术内容输出,我觉得与框架研发的挑战一样重要和困难。所幸的是身边有不少志同道合又非常优秀的同事,我们可以在代码敲疲惫后讨论怎样做技术内容输出,又可以借技术内容输出随意研究最前沿的技术,这种工作状态是很理想的。


现在我们也在招技术文档工程师实习生,详情请见本期二条内容“在OneFlow做技术文档是怎样的体验”,期待你的加入。

最后,不得不提的是,我还在OneFlow捡了一女婿。一鹏作为博士生来公司实习,非常逗,他无耻的样子颇有我当年的风范:在得知我有个可爱的女儿后,就直叫我“岳父”,我让贤婿记得以后每个月工资分我一半预付彩礼,但到目前为止都没收到过款。

其他人都在看
点击“阅读原文,欢迎下载体验OneFlow新一代开源深度学习框架


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存