程序越長水平越高嗎
很多年前我剛拿到駕照不久,到了農村的叔叔家,請他把他的小車給我開一下。他問我會開嗎?我說我有駕照。他又問我開了多少公里?我回答找了兩次陪駕大概500公里吧。他對我說,那你還不會開車,你只有開了5000公里后,才能說你會開。我當時很不服氣,心里想為什么要開到5000公里才算會開車呀!難道開了1000公里、2000公里就不算開車了嗎?直到多年后,我才切身體會到他講的是對的,開了5000公里才能遇到各種各樣的行車狀況,駕駛員才能懂得去面對和處理這些狀況。
回到編程這個話題,程序員成長也是這樣。一般一個程序有個幾千行語句,有的甚至上萬行,一個項目所有的程序加起來有幾萬,十幾萬行語句也很平常。對于新程序員來說,要多編程序,盡量遇到編程中的各種問題,這樣程序員才能慢慢地成熟起來。編程慢慢地有了感覺,編程有了積累,編程有了可以利用重復語句,編程速度也大大加快了。建議新手找一些較長的程序作為范例,而且這個程序比較完整,具有實用價值,最好這個程序正在投入運行!這樣學起來看得見摸得著,容易進入情況。我的經(jīng)驗告訴我,程序員在初期要大量地編寫程序,不要管編的好不好,先把編程語句的數(shù)量搞上去,水平自然而然就上去了。不編上上萬行語句,程序員是很難找到編程的感覺的。
當程序員度過了最初的編程階段后,程序員就要轉變思想,慢慢地把程序的精練性放在重要的位置。我一直是把最短的程序看作我編程的目標,一個幾百行的程序那怕能省一行都是我要追求的,我絕不允許自己的程序中有一句廢話。早期我曾把自己程序拿出來放話,誰能省一行我就拜他為師。由此可見我對程序精練的追逐之瘋狂。
一次我的同事告訴我他讀了軟件公司的一個應用程序大約有3-4千行語句。碰巧的是我也編了相同功能的程序,我只用了1000多行,他也讀了。他說同樣的功能為什么會相差這樣大呢?是程序長的水平高?還是程度短的水平高?
我的回答是:相同的功能因人不同而程序不同是很正常的。不同主要是由于對功能的理解、功能的算法、編寫習慣等方面不同所造成的。因此,程序可長可短。至于水平問題,那就涉及面就很多了,有程序的書寫方式和習慣、程序的可讀性、程序的邏輯結構、功能算法、編程技巧、運行效率、參數(shù)化程度、程序復用程度等等多個方面。但是,有一點是可以肯定的,那就是相同功能編寫語句少的,水平相對比較高。當然這個少至少占對比語句的10%以上。如果對比的兩個程序一個是100行,一個是104行,兩者相差僅4行,就很難在語句多少方面判別程序員之間的水平高低了。程序的精練除了反映在程序總的.語句條數(shù)上,還反映在程序中的函數(shù)的長短上,尤其是在一個函數(shù)體內,其語句也是越短越好。我曾看到不少程序中一個函數(shù)能寫到幾百行,甚至上千行。這類程序員往往喜歡一氣呵成,把一個功能從頭到尾寫在一個函數(shù)之中。我認為這絕對不是一個好的編程習慣和編程風格,理想中的一個函數(shù)大約在20-30條語句是最好的。
不少程序員熱衷于編寫越來越多的程序,放任自己編寫不必要的語句,從不注意程序的精練性。導致時間越長,程序員的水平越是沒有提高,F(xiàn)實中我們可以看到很多程序員開始的時候,感覺其進步很快,但是幾年之后,你依然看到他每天努力地編程序、依然看到他每天都在不進步。而有的程序員每隔半年一年,他們就會發(fā)現(xiàn)自己以前編寫的程序編的很差。這說明這個程序員始終在努力地提高自己的編程水平,而且具有程序水平的判別能力。一個好的程序員到了一定階段其編程數(shù)量是呈下降趨勢的。但是其程序質量和水平卻是呈上升趨勢的。還是舉駕駛員的例子,當駕駛員開滿了5000公里后,駕駛員會開車子了,但是會開車子并不意味駕駛員就能成為賽車手,成為賽車手需要其他的專業(yè)訓練,才能又快又好完成行駛路程。
從總的方面來看,程序員尤其是新程序員編寫的程序越長越好,越多越好。但是,在具有一定編程積累后,程序員要學會編寫精練的程序,程序越短越好,程序的精練程度也是影響程序員水平高低的重要因數(shù)。精練的語句永遠是程序員追求的目標,程序員可以寫長篇小說、可以寫短篇小說、但能寫出詩來才是最好的。
【程序越長水平越高嗎】相關文章:
雙語作文之職位越高更難擺脫抑郁癥嗎09-28
學歷越高越容易失業(yè)?12-22
長沙APP/小程序可以辦落戶嗎03-19
《成功跨越高中》教學反思10-07
CEO越高薪公司越成功11-22
GRE考試不是分越高越好嗎01-09
考研并非準備時間越長越好12-24
報關員對英語水平的要求高嗎09-30
雅思5.5是什么水平相當于4級嗎?12-27
為什么智商越高的人越難相處10-27