大学的回忆与总结

前几天发现学信网上的学籍状态变更为已毕业,想着之前规划好的毕业回忆与总结也必须趁着端午节动手了。原计划是拿了双证之后再动手填这个坑,但没想到是尽管我人身在北京,竟然连学校都没办法去,双证也不知何时才能到手。

我坐在电脑前仔细回想这四年,发现这四年并如平常文章所说的快的一转眼就过去。对我来说,大学的四年不仅十分漫长与曲折,还夹杂一些痛苦。现在回头想想,高中简直是我最快乐的时光,只需要一心一意学习就行,而我甚至还没有全身心的投入到学习中。

高中毕业的时候,我就认定了我要去学习计算机专业,而且认定必须去大城市学。可惜的是我分不太够,只能在北京选了一个普通的高校。我的不少同学都认为这所高校十分坑人,因为它收的分同比较高但学校硬件又非常次。我在考虑志愿的时候就已经仔细了解了这所学校的条件,但我还是决定要来,因为想要在分不够的前提下去大城市学习计算机专业,那真是没得选。虽然亲自来了之后还是被学校硬件条件的糟糕而震撼,比如周六无法洗澡、宿舍竟然还没有我以前的卧室大。但是不管怎么样都是我自己选的,也没什么好抱怨的。

由于一些说来话长的原因,我在刚进大学后就认为自己应该尽早独立强大起来,因此我也不想错过任何机会。当时在贴吧上知道了我校两个实力强大的技术社团,一个是与机器人相关的社团(我忘了名字)另一个是ifLab。前者在主校区而且面试的时间被放到很后,我就放弃面试了。后者就在我们健翔桥校区,我就去参加了它的面试。还记得当时接到面试通知的时候发现一个特别有趣的事情,就是它有面试题。我还记得当年的面试题是写简单的网页,多亏了高中毕业时学的Python,我就花了3小时简单的学习就搞定了这道面试题。在面试的时候我不仅展示了面试题也展示了我自学的Python相关的内容。最后结果非常符合预期,那就是我成功加入了ifLab。我在加入ifLab之前填写的志愿是去Android组,不过不知为何我却被分到了iOS组。想想这都是命呀,iOS APP的开发之后变成了我的工作内容。也正是因为进了iOS组吧,我就买了一台MacBook Air。当时带我的是hubo学长,在他的带领下我学习了一些新鲜的事情,开始接触Linux。写到这里突然想起来我接触Linux的过程实在有趣。我们学校是没法个人拉网线搞Wi-Fi而且限制使用设备只有两台,这让我十分的恼火。有一天偶然间从hubo学长口中得知可以用路由器连接学校网,我就兴奋的买了两台廉价路由器开始了我的折腾之旅。想想也真是好笑,我的大一上学期除了写写C语言,基本就在折腾这两台路由器,最后竟然还是没有成功。到了大一下学期我就放弃折腾它们了,因为我实在是没有成功过,没办法从中获得快感也就失去了兴趣。

在大一的时候我想明白了许多事情,比如说学校中的很多事情毫无意义,要做有收益的能够让自己成长的事情。后来我在字节跳动学到了一个词就是ROI(投资回报率),用在大学生活中非常合适,不做需要投资时间但却没有回报的事情。另外大一对我来说算是个好的开始,由于不断的刷题以及一些之前学Python的基础,我的C语言拿了100分,也算是对得起自己的努力吧。到了大一下以后我的兴趣就转移了,C语言的学习成果让我决定尝试一些进阶的事情,比如说游戏开发。

那时我兴致勃勃的下载了虚幻4引擎,买了一大堆关于虚幻4开发的电子书。但很快我对它就失去了兴趣,因为我发现游戏开发不仅需要代码能力,还需要许多模型,而我对建模并不感兴趣。因此我在练手时只能用商城里的模型,而绝大多数模型又是要付费的,这对我来说真是个极大的劝退。在对游戏开发失去兴趣之后我决定好好把这学期的C++学好,再考一个100分。不过很可惜的是最后机考时错了两道选择题才考了96。

在这一年中我很少去ifLab的实验室,因为我觉得躺在宿舍里敲代码非常的舒服。我一直有一种迷之自信认为我能够在嘈杂的环境中专心学习,有趣的是我发现这竟然是事实。但是在宿舍躺着写代码会让腰很酸,这一年后我感觉自己已经撑不住了,所以我在大一的暑假就决定去ifLab实验室学习。在这个暑假我也做了一个影响我人生的决定,那就是开始学习iOS开发。兜兜转转一年,我突然想起我还有一台MacBook Air,我觉得既然花了钱就不要浪费,试着自学一下iOS开发吧。就是没想到呀,这一学就上瘾了。一开始我是学习swift的,但是网上关于swift的资料实在是太少了,我在花了一周摸索之后就决定放弃学习swift转向OC。当时觉得写OC特别有意思,按照高学长所说的,它的每一行代码都用中括号扩起来,就宛如对话一般优雅。这种认知甚至我在学会OC之后认为Java非常的繁琐和啰嗦。当然,当我彻底使用swift开发的时候,我才意识到OC和Java就是半斤八两,一样很啰嗦,只不过前者晦涩难懂,后者长得一副大家都会写的样子。

