全部版块 我的主页
论坛 休闲区 十二区 休闲灌水
1098 0
2009-10-15
下篇·为梦前行
又是五月,去年的这个时候我还捧着厚厚的红宝书,乘坐熟悉的217路公交车赶去新东方学GRE;前年的这个时候,我忙碌于ACM-ICPC和数学建模竞赛……
今年五月,我坐在实验室中,筹划着自己的毕业设计,追寻着自己的梦想与未来……
大一:问自己--这个专业到底要学什么
记得上大学前的那个假期,看过一个我们学校学生拍的DV,名叫《完美动物》,其中还算是比较真实地反映了现在大学生的学习与生活状况。看着片中主人公毕业前声嘶力竭的忏悔,我暗暗告诉自己,决不能荒废掉宝贵的大学时光。
之前一直有志于从事核物理与工程的研究,不料,高考却使我阴错阳差来到了计算机学院。之前,我对计算机没什么了解,更不知道C语言究竟是哪一国的语言……不过,我的内心却强烈希望自己能学有所成,成为一个领域的牛人。
大一,我花了一年的时间去探询计算机科学与技术专业到底要学什么,我对这些是否有兴趣,将来要从事什么工作。听人家说计算机专业的学生要首先掌握一门编程语言,于是我自己跑到书店,随便挑了一本很厚的C++教材,开始啃了起来。就这样,C++成为了我的入门编程语言--没想到四年后的今天,我还要靠着它混饭吃。
我大量翻看各种杂志与人物访谈,希望能够在其中找到我的未来。大一的时光很快就过去了,这期间,我努力培养自己对计算机的兴趣,努力去寻找自己未来的方向。
"计算机专业到底要学什么",这个问题经过大一一年的探索渐渐地清晰起来。我从网络及图书馆里学到了很多的知识,看到了一个新的天地,我也深深地为这个世界着迷。此时,我发现学校里的课程教育和我对计算机科学与技术专业的理解有很大的差别。课堂上多数老师都在重复着幻灯片里的文字,一部分希望上进的同学耐心地接受着这种方式的"科普"教育,考试之前花费大把的时间对老师划的"范围"里的知识进行机械地记忆,之后考出一个令人瞠目结舌的高分(信不信由你,我们班有平均分95以上的);另一部分同学则将自己的大好时光寄托于网络游戏,或是花天酒地终日穿梭于声色场所……
这段时间我觉得自己是那么的孤独,我试图融入周围学习比较认真的同学当中,我希望他们和我一起去探索那个未知的天地。但是,我发现没有人可以与我一起去探讨计算机问题,也没有人和我一起去做程序。我不断问自己,为什么这种教育方式得到了这么多老师以及身边这么多同学的认可,难道是我错了?杂志上、访谈中那些名人的学习经历难道仅仅是天才的专利?是不是要成为高手一开始都要去背概念、去考高分,去经历这个"乏味的"阶段,至于动手编程要等把这些都做好了以后再练……
直到大二上学期结束,我终于确定,学校的教育并不合理,多数老师讲的是"垃圾",照本宣科的很有可能是他们自己都没学明白的东西。而计算机科学与技术也不是仅仅学学概念就可以成为高手的,况且按照学校的这种方式学下去,似乎概念都学不好,充其量不过是个记忆高手罢了。
这里插一句,事实也证明了我的这种说法。我的考试成绩虽然不是非常突出,却也还算过得去,每个学期基本上都能拿到院里的二等或三等奖学金。但是在我后来求职的时候,这些靠背概念就能拿到的奖学金证书并没有起到什么作用。以我的面试经历来看,我简历当中最打动面试官的地方恰恰是我利用课余时间及逃课所写的程序,还有利用背考试题的时间所读的课外书。这里请大一大二的学弟学妹们好好考虑一下:时间有限的情况下,在高高的GPA和实际编程能力的训练之间我们应该如何权衡。
大二~大三:为了心中的理想拼搏--准备编程竞赛
在新东方,我发现自己是井底之蛙
大二的寒假我没有回家,在沈阳新东方报了个TOEFL班,初衷并不是想出国,而是要利用假期恶补一下英语。但是到了新东方我发现到这里并不仅仅是学习英语,我接触到了很多新的思想,认识了很多有理想的同学,"留学"在这里更多的是理想的代名词。我被这种氛围深深地吸引了,我开始意识到自己之前好像一只坐在井底的青蛙,外面却是更加广阔的世界。这时我拼命学习,不仅仅是英语,还有编程。因为学校要到大三才开设数据结构课程,而我知道要编写好的程序必须熟练掌握这门课。于是我弄来了清华大学严蔚敏的《数据结构(C语言版)》教材,先是去努力理解里面的概念与理论,然后再将练习册中的习题逐个地编程解决。这时我还知道了有一个叫做ACM-ICPC的编程竞赛,有很多大学生都参加,为了练习,我经常到浙大的在线评判系统上去答题。总之,这个假期我没有休息,努力去学习英语和编程。
开学之后,我开始"心安理得"地逃课,对于一些听了让人"坏脑子"的课程我基本不听,甚至不去,而且心里不再有从前逃课时的"负罪感"了。这里要插一句,请大家不要误解为大学里没有好老师,没有值得听的课。其实还是有一些比较负责的老师,他们的课程丰富有趣,讲解得透彻易懂,而且包含着很多经验之谈。举个例子,我们大三时开设的"操作系统"课程就非常不错,尽管当时我在备战GRE,但是整个学期我没有落过一节课。
刻苦练习,准备参赛
我把大部分的时间都用来练习编程、学习算法,因为我们学校第一次有资格去参加区域性的ACM竞赛。我发现仅仅是那本数据结构书并不能满足ACM的要求,我就到MIT的OpenCourseWare去学他们的算法导论,正好还可以顺便练练听力。ACM的题目要求有较强的数学建模能力及Coding能力,有些题目难得让人根本找不到思路,还有一些看似简单的经典算法题目其中却暗含着大量的陷阱。
我每天坚持至少8个小时的算法理论学习及编程练习,多则长达14个小时。这段时间可以说是我编程能力提高最快的时光。我学到了很多的知识,其中最大的收获就是对于一种陌生的算法或形式化描述,我能很快地理解,并用程序去模拟它的流程。其实大多数看似非常复杂的算法都是由这些最基本的算法思想演化而来的,扎实的算法理论基础对于今后的相关课程学习是非常有帮助的。对于现在程序员中流行的"算法无用论",因为我还没有接触到正规的企业开发,所以暂时不予评论,但是我相信:要想成为优秀的程序员,对于基本算法有深入与精确的理解应该是一项必需的基本技能。
然而,虽然我进行了近三个月的刻苦努力,但是比赛的结果却仍以失败告终。原因有很多,有外部的,但更多的是自己的,比起更多的程序高手,我只不过是个普通的Coder,资质一般,接触编程的时间不如他们长,训练的强度也不如他们大,用"脚后跟"想想就知道结果了吧。其实当时我将更多的希望放在了明年的比赛上,不过后来因为备考GRE而放弃了。
参加数学建模竞赛
参加数学建模竞赛是我大学生活当中比较有意义的经历,也是在这里,我找到了和我有共同爱好的同学,我们可以进行交流,对问题进行争论甚至争吵,我体会到了与别人合作的快乐。数学建模竞赛实际上就是一个迷你的科研过程。别人提出一个问题,这个问题可能出自于不同的领域,而且大都目前没有得到很好的解决。参赛者用三天的时间搜集与查阅资料,针对问题提出合理的数学模型进行解释,通过实验得出数据进行验证,最后写成论文。我很喜欢这种完全不同于课堂与考试的研究方式,我也非常喜欢用学过的数学知识去解决一些实际的问题。
从大二开始,我参加了两次全国比赛,一次美国的比赛。得了一个省级二等奖,一个国际二等奖。结果一般,但我觉得过程更重要(决定比赛结果的往往有很多原因)。这个过程中我学会了很多,包括一些有用的数学知识,分析问题的方法,数学建模的一些技巧;我试着去学习如何快速地掌握一个陌生的理论并将它运用在建模中,如何与队友配合,如何发挥团队每个成员的最大优势等。
依然清晰地记得2008年的那个寒假,我们留在学校参加美国建模竞赛的情景。我的一个队友是我的同班同学,他的文笔非常好,英文水平也不错,主要负责参赛论文的写作;另一个是数学系的学生,当时还是我们学校建模协会的主席,他的数学功力不错,主要是进行模型的分析及公式的推导;我则主要负责问题分析与计算机求解等方面的工作。我们的配合非常默契,而且也都渴望能够取得好的成绩。我们队是所有组里最刻苦的,通常是早上6点起床去实验室,直到晚上10点才回去。记得当时做了不少练习题,阅读并分析了近几年来MCM的Outstanding论文,而且逐渐形成了我们自己的配合与交流方式及解题风格。经过了将近三个星期的集训,我们满怀信心与激情地开始准备比赛。但事事难料,竞赛的前一天半夜,我竟然高烧39度,队友冒着严寒(那时的沈阳格外冷),半夜陪我跑到附近的医院打点滴,照顾我休息,一直陪我到第二天清晨才回去。这让我非常感动,同时也深深感到了有好的团队与氛围是多么重要。之后的竞赛,我发挥一般,不过通过我们齐心协力的配合,拼了四天三夜,总算按时完成了那篇一万多词的英文论文。虽然最终的结果没有达到我们为学校创造历史的期望,但遗憾却无法掩盖这难忘的美好经历。我忘不了那段奋斗的日子,忘不了大家一起通宵讨论数学模型,忘不了生病时队友的关怀,忘不了单老师的耐心指导,忘不了朱老师每次总是在最后多发一盒饭给我,更忘不了大家为了同一目标一起拼搏的时光!

