编程的一点心得

类别:软件工程 点击:0 评论:0 推荐:

May, 2004

[想贴上来的时候,不知道要贴在什么地方,分类不合适,只好其他其他了。]

我写程序至今已经有两年多了,这段时间里,我的收获很大,感触也颇多。实际上我

在三年前便正真的接触到了c++编程,只不过那时候还在学校,忙于功课,没有对c++

进行进一步的研究,只是简单的停留在很是初级的阶段。现在看来,那个时候连

最起码的编译器设置都没有搞清楚,只是会写class类而已,当然是没有经过很好

设计的。应该不算是在编程,fan的成分很大。


工作后,公司时候的编程语言是c++,使用的编译器是vc6.0,这对于一个本来就

对c++编程感兴趣的人来说,实在是一件很好的事情。我这时候的c++学习虽然不

象在学校里可以很安心的拿着书看,但这里你可以实战。你需要有在工作中不停

学习的能力,资源是相当多的,在网上你可以找到几乎所有的资源,更何况还有

数据量n大的msdn,所有的这一切开始的时候可能让你眼花缭乱。我是一个很贪心

的人,对于好的东西,e.g.各种编程书籍的电子版,各种编程心得,etc. 很多很

多,我便“疯狂”的收集,虽然有点夸张,但毕竟到现在我觉得我还是收集了不

少很经典的书籍。现在看来,这样做有两大好处,一是在当时满足了我的收集欲

望,没有将一腔热情放在别处(相对于游戏或者别的什么的,收集还算很不错),

二是有了资料,我便可以查看,学习资料。比较糟糕的一点便是,我对于收集来

的资料,除了那些在工作中可以确实参考的东东以外,其他的就很少去看,扔在

那不管,觉得对不起自己,也对不起这些资料。


说了一堆废话,现在正儿八经的说写程序吧。我暂且在此称为做软件,那就是你

把别人的需求变成了最终别人想要的东西。这句话说的简单,可是要做到却是非

常难的,对一个公司是这样,对于个人来说就更难了。但我这里讲的做软件,绝

对不是有些人认为的写代码,写代码只是做软件过程中的一小部分。既然这里讲

到了过程,我就不得不说一下软件工程。我虽然工作时间和很多人比起来很短,

但我从一开始就认为,要想正真写好程序,最好先将软件工程好好研读一下。它

可以让你知道一些开发的基本规则,(在我的世界观里,世界上的万物存在,都有

各自的存在规则),也许它所介绍的不是最合适的规则,但你仍然是可以参照的,

至少在你还没有发现更好的规则之前。
有人说过一句话,“好的过程才能产生好的产品”,我觉得很合适做软件,软件

工程的作用刚好是用来规范软件开发的流程,保证软件开发的质量。这样看来,

软件工程应为每一个写程序的人好好研读是不为过的。
关于软件工程方面的书籍和文档资料非常之多,这里就不累赘了。公司实施好的

软件过程需要下面每一个员工的好好配合,这必然要求每个员工对软件工程的理

解不能是太肤浅。否则,公司实施诸如CMM之类的东西就很难有好的效果。我在这

里这样说的目的就只有一个,开发人员好好的理解软件工程对所在公司的产品质

量有很大的影响(肯定有人不同意我的看法,这是可以理解的,但你要明白,你要

给自己一个合理的解释)。
对于个人,自我约束的实施某些软件工程的规则,比如PSP。这是很困难的,需要

你有非常好的自制力。目前我还没有看到有人这样做(这可能与我本来接触到的软

件开发人员就不太多有关),我刚刚步入程序员大军的队伍,对PSP仍然是一知半

解,今后要好好努力才是,如果能得到大侠的指点,那对于我再好不过了。


我最初认为会写出功能很牛程序的人就是大侠,就是高级程序员,心里特崇拜,

很是希望与之交流,恨不得自己也一步登天,化为大侠。慢慢的发现这是绝对不

可能的,到了现在,好好的省视一下自己,在开发的过程中,偶尔也能碰到一些

貌视难(在当时自己看来或在有人看来是这样)的问题,通过自己的学习努力,最

后解决了,心里很是高兴。但现在静下心来想想,我并没有成为什么大侠,更不