后来到了大二了,我就开始经常去ifLab实验室了。这段时间认识了不少人,也得到了不少练手的机会。最开始认识的是付佬、pj和高学长。关于付佬,我最想不通的事情就是为什么他天天都在打游戏最后却保送去了清华,这可能就是大佬吧。pj呢,他这个时候正在走一个自己开的深坑,那就是翘课去实习。很庆幸认识他,让我后来翘课去实习几乎没走弯路。当时pj刚刚结束完一段实习,所以我经常能在实验室看到他。由于他是学习iOS开发的学长,我在平时练手的时候有很多不会的地方就可以直接问他。大家应该会有一种体验,就是刚入门时很多编程的坑是在搜索引擎中很难搜索到的,如果这个时候有人指点一下就可以很快明白。学了一段时间之后呢,他安排了我和xzk一起重新开发iBistu,这是个很有趣的事情,因为这是我参与的第一款上架APP。我在这段开发中也学会了很多技能,包括terminal、git和SourceTree的使用,对Xcode和Mac的使用也更加熟练了。现在我和pj还有xzk都在西瓜开发iOS,真是没想到大家最后竟然成为了同事。

同时在大二上学期呢,高学长给我安排了一些事情做,是一些计算机博弈相关的事情。那时我思想上还太年轻,也不愿意放弃任何机会,只要交给我的我都大包大揽。当时我评上了一个国家级大创项目,是在iOS上开发一个苏拉卡尔塔棋的APP,并打算用一些机器学习相关的知识。这真是个深坑,如果说当时我的能力是1,那么这个项目的难度就是我能力的两倍。接了这个事情之后呢,我不仅要开发iBistu,也要开发棋,我只能开始并行做事。往常下课的时间用来写代码已经完全不够用,我开始占用上课的时间写代码。这段时间真是相当的充实,我能感觉到iBistu和棋的开发让我成长的非常迅速。

不过,开心的时间总是特别少,留给我安心成长的时间也很短暂。正如我大一所担心的那样,由于一些说来话长的原因,我在大二下学期失去了生活费。我是一个有骨气的男人,定下了一个不再向家里要钱的决心。我准备试一试让自己独立起来,看看自己到底有几斤几两。在此之后,我的生活一下就转变了,因为我意识到一个残酷的现实,学习可以暂缓和休息,但是如果不工作,我甚至没法活下去。也就是这个时候,我的人生方向一下从学习转变为活下去。当时我认为虽然是要去工作,但是也要做能够让自己成长的事情。对于当时沉迷于iOS开发的我来说,去应聘iOS开发实习生肯定是个好选择。再和pj聊了一段时间之后,我终于下定决心翘课去实习。说实话这么多年来大学期间我才第一次翘课,刚开始翘课时我心里还是有很多不安,后来随着翘课次数的变多我也慢慢变得毫无感觉。

当时我就对我的大学职业生涯进行了一次三级跳的规划,那就是第一次实习去小公司,第二次实习去大公司,第三次实习去BAT。于是我开始执行我的第一个规划,我在Boss直聘上投递了不少小公司,最后拿了两个offer。当时面试时我的计算机基础知识十分匮乏,老板让我写一个冒泡排序,我都写成了选择排序。最后我选择了一家做女性直播交友的公司,也就是Lespark。写到这想起来真是十分感谢pj和高学长,这两个offer就是靠着iBistu和苏拉卡尔塔棋APP拿下来的。

在实习之外呢,我也在晚上下班后和周末的时间做一些写网站的外包工作,于是我开始并行做四件事情。那时我还不懂ROI,但是我能意识到我不能把时间分配给收益较低的事情,于是苏拉卡尔塔棋的开发就几乎被我放弃了,因为我已经在它上获得了足够的收益。我现在回想起来,我大二下的这段时间已经不能用压力山大来形容了,我觉得当时我已经被压到就剩一口气了。我根本没有除了睡觉以外任何的休息时间,早晨7点15起床准备去从学校赶去西二旗上班,晚上7点下班准时走人回学校。到8点回到学校后快速的洗个澡就开始外包的开发到11点回宿舍休息。在工作日更专注于实习,而休息日就进行全天的外包开发。大家都知道学一门新的东西是很痛苦的,我在接下外包的时候甚至连网站的前后端都不知如何系统的进行开发。现在想想这可能就是社会的毒打吧,还好我是一个很硬的弹簧,即使压力山大我也还能扛住。这段时间我也第一次发现自己竟然营养不良,因为我长出了棕黄的头发,这在我身上是从未发生过的事情。4个月后这段实习协议到期了,我选择结束它不再续约,因为我真得非常疲惫,我认为我需要休息一段时间。这4个月的时间让我发现赚钱如此的辛苦,我每天早上7点15起床,晚上7点下班竟然一个月到手还不到4k,到这个时候我才能感受到以前我说的某些话是多么好笑。

