·学生事务

当前位置: 本科生求职心得

董明凯:优秀毕业生成长成才故事

[ 2015年6月30日 ]

转眼间,大学的时光就要过去,回想起这四年的生活,不由得感慨万分。“选择交大,就选择了责任。”马德秀书记在第一堂课上的谆谆教诲还在耳边回荡,而我却即将穿上学士服,与本科生活挥手告别。

毕业之后,我将会留在上海交通大学软件学院继续攻读硕士学位。之所以做出这样的决定,主要以下几个原因:1、在本科阶段,受到知识水平、时间和精力的限制,我并没有在学术研究上有太多的成果。因而我希望自己能够在研究生阶段专心的做一些研究,争取在相关领域留下自己一些印记,为计算机系统方向的发展做出自己的一份贡献;2、现在部分IT公司的工作都带有一些研究性质,而有一段研究生的经历和背景对于从事这些工作有很大的帮助。其实在刚入学的时候,我并没有对自己未来的发展有非常明确的目标,但是随着年级的升高和对本专业的了解,我渐渐发现了自己的兴趣所在,也对自己的未来有了初步规划。本科阶段一系列系统方向的课程,让本来就喜欢底层的我坚定了在系统软件方法继续深造的信心。虽然有了目标,但我并没有刻意的为其努力。我做很多事情都是出于兴趣,又或者只是想做,所以想要做好。

作为大学生,最重要的事情依然是学习。软件学院并没有实行大平台授课,因此在大一的时候我们就开始学习专业相关的课程。由于大学之前我有学习信息学竞赛,像程序设计这类的基础课程并没有给我太大的压力。当时的我甚至觉得专业课没有什么值得学习的,语言都可以自学,代码都可以写,还有什么要学的呢?这种想法一直延续到大一下学期,那个学期有一门专业基础课叫做《深入了解计算机系统》。这门课本是卡内基梅隆大学的毕业生课程,用于总结本科阶段学习到的各种知识。这是一门非常赞的课,臧斌宇老师讲的生动有趣,助教们认真负责,平时作业和实验(lab)也恰到好处。各重要的是,这门课的内容既有广度、又有足够的深度,即使对于熟练于写代码的我来说,仍然是学到了很多很多新的知识。通过这门课,我知道了缓存对于程序运行效率的重要性,知道了流水线CPU如何工作,知道了如何写出并行程序并进行优化。这门课仿佛是一把金钥匙,为我打开了一扇通往新世界的大门。而随后的一系列课程,包括《计算机系统工程》、《操作系统》和《分布式系统》,让我们对计算机系统更加了解,也逐渐接触了很多科研的前沿成果。正是这些课程让我深深喜欢上了计算机系统软件方向。除了系统方面的课程之外,另外一个给我印象最深的课程是《软件工程》。之前做项目,都是一个人在写代码,然而随着项目规模的不断增长,通常需要一个团队共同完成一件事情。在《软件工程》课上,我学习到了如何与团队中的其他人进行合作,如何管理代码,如何书写文档。而软件工程中的设计模式,也让我大开眼界。原来我们遇到的很多问题,前人已经都遇到过,并且早已为我们总结出一系列的方法来避免重蹈覆辙。在软件学院并非只有软件方面的课程,《数字部件设计》是一门与硬件非常相关的课程。在这门课上,我接触到FPGA开发板,并在其上实现了自己的流水线CPU,还使用FPGA尝试写出一个简单的人脸识别程序。我本来就喜欢底层的东西,而这门课也恰好符合我的口味。最终我还在数字部件设计的实验课中获得了满分的成绩。

除了专业课外,选修课的学习是大学里非常有趣的一件事。我在选课的时候,除了考虑时间因素之外,我尽可能的选一些自己感兴趣的课程。这样不仅能够开阔自己的眼界,也能让自己学习起来比较开心。本科阶段,我有选过美术、设计、哲学、心理学、数学、机器人等方面的课程,虽然没有学的很深入,但对这些学科都有了浅显的了解,这也让我的生活和学习更加丰富而有趣。

