写在毕业季前

笔者的本科学校是广东省的Top2之一,专业软件工程。此文主要是回顾自己大学四年的难忘经历,如有一两点感悟能帮到读者,甚喜。

四年的轨迹

“前松后紧”四字恐怕适用于大多数大学生,包括我。大一过得优哉游哉。大二努力学习。大三有感于身边大牛的提前规划和踏实努力,开始打算毕业之后的事。我在大三上用尽办法选课,修满选修学分,令大三下尽量空闲。最初的想法是准备托福考试,申请港校硕士。但后来亚洲超算比赛的经历拓宽了我的眼界,让我萌生留学美国的想法。由于准备起步较晚,折中地选了联合培养项目,后来项目生变,遂有了一段曲折离奇的人生经历。

专业课与兴趣点

大部分的课程在考后三周忘得七七八八,只好谈印象最深的若干门。唯一超低空飞行的课程是高等数学,用的北大版的红皮教材。回过头来想,期末考前花两周死磕的模式根本玩不转,得用高三刷题模式去攻克。只是当时没有给予足够的重视。略有遗憾的是算法设计课。归结原因还是平时投入的时间太少,疏于练习。考虑到工作面试总归用到,遂决定自学补救。

大学课程里面,最让我觉得难度与趣味同在的一门,应算编译原理。全力以赴之下,仍拿不到高分的神课。正是这门课程让我对编程语言和编译器产生兴趣。也让我体会到,发明工具本身给我的成就感比使用工具来做出产品更大。此前不确定自己的兴趣在哪里,于是在选修课中大量尝试,Win8应用开发,Web应用开发,Cocos和Unity游戏设计,电子商务导论,移动机器人(小车)设计。越来越觉得应用开发没有意思。

可能一方面是自己的应用创意不够,没有一些好的想法支持,做不出有趣的应用。相反,底层的工具设计在追求效率,简洁高效,很纯粹。另一方面,随着高级语言进一步进化,开源库的逐步丰富,应用开发的门槛越来越低。对“科班”出身的开发者而言,竞争越来越激烈,想要拿一份优厚的薪水,一条路是往管理走,提升people skill, 一条路是往专家路线走。现在回过头来看,这个想法也是我决定读研的动机之一。

转折点:亚洲超算比赛

从2016年1月的学校选拔面试,到4月25日的现场赛,训练时间约为三个月。笔者主要负责应用调优,简单讲,就是处理繁琐的编译过程和参数调优。就收获而言,编程方面的能力没有多少提高,但问题解决的思维和耐心得到了锻炼。一个计算科学的并行应用涉及大量的数学库和不同的编译工具,而每一个库都宣称自己速度良好,效率拔群。作为调优者,只好一个个编译安装,实测效果。而繁琐的编译过程随时可能出现“意料外”的错误。使用搜索引擎,发邮件向负责维护的开源社区寻求帮助,甚至阅读代码并结合报错信息debug,都是可能的解决方案。而克服重重困难后的成功运行,也不一定有速度上的提升。毫不夸张地说,在编译和运行阶段上百分之99的尝试都是收效甚微。但1%的机会也值得尝试,因为这个阶段上的优化成本比起修改代码会低得多。

决赛(现场赛)的要求是在3000W功率限制下,完成linkpad,HPCG基准测试以及并行应用的大堆算例。现场赛本身就是心理和身体素质的巨大挑战,2天时间组建集群和调试系统,后3天完成算例和现场答辩。即使有过模拟训练,但到了现场还是状况百出,以致于每天只能睡大约5个小时。不过苦中也有乐。作为一名工科生,对亲手组装机器有一种痴迷情结。亲手组装刀片式服务器,在机架上调整服务器位置,连接IB网交换机,给服务器装上Tesla K80加速卡,配置系统和并行应用,最终成功运行,这一系列实际操作带来大写的成就感和满足感。比赛真正激动人心的地方,是在现场。