大三~大四:考G与求职
大三下学期,我决定加入考G大军。当初决定考G的原因有很多,不过简单来说就是对现状的失望与逃避,以及对自己梦想的憧憬与向往,我并没有对自身的条件及现实情况做足够的评估,这从某种程度上已经决定了失败的结果。这个决定是草率的,但是我却从来没有后悔过,因为在整个备考的过程中我付出了很大的努力,虽然努力得还不够;也收获了很多,我甚至因为这段时间的英文积累在后来的求职过程中得到了一个去外企工作的机会。
虽然有足够的心理准备,但是此次北京之行仍给了我很大的触动。本来以为虽然外界形势不太乐观,拥有"中国硅谷"的北京会受到一些影响,机会仍会很多,但我在北京转了将近一周的时间,发现在规模最大的招聘会上也仅仅有很少的几家公司,而且竞争异常激烈。直到现在我还清晰地记得招聘会上拥挤的人群,诸多求职者焦急的神情……
在求职的过程中,我曾经很多次遭遇因为学校不是重点大学而被HR当场拒收简历的尴尬,我也经受了在网上投了几十份简历而杳无音信的焦虑,以及在某公司的面试现场被人毫不留情鄙视的无奈。总之,找工作的过程中经历了不少挫折,同时也带给我很多的思考。
凭借着还算流畅的英文口语,我得到了去北京一家软件外企做技术支持的机会。为时一年的GT备考并没有得到我想要的结果,这个机会也算是对于那一阶段努力的一个结果与回报吧。另外,因为自己课余做的两个不是很成功但却有一点点技术含量的小项目,我还得到了去上海一家做游戏的创业公司做C++开发的机会。
技术支持主要是与客户进行沟通,帮助他们解决产品使用过程中的一些技术性问题。这个职位需要比较强的交际能力,以及英文口语能力(公司产品主要面对的是欧美客户),但是对于技术方面可能会涉及得比较少,而且几乎不需要去写什么代码。
那个C++开发职位则需要一些实际的编码能力,工作中更多的时间将会是与机器打交道。出于对自己实际情况的考虑,我选择了去上海的那家创业公司。这主要是因为我更喜欢从事技术开发方面的工作,并且在与人交往方面不是很擅长。这家创业公司里的员工基本都是80后,感觉大家工作都很有激情,而且工作环境也比较开放自由,这也正是我想要的工作。这里要说一下,很多人都认为技术支持或销售不如程序开发工作"好",我对此观点向来不是很认同。在我看来,每个岗位提供的机会都是一样的,只不过是工作环境的不同而已。而每个人的特点与爱好不同,所以并不是所有的计算机专业学生都要去做开发。特别是一些交际能力很强而对技术不是非常感兴趣的同学,可能技术支持或销售等方面的职位更加适合他们。选择了适合自己的环境,不仅会工作得很愉快,而且可能很快就会在这个岗位上崭露头角,我想这要比做一个每天闷闷不乐的"代码民工"好得多吧。

来源:《我是一只IT小小鸟》胡江堂
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群