随着网络技术的发展,越来越多的学习资源被搬到的网络上,各种新技术层出不穷。除了在学校上课之外,我还在网络上学习了很多新的技术。大一的时候曾经有个想法:既然大家玩游戏能够上瘾,为什么学习就不能上瘾呢?于是我打算做一个网站,把学习和游戏结合起来。后来在学院老师的帮助下,我基于这个想法申报了大学生创新实践计划。为了完成这个项目,我在网络上自学了很多网站搭建和开发的技术,从语言PHP、HTML、JavaScript、CSS到一些基本软件Apache、MySQL的使用,再到数据库表单的设计和维护等,俨然成为了一个全栈工程师。学习了足够的知识后,我开始着手自己的项目。在小伙伴们的共同努力下,经过了近一年的时间,我们的项目终于有了些成果,我们在经典游戏“贪吃蛇”和“炸弹人”上加入了一些与学习相关的内容,并在网页上实现了对战。答辩之前,我和小伙伴们还在党团活动室一起开心的玩我们自己做出来的游戏。最终经过答辩,我们的项目“在线学习与测试平台”被评为“第五期上海大学生创新活动计划”的优秀项目。

这次项目之后,我继续学习相关的知识。在大二的时候,有复旦大学的同学找我一起参与创业项目。项目是一个旅游类的网站,由于之前并没有创业经验,加上课程压力并不是很大,我决定加入到他们之中。当然,作为一个程序员我的主要工作是服务器端的搭建和开发。随着开发人员的增加,我们学习使用Git管理代码和进行多人协同开发。由于是兼职创业,我只能在每天空余时间写代码。从合作上来说,这并不利于开发人员之间的交流,也不利于从其他创始人那里快速的得到反馈。于是我们约定每周末大家在同一个地方见面,同步一下大家的进度,并且讨论一些遇到的问题。在讨论中,除了软件开发,我也有接触到包括用户调研、产品设计、用户体验设计、产品推广在内的很多其他事情。最终网站上线了,但是我们的项目并没有被投资人看好,最后也没有成功。当然,虽然创业没有成功,但是在创业的过程中我学到了很多东西,不仅仅是软件工程在实际项目中的应用,还包括一些做产品、设计以及金融和管理方面的知识。这段创业的经历,让我深入了解了创业的过程,也体会到了创业的艰辛,相信这对于我毕业之后的发展会有很大的帮助。更重要的是,在这段经历中,我交到了一群有想法、有胆识、有创意、有激情的朋友。

在大三的时候,我通过面试进入了并行与分布式系统研究所(Institute of Parallel and Distributed Systems, IPADS)。受到本科课程的影响,IPADS对我来说一直是一个很神圣的存在——IPADS中牛人很多,他们不但很聪明,而且很勤奋,他们还经常在计算机系统著名国际会议上发表论文。在进入IPADS之后,我发现这还是一个非常融洽的集体,老师们和同学们打成一片,经常一起吃,一起玩,一起讨论和研究问题。这种其乐融融的氛围,让我更加坚定了在IPADS读研究生的想法。

由于高中时学习过算法,到了大学之后,虽然没有继续参加ACM-ICPC,但为了让自己保持一个良好的状态,我继续参加一些算法比赛,主要是Codeforces和Google Code Jam。我认为算法就和数学一样,虽然不会对实际项目直接的产生很大的影响,但可以锻炼自己的思考能力和写代码的能力。另外一点是现在的IT公司在面试的时,还是会比较看重算法水平,因此保持一个良好的状态对于将来就业也有好处。

除了日常的学习和课外的技术相关的事情之外,我还积极参加各种活动。大学的社团活动是丰富多彩的,我在海外学子中心担任过干事,参与组织过民族文化节。我还参加微软学生技术俱乐部,后来担任副主席,除了组织活动外,还参加过微软学生夏令营。在大二时我担任过上海国际马拉松的志愿者,清早起来忙碌一上午,虽然觉得很累,但是却很开心。同时,为了保持一个健康的身体,我还经常出去跑跑步,偶尔会去健身房和游泳馆。

时光飞逝,转眼间就到了毕业的季节。感谢交大,为我提供了一个良好的学习和生活环境;感谢老师们,在四年的时光里让我学习到了很多知识;感谢同学们,伴我度过美好的大学生活!我会继续努力,创造更美好的明天!

 

访问数量: