第一部分:结缘计算机
我家父母思想比较开放,在我刚上小学时家里就买了电脑,主要用来办公。在小学5年级前,我接触电脑主要是为了玩游戏,也没事捣鼓一下Windows里简单的系统设置。5年级时,我有幸结识了雅礼中学的汪星明教练,并跟随他学习编程。当时学习编程完全是因为自己的兴趣,汪老师也说我有编程的天赋,就一直跟着兴趣学下去。
小学升初中之前有一次比赛,获得一等奖就能自己选想去的中学。但当时我并未能获得一等奖,却又在派位中去到了南雅中学,也就是我想去的中学。
小学学习编程,初中也理所应当的进入了竞赛队伍。但毕竟不是靠自己实力进来的,我表现的处处不如其他人,我们的教练也不是小学时教我的教练,再加上我小时候性格乖僻,我在培训时听不懂的东西也不敢开口问,写题时也不好意思打扰别人,导致我越来越落后。初中三年的比赛中,每次都只拿到普及组二等奖,最后也没能通过保送进入理想的高中,而是通过父母找关系进去的。
进入高中后,由于是找关系进去的,当时我被分在专门的空降班,再加上我和初中队友的差距太大,我的内心深处有一种自卑的心理,我没有进入竞赛队伍。在高一高二期间,我一直热衷于参加社团活动,还当上过社团的社长。这段经历对于我的人际交往能力的提升有很大帮助。
高三时,汪星明教练告诉我如果能在提高组拿到一等奖就能对高校的自主招生有帮助,于是在高三的上学期,我再次参加竞赛,并且花了3个月的时间准备。和我同一届的队友要么已经拿到NOI金牌保送了,要么在专心准备高考,而我在和高一的学弟学妹一起准备省赛,而且他们都比我要强。这段时间里我的编程技巧和心理承受能力都得到了极大地锻炼,我平均一天要做4-5道题,前两个月一口气学了十几种算法。
但命运似乎总喜欢戏弄我,2015NOIP赛场上,我做出一道略难的题,却在一道简单题上丢了分,最后仅以几十分的差距错失一等奖;在自主招生上,发现竞赛一等奖只能给自主招生成绩加10分,而满分是200分,我离通过分数差了不到20分;由于比别人少复习3个月,我的高考离一本线又差了20分。
虽然经历过这么多,但我对计算机的兴趣并没有被消磨。汪星明教练对我的评价是:不适合竞赛,但编程时灵感极佳。他建议我学习软件工程,有机会要去读国外研究生,但不要读博士,理由是计算机行业发展太快,而且需要实战,于是我遵循他的指导,进入了长沙学院软件工程专业就读。
第二部分:在计算机系里学习
大学的第一年是我最活跃的一年,由于之前的竞赛经历,我大一大二除数学物理以外的基础课程都学过了,于是我把精力放在了别的东西上面:首先我当上了班上的学习委员,然后加入了大学的ACM竞赛队伍,还加入了系学生会的网技部。在这当中我花精力最多的是在网技部里。我们的部长是个很厉害的人,他虽然是软件专业,但总是翘课,对学校课程嗤之以鼻。但他通过自学,可以一个人完成一个中小型web项目的开发。他之所以当部长,是为了找接班人来维护和开发系里的各个项目,所以他从一开始就要求我们去学习各种知识,并且尽快将学到的知识投入使用。这种学习过程和我以往的学习过程都不一样:竞赛时学习算法,教练告诉我们一句话:“不是有用才去学,而是学了才知道有什么用”,而在这里则是要边学边用。
但是过多的精力放在这些上面,竞赛方面我又懈怠了。大一参加的省赛,以队伍只做出一道题获得三等奖而告终。大二时,部门改朝换代,一年间几乎没有需要人手的项目,而我对于竞赛的那种自卑和恐惧的心理又跑了出来,所以我在大二期间几乎颓废了一年。说是颓废,但是每天都按时上课,按时交作业,期末时还拿到了奖学金。在刚刚过去的暑假里,我被要求回来参加今年的省赛,于是住在学校准备了一个半月,总算是拿到了一次一等奖。
令我惊讶的是,我自以为没有像准备竞赛或是学习web知识时那样的精力放在在学习上面,成绩肯定会掉到中游位置,可是我还是在年级的前列。这样的结果和我所在的学校肯定有关系,但仅仅是这样吗?
我稍微了解了一下班上其他获得奖学金的同学的情况,只有个别人像我一样有在了解课外的知识,大部分人只是按部就班的学好学校的课程。但是不得不说,学校课程的设置太过简单。如我之前所说,编程的基础部分小学生初中生都能很快掌握,而数学等基础学科的考试内容也太过简单,不然凭我的努力程度也无法拿到奖学金。
我也思考了学校这样设置课程的理由:我们学校是二本学校,而且大部分人毕业后目标都是找工作,所以学校只要教会学生基础课程中最基础的内容,然后只要教会他们工作需要的一些内容就行了。但事实是这样吗?
我从我的学长,网技部的部长以及他的前一任部长那里了解到,我们学校有近八成的学生毕业后无法直接工作,还需要经过公司或培训机构的培训才能正式开始工作。我还从老师那里了解到,许多人的毕业论文代码不是自己写的,还有研究生不会写代码的。我表示有点震惊,在本科的学习中,没有构建起完善的知识结构,也没能达到外面培训机构速成的那种效果,大学的教育究竟有什么意义?我无法再往下想,因为这已经牵扯的我国教育最基础的部分。
我常常认为,我在高三学习竞赛,或是大一时学习web技术时那样,需要不断克服超越自己一点点的那样的难题,找到自己的兴趣或擅长所在,才是大学应该有的样子。但我把这个讲给我爸时,他是国内某所一本高校的老师,他笑笑告诉我,国内的研究生也没有这样的水平。于是我也不再往下想,现在只是做好眼前的事,将来准备出国。
要说迄今为止写过的代码的话,在刚刚过去的暑假里我写了大约5000行代码,如果算上从接触编程以来写过的代码,应该有3万到5万行。
遗憾的是,我并没有独立的完成过一个项目,但在参与别人项目的情况下,我做过两次web上的项目,一次是在网技部时做的“微影行”活动的网站,这个活动有线上和线下的部分,我完成了线上网页的一部分的后台管理部分,并且在线下活动中用它来演示。另外一次是一次小的项目比赛,题目是心率监测系统,我负责了其中的数据库部分和硬件方面一些数据处理的算法。值得一提的是,在心率数据的处理中,对于波形的处理可以用到傅里叶变换或小波变换来处理杂波,而我都不会。而当时想要去学,却发现半天都看不懂。而在比赛后,我也没有花时间再去看这些内容,或许这都是我与高手的差距。
第三部分:未来规划
我对与IT行业最大的印象是:发展太快了。不管是在岗位上工作了多久的人,都要随时做好学习新知识的准备。所以我目前对自己的规划是这样的:
- 准备ACM亚洲区的比赛,给自己的竞赛生涯画上个句号;
- 学好英语,将来准备出国读研,万幸我的家里能够负担的起学费,我的父亲也支持我出国读研;
- 在读研之前能找一份大公司的实习机会,了解那些做大事的人都是如何做的;
- 选一个感兴趣的方向读研,但不一定要赶热门。
(有待修改)