休息了两周,我意识到我只有不断的去实习才能维持我的日常开销,因此我开始我的第二段职业规划。很庆幸的是,我的第二段经历非常的顺利,面试的第一个公司是网易,当天就拿到了口头offer,于是我就这么被网易新闻收留了。只有真正进了大公司后才知道为什么要劝学生毕业后去大公司,因为大公司与创业公司相比真的很不一样。首先与创业公司相比,大公司的整体流程非常规范,我个人认为在学校所学的软件工程这门课远没有直接在大公司实战而了解的更深刻。其次是工程复杂度与代码质量更高,我在网易新闻的实习提高了我对iOS开发的认知也很有效的提升了我的代码质量。如果用造楼来形容开发工作,那么在创业公司你只能造平房,在大公司则可以在高楼大厦里造各种各样的房间,而且要造的非常严谨才行,这是很不一样的体验。最后是福利,免费的三餐和下午茶(虽然后来没了)。下午茶我经常能吃到水果真是感受到十分幸福,因为当时我在学校觉得水果太贵舍不得买来吃。

18年底到19年过年前在网易的这段时间里逐渐成长的更加强大了,同时也让身体适应了工作,即使身有压力也不会再觉得犹如山大。这期间我也有幸开始参与了CrazyE的开发并一直维护它到今年初,这是一个课表APP,我在它的开发上使用了许多在网易学来的新鲜知识,有效强化了我对iOS开发的认知。

19年过年后回来很快就是20届的春招了,我虽然不准备去别的公司实习但是也打算出去面一圈看看自己水平如何。当时抽空面了不少大公司,无一例外都是败在了算法和计算机基础上。那一个月对我的打击真是十分巨大,我意识到翘课给我带来的巨大后果,那就是计算机基础不扎实。但同时我又很庆幸,我能够及时开始学习计算机基础并开始刷题。留给我的时间不多,我也不能放弃实习,所以我不得不开始白天上班晚上和周末学习的生活。当时坐地铁来回的时间非常长,我就在地铁上学习计算机网络,看一些面试经验的帖子思考如果是我被问这个问题的话我要如何回答。晚上和休息日就在实验室刷leetcode,刷算法题其实真的挺痛苦的,我刚开始刷的时候甚至怀疑我是不是白学计算机了。之后看了一些算法相关的课程,才意识到算法题跟高中数学有着相似之处,它们的解法都是有套路的甚至不少都有模板,很多题把模板列好,把题目往里一塞就解好了。虽然刷题很痛苦,但是我也强迫自己去喜欢上刷题,让自己每天不刷两题就心里闷得慌。现在打开leetcode上发现其实我刷的也不多,也就263道题。但是我在刷完算法题后发现了我的代码质量和工作中实际的问题解决能力又有巨大的提升,不得不说刷算法是真的有用。接着我又回顾了操作系统和编译原理,编译原理真是个令人着迷的学科,当时我喜欢它到去学了一些llvm的知识并且用swift写出了一个基于llvm为后端的demo语言。后来我甚至想要写一门完整的语言作为毕业设计,但是随着不断的编写和学习,在我掌握了不少知识后我对此失去了兴趣,这门语言也就这么太监了。

这段时间倒是过的非常快,很快就到了7月份的秋招提前批,我开始实施我的第三个规划了。我的秋招第一次面试就是字节跳动,我在这家公司的面试已经fail了好几次了,而且7月初的我也并不是准备的特别好。不过很幸运的是,我还是顺利拿到了offer。但是我在二面的时候竟然说不出哈希的原理,这让我十分恼火,自己的水平真是太菜了。但是我并没有因为拿到offer而停止学习,而是把在计算机基础和算法上的学习重心重新倾向到了iOS上。这段时间我也在网易新闻做iOS 13和dark mode的适配,遇到了许多奇奇怪怪的问题,也因此而成长。于是到8月底的时候我终于感觉到自己遇到了某种瓶颈,我个人觉得我的水平达到一个阶段的顶点应该是在这个时候。另外,这段时间内我还陆续也在面腾讯和阿里,但是这两个公司实在是太能拖了,拖到我都要去字节实习了还没面完,而且一个要去深圳一个要去杭州,最后想想就算了,于是我就开始在面试上放飞自我了。

迫于大四上的实习课程,我不得不在9月份立马去字节实习。因此也有个比较可惜的事,就是网易新闻的iOS 13以及dark mode的适配没能在我手上完整做完。刚来到西瓜视频以后也就马上开始参与bug的修复和iOS 13的适配。不得不说,字节跳动培养新人的机制确实没有网易来的完善。在网易的时候,需求都是leader和同事们统一开完需求评审会后分配,后续 有项管处理杂事,也有统一的站会来抛出问题,最后需求统一上车发版本。而在字节跳动,每个需求都需要自己跟进,靠自己完整的跑完整个流程,遇到问题也需要自己来推进,需求跟上哪个版本就上哪个版本,非常的敏捷开发。几个需求后我就开始自己一人跑整个开发流程,还记得第一次一个人去一个评审会连da说的埋点含义都不知道,导致了错误的开发,最后重写了一部分的代码。而且字节跳动的开发工具链体系特别庞大,技术栈特别丰富,刚进来的那段时间感觉真是有点自闭。不过说实话,在这种环境下能够适应的话,人的成长真的非常快。每个双月之后我都能发现自己明显比之前厉害不少,许多之前认为是面试造火箭的知识,没想到都逐渐在工作中用到。我有很多之前面试时不是特别理解的技术知识点,都因为要解决实际问题而逐渐理解。

也是因为去了字节跳动吧,终于有足够的收入能够搬出去住了,我期待这件事真是很久了。因为我的睡眠特别的浅,舍友一旦打呼噜我一晚就凉了,各种助眠方法都试过了,可惜就是没啥用。吐槽一下北京租房是真的黑,一间8平米的房间竟然就要3k6,不过也算是提高了非常的多的幸福感。毕竟之前上下班来回要2个半小时,还要担心偶尔没得洗澡和呼噜声,现在不仅睡的香而且只要骑车10分钟就能到公司了。从大四开始我的心情就非常愉悦,感觉自己的生活正式的走在了马路上了而不是在小勾勾里艰难前行。19年底我喜欢上了一门有趣的运动,那就是射箭,不得不说,射中黄心的感觉如同投篮空心命中一般让人心里舒爽。在这段疫情过去之后,等我能练习到开26磅的弓时,就是时候买一把属于自己的弓了。

20年到现在为止一切都还算顺利,心路历程不曲折,不仅兑现了带女友去泰国度假的承诺,还搬到了一个一居室里,感觉自己的生活质量再次提高,就是钱包有点空。唯一让人有些沮丧的就是因为北京的疫情,我没法执行我规划已久的毕业旅行了。现在毕业了,突然感觉到周末没有往日的繁忙有些无法适应,不知道应该做些什么。昨天努力思考了一下,觉得我应该开一个新坑,再开发一款教育类型的APP,就这么决定了吧。

在大学中,不仅要学会自学,也要学会独立思考,但是在大学中基本上没有人会告诉你要这么做。我的运气算好,我一直以来都习惯于自学,没想到在大学中却成了非常良好的技能。另一件运气好的事就是加入了ifLab,我实在难以想象如果我的大学没有加入这个社团会多么曲折。回忆起BISTU,我觉得能让我开心的也只有在ifLab实验室里写代码和讨论的时光。还记得ifLab创立的初衷有一条就是让社团成员毕业时具有一年工作经验的水平,我觉得我可以勉强厚着脸皮说自己达到了。

我的大学总的来说算是一段很曲折的故事,尤其是在大三的时候由于学业和实习冲突,导致我非常期待早日毕业,因为呆在学校已经无法让我成长了甚至会拖累我。我意识到,学校的许多课程是毫无用处的,自己才会知道做什么事情对自己的成长帮助最大。一些老师觉得学生应该按照自己的规划来在新手村慢慢练级,殊不知像我这样的学生早就已经走出新手村开始自由探索。至于考不考研这些问题,这是完全依赖于自己的背景以及自己的思考,并不是老师说考研好就去考研。我很早就明白,大学是一个需要长期奋斗和自我思考的地方,跟着老师的节奏走不一定好也不一定不好。我希望读这篇文章的学弟学妹们都能独立思考,清醒的、客观的意识到自己到底需要什么,这种思考需要抛开老师和家人的说辞,只有这样思考后得出的结论才是你所需要的。后来我思考了很多,我觉得大学教育对于我这样的学生应该学会放手,因为我知道什么时候做什么事情,也有很强的自我驱动能力。当然还是感谢大部分老师对我的放手,能够信任我并给我机会,让我能够顺利完成学业。写到这里还是需要再次感谢pj,因为他告诉我了各种学业上的坑,我才能达到没有挂科的完成学业,同时也很感谢各位在期末考前帮助我复习的同学们。

我的人生在下个月即将开启新的篇章,写下这篇文章也是为了回忆和反思这四年所发生的事情。前路漫漫,人生曲长,希望我正式走出象牙塔后的日子里也能较为顺利。