如何规划好大学生活

作为公司雇佣品牌宣传的一部分,作为学长,应邀给厦门大学计算机学院大一的学生作主题演讲,谈谈如何规划好大学生活。这篇文章根据演讲内容整理,也作为回忆,给自己的记忆长廊里增加一个注角。

积跬步以致千里 - 个人大学生涯回顾

人与人的差异,从最开始的时候,只是差一点点,随着时间的推迟,差距就会越来越大。人与人,就像两条从同一个位置出发射线,虽然起点相同,但最终会越差越大。小学一年级的时候,可能由于你比较老练,表达能力比较强,比较大方,被选为班长,此后你的沟通能力和管理能力就会比别的同学得到更多的锻炼机会。

回想自己大一的时候,连电脑都没摸过。第一次《计算机基础》课程上机的时候,看到同学会换电脑桌面的壁纸,佩服地五体投地。兴趣使然,回去花了一周时间把《计算机基础》的课程全部看完,然后抱着书,去图书馆计算机阅览室排队上机,沉浸在计算机的世界中,忘记了时间存在,深深地体会到后面才知道的称为“心流”的体验中。

从此一发不可收拾,到图书馆借书看,制作个人主页,学习简单的编程,什么 HTML, VBScript, JavaScrit, JSP, Java, MFC,囫囵吞枣,贪婪地学习。现在回过头看,当年学到的东西都很皮毛,而且也不系统化。但不知不觉就比很多同学掌握的知识多。

机会发生在大二暑假,在学校 BBS 上看到一个暑期工广告,给学校网络中心开发一个论坛系统。自告奋勇地去面试,没想到很轻松地就被录用了。去上班了才知道,为了在原有的系统上进行二次开发,需要使用 Lotus Notes 编程语言,现在很多同学可能都不知道这是什么鬼了(实际上 Lotus 公司曾经也辉煌过,在信息化办公(俗称 OA)领域是曾经的领头羊,后来被 IBM 收购了)。没办法,只能现学现卖。两个月很快地过去了,做出来了一个蹩脚的论坛系统。现在回过头来看,代码前后端不分,组织混乱,根本就没有实现数据和界面分离。但有两个很大的收获,一是指导我们工作的一个 96 级的学长,非常地 nice,从他身上学到了很多。二是第一次参与了生产环境的软件开发。

有了这次经验,大三暑假时,去应聘建行研发中心的暑期工,也是很容易地被录用了。记得当时有一个计算机系的研究生也一起去面试,结果他没被录用。印象很深的一点,当时面试官出了一道考察连接数据库方法的题目,让候选人在纸上写出 VB 连接 MSSQL 数据库的连接字符串,我很轻松地就写出来了,那个研究生想了半天也写不出来。在建行实习了两个月,赚到了 2600 元钱,这在当时真是笔巨款,我一个月的生活费才 500 元。拿到钱的那一天,特地在中山路下车,给女朋友买了一瓶欧来雅的面霜花了我 130 大洋。如今,当年的女朋友也变成了现在的妻子,她现在还念念不忘当时我给她买的那盒面霜。其实,后来参加工作后,给她买过 10 倍价钱的面霜,但在她心里,大学的那次是意义最重大的。钱是一回事,更重要提,在这次的暑期工作时,学习到了团队协作,模块划分等开发方法。也学会了使用代码管理系统(那时还是用古董级的 CVS)。

进入大四,基本没啥事,基本上有 1/3 的时间都在外面给一个创业公司做基于 JSP 的 B/S OA 系统。大四的时候,生活费基本能自理,而且过得还挺奢侈的。每天十一点熄灯后,都和舍友去白城炒青菜,吃煎饺,喝啤酒。要么就是订莆田卤面的外卖,然后偷电玩游戏到半夜。那真是段难忘的时光啊。

大学四年,有了这些工作经验,找工作真的一点都不愁。我记得当时很早就拿了两份 offer,由于女朋友还有一年才毕业,所以决定留在厦门,最后决定去了夏新。

但行好事,莫问前程

很多时候,大部分人根本想不出来,当前做这件事情有什么意义。乔布斯在斯坦福毕业典礼上的演讲分享过一个故事。

