不知道各位程序員有沒有用自己的姓名的拼音字母作為文件目錄名或程序名的經歷。從我對此觀察來看,很多人都是這樣做的。他們為什麼這樣做?我發現除了這樣做可以醒目地找到目錄和文件之外,更重要的是反應了程序員的私有性,他強調了程序的私有。我們常常會發現有一個有趣的現象:程序員從不主動地把自己程序給其他程序員去閱讀(除非上級要求、工作移交),程序員也不想看別人的程序,抱怨看不懂別人的程序!程序員讀不到別人的程序,程序員不想將程序給別人看-〉程序員就得不到別人對程序意見-〉程序員就不會改進程序的可閱讀性-〉程序可讀性低-〉其它程序員就看不懂-〉看不懂就不願意看-〉看的程序就少-〉閱讀水平降低。這樣導致程序員只能讀懂自己的程序,其閱讀他人程序的水平普遍很低。
程序員一旦將程序變成了日記,一旦只給計算機閱讀,這樣一來我們這些外人就無法從程序本身中看到程序員的水平了。我們只能根據他們開發的項目、承擔的職能等外在的表現來判斷他們的水平了。而這些往往不如程序來得直接。我認為存在這個現象有以下原因:
第一、面子
程序員是很有自信的人群,上面文章我也分析過了自信的來源。這種自信反映在編程上是就會認為自己編寫程序是最好的,即使知道自己編寫的水平很差,也不會告知別人。這是程序員面子在作怪。他們不想進行比較和競爭,各自抱著自己的程序在那裡自娛自樂。而且,業界也容忍這個現象。導致程序員理所當然地認為程序是自己編的是自己的,想給別人看就給別人看,想不給就不給。尤其是新手、那些自己感覺水平不行的程序員更加不願亮出程序出來。怕丟面子!
第二、 保密
還有一些程序員則認為程序裡包含了解決問題的算法和技巧,是自己的辛勤勞動,是自己的知識產權。如果給人看了,別人就會無償地拿了過去,自己的勞動就會白費。所以,他們不願意公開自己的程序。
如果真的這樣,那我是非常理解的。但是,就我的經驗來看絕大部分程序員和絕大部分程序都是很難到達可以達到知識產權這個層面的。回首各自編程有哪些是別人不能編的呢?有哪些是別人不能超越的呢?即使有點小的技巧也不必藏而不露吧。好的程序員是不會去背這些包袱去獲取新的進步的。
說到底還是個程序員程序私有的思想在作怪。
第三、環境
有時候我和程序員談到這個問題時,他們認為不是自己不願意給別人看,而是別人不想看,自己想看人家不給看。這裡確實是一個環境問題,沒有人要求程序員這樣做。這個編程環境並不鼓勵程序公開,不鼓勵程序的優化,不鼓勵程序的共享,反而使哪些編程水平差的得到了偽裝,那些編程水平高的得到淡化。由於沒有制度上、管理上的明確要求,這個問題就會長期存在。而我認為,程序員既然是個性張揚的群體,那為什麼不能從自身做起,以給別人看的要求編寫程序呢?不能以學習的態度請教程序寫的好的同行呢?學習是獲取的過程,也是將來給予的基礎。只要有利於程序水平的提高,我們程序員都可以去嘗試,用不了多久我們環境就會好起來。我們的程序交流和技術交流就會好起來,我們程序員的心胸就會開廣起來。
就我而言,我編過無數個程序,但我從來沒有保留過自己的程序,我的程序都是給我的同行看的、保留的。因為,我認為程序是給別人看的。雖然是自己寫的,但是只有給別人看,才能發揮其真正的價值,就如同一篇文章只有給讀者閱讀,才能評價出文章的好壞。唯有給別人看,才能促使自己提高程序的可讀性、才能獲得別人的批評和建議、才能改進程序的不足、才能提高自己的編程水平。
我建議程序員要養成“程序不是給自己看的,是給別人看的”習慣,尤其是新手,從開始就要養成這個習慣,要放下面子,請別人看看自己的程序,請別人提提意見,這樣自己的水平才能提高,同時,自己也要學著看別人的程序,學會向別人提出意見和建議,學會從別人的程序中學到好的編程風格和編程技巧。通過這兩方面的努力,形成一個程序員之間互動的氛圍,程序員的水平一定會有一個很大的提高。