用说是什么高级程序员了,自己现在觉得是一个普通程序员,水平一般,但有一

点还是值得庆幸的,那就是我终于用一年半的时间明白了一些道理,一些如何做

一个好程序员的道理,一些如何让自己不断进步的道理(当然这些道理也是在变化

的)。

我想有不少程序员是从program fan开始的,我也是这样,虽然自己是学计算机出

身,但真正让我喜欢这个职业,却是因为自己对写程序的喜欢。也许有人觉得这

作为我选择程序员职业的原因太单薄,但我认为这是最重要的,你从事一个职业

,首先你要喜欢它,这样你才可能为之呕心沥血,说的有点夸张,但事实就是这

样。这正如一个人不会为一个自己不爱的人献身一样,你选择一个人的时候一定

要理智(这点做到好像有点困难哦),当你做出了选择,就一定要全身心投入。

说道现在,如何开始呢?一句话,了解平台很重要。不管你是如何走入程序员大

军的,你应该比较快的熟悉平台,我比较笨,差不多过了一年的时候,我才意识

到自己对平台是很无知的,才慢慢了解学习这方面的知识。我现在用的是MS

Window平台,而且好像自己就熟悉它,没办法,当时觉得学c++可能比较有前途。

就这样自己稀里糊涂的写了一年程序。之后才发现,如果现在突然之间MS Window

不用了,改用Linux等,我是不是就傻眼了,完全的不知所措呢?于是自

己便觉得要反省一下,自己应该掌握一种学习的套路,即使你换了一个完全全新

的环境,我以前的知识一点用不上,我也会在相对较短的时间里让自己去适应,

更重要的是我会有一套自己的学习方法。
我所说的了解平台,绝对不是你会使用操作这个平台而已,而是你要了解这个平

台的运行机制,了解你在此平台上写的程序是如何在这个平台上运行的,彼此是

如何交互的,平台提供了那些你可以使用的接口等等,太多东西了。如果你觉得

自己已经很了解某个平台,甚至能指出某些待改进之处(当然这些必须是禁得起验

证的,不能是信口雌黄),那么你就可以算是了解了这个平台。所以了解平台在很

大程度上是逐步的,可能会占用你5-6年的时间来达到这个目标(这是我相对于自

己的一个估计,你可以自己估计,因为我比较笨一点)。


深入理解一种语言。在某个平台上往往会有很多的开发语言,人的精力有限,你

不可能什么都学,我现在不敢乱说那个语言不好,那个语言很好,各种语言的产

生都是有其各自产生的环境与条件,它既然存在了,那么它就是合理的,至少在

一段时间内发挥了它的作用,实现了它产生的意义。我相信你可以根据自己的情

况和环境来选择自己入门的语言。事实证明很多人到了最后,已经超脱了各种语

言,能了解各种语言的精髓,利用其长。


让自己学会设计,让自己的设计更合理。学习软件设计模式,这个东西我接触不

久,对它本身没有发言权,但对其的褒奖网上到处都是,好好学吧,别人的经验

啊。


慢慢尝试着经历各种过程。一个人要想真正的做软件,如果认为学会了写代码就

完了的话,那就大错了。做软件涉及到的方面非常的广,你应该尝试着做各种工

作,比如参与项目规划,计划制定,需求分析,系统设计等。这对你今后的做软

件非常有好处,千万不要一味的埋头coding,还要多动脑筋想想。我做的这一模

块在整个软件中起到什么样的作用,整个软件的流程是怎样的等等一些问题。


养成总结,积累的习惯。“天才在于勤奋,智慧来源于积累。”我正在努力让自

己养成这样的好习惯。这可能不光用在做软件上,在做人的各个方面都是一样。


要想有更快捷的信息来源,资料,外语一定要好!谁叫现在好多先进的东西总是

老外先想出来的呢?多看看老外的东西,有时候甚至可以给你带来一些灵感,让

你抓住一丝商机。外语的好处我就不累赘了。


题外话,修身养性。这一点并不是专门针对写程序的人,可以对所有的人使用。

懂得修身养性,对人对己对工作均是受益匪浅的,这可是一位高人的指点。


开阔自己的视野,不断的摄取新的知识,最终让自己也可以预知行业的未来趋势

本文地址:http://com.8s8s.com/it/it36968.htm