技能以外,是见识的增长。集训期间有机会旁听研究生的组会和实验室的交流会,而正是这段经历更加坚定了出国的想法。一些同专业研究生反馈,让我对国内的研究生教育比较失望。亲眼看到一名毕业前一个月才开始着急论文的研究生,能力实在不敢恭维。很害怕自己在温水煮青蛙的环境中“混日子”,变成自己讨厌的人。

加分提款机:MCM建模比赛

与舍友组队奋战数日,获得H奖。就比赛本身的意义而言,主要对保研,或者奖学金加分有作用,如果是准备本科后工作,可谓可有可无。如果不在乎600块报名费,不妨体验一下五天的早起贪黑的极限写稿或编程。值得分享的一点是,M奖青睐经典的模型和算法。毕竟自己短短几天设计的模型确实乏善可陈。就我所知,身边拿到M奖的队伍都是用了马尔可夫链,神经网路这种机器学习里面教过的算法,也是计算机相关专业比较多接触到的算法。

不只是语言考试:托福和GRE

因为总总原因,这两个语言考试都考了三次。对,你没有看错,是三次。最终是T99 + G328,AW3.5.考到最后一次的时候,都有点绝望了。金钱是一方面的原因,还有一方面是对自信的打击。没有信心,就难有好的发挥。自己都不相信自己能赢的话,就是真的不战而败了。

回过头来看,单词量是关键。比较好的备考战略是先考GRE再考托福,脱产两个月背单词书,非常专心地背,把GRE刷上320,然后托福的阅读也就基本没有问题。背的过程非常痛苦,遗忘曲线简直像是诅咒。在自己战胜它之前看起来就像是无法战胜,经历过的人都会有所体会。这两个考试对真正英语交流能力的提升还有待亲自验证,但考试过程确实是一道生理和心理的考验。两个月(至少)反复背枯燥无味的单词,就是留学路上的第一道严峻考验。并不是闯过去就一帆风顺了,后面的挑战会更多,而前面一个又一个克服的障碍会增添自己的自信。

不得不提:英雄联盟

作为这个游戏三赛季的玩家,大约进行600场对局,白银I水平。期间一度觉得打游戏在虚度光阴,两三次卸游戏,戒撸,但没有成功。就迷恋程度而言,跟小学玩的梦幻西游一个程度。究其原因,是因为游戏会带给玩家堪比现实世界的成就感。以前看到“人生的意义在于自我实现,得到他人的认可”这样的说法时,会感到莫名其妙。有了一些见闻后,同意“自己渴望被认同”这个说法。而竞技类游戏中获胜的满足感,与篮球,足球等其他运动无异。刷怪刷装备可能很快生腻,但竞技电子游戏的机制,让人沉迷。要放弃这样一个游戏的过程通常是艰难的,狠心一卸载很容易又会重新安装。逐渐失去对局的兴趣,才会走到最终的放弃。

而我放弃这个游戏的契机,是在备考GRE的三个月苦行僧身生活之后。在那个春节假期,感受到了生活的乐趣。以前觉得过年走亲访友,吃吃喝喝没多大意思。大概因为是过了三个月隐居备考日子,所以能重新看到俗世生活的乐趣所在。也是在毕业前的这个春节,感受到生活的压力。也是在这个时间点,有种经历若干世事,开始成熟的感觉。

结语

本来胸中有千言万语想写,下笔之后又像是流水账,自己看着都觉得无趣。开始写博客的动机有很多。记录技术笔记是一方面,锻炼表达能力是一点,打发原本的游戏时间也是一点。每次想到往后有四十年的工作时间,如果没有几件自己喜欢做的事,就太可惜了。如果能把博客记录生活,培养成一种习惯,一种兴趣,甚好。 

posted on 2017-02-22 13:49  Kinsang  阅读(321)  评论(1编辑  收藏  举报

导航