刘炯(Sharpmark)的博客

v4.0 一个不怎么更新,又舍不得关掉的博客

编程五年(五)

恩,最后一篇了,想谈谈五年来的一些感悟。
小学的时候,教什么学什么,做了一年多的编程题目,这些别致但却充满智慧的题目,把我深深地吸引到这一行。虽然当真正进入这一行的时候发现不是那么简单。这一年多的艰苦磨练就像武侠小说里面一个刚学武的弟子在一个门派的小山头上学武一样,单调艰苦。学会的只是入门的武术招式和修习内力的基本功。不过通过这种锻炼,也让我的基本功变得非常扎实。不似现在大学课程填鸭般的索然无味,甚至误人子弟,像是魔教一般让人走火入魔。
中学就好象学了很多招式之后,自己跑到后山参悟,让心法融会贯通,通过学习Pascal,从理论角度让我对编程有了更深、更高层次的认识。诸如函数、形参、实参之类的概念也是在此时形成的。在做VB计算器的时候,开始对编码风格,注释等环节有所认识,算是形成了初步的软件工程意识,不过这只是对于编码阶段的良好习惯,还不会对整体进行设计,也不会测试等等。
大学则好像又跟门派的高人学习心得、心法。从更高层次上领悟。大学开始广泛学习很多方面的知识,由于基础比较扎实,所以学什么东西都比别人快很多,大学以来涉猎的范围也很广,不在此一一列举。不过也正因为学的快,所以还有有些东西掌握的不牢固。大学以来,编程的技法就一直没有什么大的提高,只是针对某个语言的某些特性,编写的时候有所改进。面向对象编程也算是入了门。为什么技法没有提高?我想是因为代码写到一定程度,已经很熟练了,再写也不会长进,这时候就需要通过涉猎其他方面的知识,从更高的层面上提升自己的能力。
大一因为进了学生会网宣、创新中心,他们一直围绕着网页转,也影响了我的方向,所以大一后半年我一直是研究asp.net的相关东西,不过本性难移,所以对界面一直都没有深入,埋头于后台代码的编写。大二借着asp.net的基础,学习C#,深入了解了MS.net的一些底层的东西,对整体也有了了解。大三开始不再局限于某种语言,而是开始研究一些软件模型、开发流程、算法思想。并且回归本源,开始重新认认真真学习标准C++的一些高级议题。
回头想想,自认为走了很大的弯路,如果重新给我五年,我的功力一定比今天强多少倍,不过时间是不可能回头的。弯路也给了我很多教训。相信这些弯路也会帮助我在以后的道路上以更快的速度前进。
由于比一般人早学了几年编程,所以大学以后一直被人视为高人,强人。有时候我的小小的自尊心也会膨胀,自己也变得轻浮起来,不过也总是会让自己平静下来。因为我知道我只是比别人早跑了两圈,有决心的人还是能够超越我的。不过很可惜很多人面对一些自己觉得厉害的人,总是以高山仰止的心态望着他们,没有决心和信心超越他们。为什么人类的科学能不断的进步,人类文明能不断地发展?就是因为人类一代比一代更加强大、聪明、有能力。他们站在前人的基础上,创造了更大的辉煌。看到高人,应该做的是学习他,目标是超越他,那样做才是对的。
或许是因为我的成长路线,所以总会觉得别人在学习上过于燥进。今天学种语言,明天玩个概念,到头来什么都是半瓶子。也许这样会在自己的简历上多出很多笔,但是对自己真有好处么?我个人觉得还是要有博有深,不可只做表面文章。要知其然知其所以然。公司要的,也更多是某领域的专家,而不是什么都懂一点的“科普工作者”。当今的社会风气是浮躁的,激进的。爆炸的知识和信息让人窒息,看看图书馆定期进来的图书就知道什么叫做压力。刚学完的东西很快可能就过时了,学习的速度比知识更新的速度慢。不停的学新知识,却不停的被甩掉。这样的浮躁的学习只能注定会被新知识牵着鼻子走。只有潜心打好基础,然后再以主人的身份,自己来判断什么东西改学,什么东西学多深,什么东西对自己更加有用。
当我读业内人士的一些故事,我曾经希望能有一个快捷方式赶上他们,直到有一天我才意识到不可能。一天,我的同学对我说:“真羡慕你,我要是有你这样的水平我就知足了。”我苦笑,因为我所投入的时间、精力、所经历的痛苦是他不能体会的。当我小学开始就不再有周末的时候,他在快乐的跟小朋友们玩耍;当我中学用那么多时间学习编程,他在备战高考或者睡觉;当我体育课独自在教室学习算法的时候,他挥汗如雨的在球场奔跑;当我大学不断写程序、看书、学习的时候,他在玩游戏,看电影,泡MM;在我尝试了一次次的失败之后,迎来成功的时候;他却因为失败而退却而自甘堕落。他和很多羡慕我的人,看到的只是我的背影所显现的光芒,却无法看到我所走的前方的道路的荆棘和迷茫。看着他,我想到了我,之后我明白我和我的目标之间也没有快捷方式。只有一步一步地扎实前进。我以我的学习经历体会到,学习是不会无痛的。只有在无数次的失败、失落之后重新振作,最终达到目标;只有在花费无数的时间、汗水、脑力……才会抵达胜利的彼岸。像我这样以学习为乐趣,编程为兴趣的,都是通过相对的付出而换来的。如果自己不付出的话,永远只能望其项背,越拉越远。
亚里士多德曾有个经典的故事,他对他的学生说:如果这张羊皮是世界上所有的知识,你们已经学会的知识就是这个羊皮上的小圈,我学会的是这个较大的圈。你们学到的知识越少,你们这个圆所能接触的未知知识就越少;我学到的知识越多,我这个圆所接触到的未知知识就越多。所以这就是为什么学的越多,就觉得想学的东西越多。
结识一些志同道合的朋友很重要,可以相互激励,相互学习。我很高兴我能找到有同样兴趣的同学,中学时期的刘晓亚,大学时期的Jerry、WAKU。记得跟刘晓亚一起上NOI培训班和讨论算法的日子;大学阶段很多项目我都是跟Jerry一起做的,没有他的鼓励,我很可能不会走到今天;找到兴趣相投、学习经历如此相似的WAKU除了说缘分,真不知道该说什么了:)。
大学做过副班长、学生会副主席、宣传中心主任、创新中心技术部部长,也算是从事过很多行政职务了,不过始终觉得自己喜欢的并不是当官。当个小头头的时候,的确学到了很多课本上学不到的东西,自己变得成熟稳重了,也认识了很多的朋友。不过我这个人还是不太喜欢和人打交道,喜欢静静的写写程序,看看书,上上网。虽然到了大三才真正无官一身轻,不过我想并不晚,终于可以开始做很多自己以前想做但一直没有时间做的事情了。虽然我要开始考研了,不过我不觉得这是对我编程道路的阻碍,我一直很想在系统的学习一下数学知识来弥补荒废的大一,因为我越来越感觉到数学在编程中的作用;我一直很想再学英语,因为这样我读E文原版书籍的能力一定会更上一层楼。还有数据结构、网络、操作系统……,这些基础打好了,编程水平才能更好的提升。
编程五年了,所以写了这五篇文章来纪念。我想,很快就又会有一个五年了吧,虽然我前方的路,还不是很清晰的,但我会坚持走下去。为了自己的理想和爱好奋斗!(全文完)

Comments