我跟着我的直觉和好奇心走, 遇到的很多东西,此后被证明是无价之宝。让我给你们举一个例子吧:Reed大学在那时提供也许是全美最好的美术字课程。在这个大学里面的每个海报, 每个抽屉的标签上面全都是漂亮的美术字。因为我退学了, 不必去上正规的课程, 所以我决定去参加这个课程,去学学怎样写出漂亮的美术字。我学到了san serif 和serif字体, 我学会了怎么样在不同的字母组合之中改变空白间距, 还有怎么样才能作出最棒的印刷式样。那种美好、历史感和艺术精妙,是科学永远不能捕捉到的, 我发现那实在是太迷人了。

后来他在设计 Mac 系统的图形界面的时候,使用的就是他设计的字体。当年的 Mac 系统图形界面真是绝杀 Windows 系统(其实现在也是),不能不说字体是一大功臣。

乔布斯在当年根本不可能想到,他去学习这个字体是为了未来设计 Mac 系统的图形界面。而只是凭着直觉和好奇心往前走。我不忍心翻译这段话,让乔布斯的原话呈现出来吧。

Of course it was impossible to connect the dots looking forward when you was in college, but it was very, very clear looking backwards 10 years later. Again, you can’t connect the dots looking forward. You can only connect them looking backwards, so you have to trust that the dots will somehow connect in your future. You have to trust in something–your gut, destiny, life, karma, whatever–because believing that the dots will connect down the road will give you the confidence to follow your heart, even when it leads you off the well-worn path, and that will make all the difference.

从个人经历来看,职业生涯前期,走得非常顺,参与工作一年就升任小组长。不能不说跟自己大学时期的积累和经验有非常大的关系。但行好事,莫问前程。大学四年,尽量跟着直觉走,充分挖掘自己的兴趣,保持好厅心,尝试不同的事物。

关于专业课

计算机系有很多专业课,汇编语言,微机原理,操作系统原理,编译原理等等。还有线性代数,微积分,统计学。这些课程对工作真的有用么?当年在学校的时候,我也有这样的疑问,特别是一门《信号和系统》的课程,一堆变换和公式,看得头晕脑胀,根本不知道有什么用。还有线性代数和微积分,除了应付考试,真不知道能干啥用,不会这些依然可以写出优美的代码。

大家知道,现在编程培训班很流行,交个万把块钱,突击学习几个月,就可以去应聘软件工程师了。这些人和科班计算机系毕业的软件工程师的区别在哪里呢?

我的观点是,快餐文化为特点的培训班生产出来的软件工程师,只知其然,不知其所有然。这些工程师只能在别人设计好的框架里做点简单的界面开发和业务逻辑堆砌,根本无法胜任复杂的系统设计和开发工作。相反,只有熟悉计算机体系结构,熟悉底层原理的工程师,才能深刻理解计算机的运行机制,遇到问题才会从原理上分析,并解决问题,才能胜任复杂系统的设计开发和维护。

接触过机器学习的人都知道,线性回归算法,逻辑回归算法的公式推导过程,归根结底就是线性代数和微积分的运算。如果没有好的数学功底,根本就无法理解这些算法背后的原理和推导过程。而且,现在所有的机器学习算法,包括深度学习/神经网络等依然工作在统计学范畴之下。

大学里有大把的时间和专注力,大学时期,是掌握这些专业课课程的黄金时期。错过了这个时期,踏入工作岗位,很难找到时间系统化地学习这些知识。而且良好的专业素养,就是体现在这些基本功上。

知道为什么很多企业会看中学生的学习成绩么?并不是因为考试成绩好,会给工作带来什么帮助,而且认可背后的逻辑:既然能把学习搞好,工作起来大概也差不到哪里去。看过弘一法师传记的人都会清晰地记得,弘一法师的过人之处,在于认真。做任何事情,都全身心投入,而且都做出了成绩。在上海时期的文学,日本留学时期的音乐,回国后教书,到后面出家,研究佛教戒律,都做出了凡人难以企及的成就。


Post by Joey Huang under essay on 2019-07-18(Thursday) 23:16. Tags: thought,


Powered by Pelican and Zurb Foundation. Theme by Kenton Hamaluik.