程序人生:给想进入IT行业的同胞
程序人生

我的IT生活:国防科大计算机学院小硕程序人生

  注:此人是我男朋友,是有次我要他写的命题作文。今天来这里小逛一下,心血来潮就把该文贴上来了,哈哈

  我是一名程序员。虽然编程序的经历远远不能用丰富来形容,但接触程序总也有好

  几年了。说起来还真有些感触。其实上大学前我只碰过中华学习机,从来没有程序的概念。从一无所知到现在以它为职业,想来这其中的过程颇值得回味。我想,程序这个东西的意义对每个人都是不同的,那么就来听听我是如何变成程序员的吧。

  在我最初的印象中,编程序是件极其枯燥无味的事情,无非就是码码字符,画画表格。我记得我在上小学的时候写的第一个Basic程序,算个简单的1+1都需要好几行代码。用它来做更复杂的任务启不是要被烦死?没想到第二次上手写程序竟然是8年以后。上大学我读的是计算机专业,我学的第一门语言是严谨的结构化语言Pascal。也许每一个程序员最开始接触程序语言的时候都是象我一样觉得枯燥。因为我总感觉我学Pascal的时候总在不停地敲打Begin和End,往往累死累活敲一段代码,只有很傻的结果,让我觉得特别不值,而且我就是弄不明白Pascal中间包含库文件是个什么意思。我心里就总在说,这该死的程序我死也不会喜欢它。第一次让我对写程序产生兴趣是在我学习了递归的时候,比较喜欢逻辑推理的我很喜欢汉诺塔这样初级递归逻辑问题,而且还能跟同样初学程序的同学争得面红耳赤,非常让人兴奋。我的同学中有一个非常厉害的程序高手,有一次我看他编写程序,很多我想当然的想法他都没有采用,然而正在我纳闷的时候,他总能写出让我叫绝的段子,从他身上我突然体会到一些和我们惯常思维不同的全新的思维方式,能跳出圈子来看待问题。这让我着实兴奋,写程序的欲望异常强烈,为了解决一些逻辑问题,我曾经连续编写程序7、8个小时没有停歇。比如为了交编程语言课程的上机作业,还没有学过博弈算法的我自己设计了一个现在看来十分简单的黑白棋程序,但当时我真的是废寝忘食,每天都在思考里面的运行路线,就在完成了逻辑实现部分的代码之后,还总在想如何往里面加入更多的功能或者界面修饰使它更加完善。当它能正确运转并且偶尔还能下赢我的一些同学时我非常有成就感。这是我完成的第一个综合性比较强的程序,每会想起,它就象是我的孩子一样亲切。

  当然这只是我对程序的感性认识。在大二的时候我们开始学习算法,明白了其中的一些原理才开始对程序有了理性的认识。第一次写大规模的程序是上数据库的时候,我和我同学两个人用Delphi编写了一个两万行的国际象棋程序,注重数学算法的他担任程序算法的设计,注重逻辑性的我就来对算法进行完善和调试。经过半个月的辛苦工作,终于让这个见鬼的国际象棋可以正式和人对弈了。在我们品尝到成功的喜悦同时,我们也对程序结构的平衡性以及良好编程习惯有了深刻的认识。比如,我们为了实现某一个功能而编写了一个上千行的函数,程序拖沓得不行而且错误连篇;再比如,某个相同的代码段我们反复粘贴了很多次,结果因为粘贴的时候有些参数没有及时修改给后来的测试带来了巨大的困难。这个时候的我才体会到,严谨的编程习惯是多么重要。就好象做人一样,当你决定要做什么事情的时候,你需要先把为什么要做、怎么做这些问题搞清楚。你需要考虑好这样做是不是值得,是不是合适,是不是高效率。严谨的个性能避免走很多弯路,对精练程序的不屑追求才能不断推陈出新,我想这是一个成熟的程序员和一个菜鸟程序员的区别吧。写文章的人总用“文如其人”来说明文章和人的性格之间的关系,那么用“程序如其人”也能代表程序与程序员的个性之间的联系。

  程序写得渐渐多了,越来越发现其实程序和我们的生活是很相通的。编程的思想有很多灵感来自现实生活。比如流水线思想、软件重用、面向对象的思想思想,这说说是很简单的事情,但却能非常神奇地提高效率,这其中的神奇真能让人赞叹不绝。举个和写程序无关的例子,比如我们常常用notepad来编辑文字,保存文件是经常要干的事情,可是在敲键盘的时候要动鼠标点菜单来保存实在低效而且容易打断思路,实际上可以把保存的过程抽象为点开菜单和保存两个重复性任务,这又可以抽象为Alt+F和S这两个过程,把这个过程机械化变成人的一种反射行为,就可以在毫不影响思维的情况下完成对文件的保存。我说的仅仅是个机械化重用的小例子,实际上这样重复性的操作在我们平常使用电脑的时候经常可以碰到,多从抽象和机械化这样编程常用的思维角度来想想,能提高不少工作效率(说到这个,我曾经教我女朋友这个方法,可惜她不知道该如何举一反三,程序员和非程序员的区别就在于此吧)。

  网络时代的到来使得网络编程成了热门,越来越多新奇的思想不断涌现。桌上的书也一本比一本厚起来,往往一个东西还没有研究透彻,另一个东西又冒出来了。代码量一天一天越来越大,里面的逻辑关系越来越难于掌握,新奇的概念和名词又不断出现。计算机科学的迅猛发展使我们这些依靠脑力吃饭的人越来越感觉到压力巨大,随时都有被淘汰的危机感。看着学弟学妹们快速的成长,有种惶惶不可终日的恐惧。每天都想按照程序一样按部就班,而每天又都会像程序一样稀里糊涂的度过。这是不是程序员必定的生活轨迹呢?还是我们本身都是一个巨大的程序?管不了那么许多,人活在世界上就需要不停的奋斗,作为程序员,我们也将这样不停的学习下去。