最近幾年,興起一種潮流,就是少年兒童學習電腦程序編寫。筆者並不提倡這種潮流,而是覺得還不如重點瞭解一下一個優秀的程序員工作中值得學習的幾點優點,到了適當的年齡和時機再去學習編寫程序會更好。
編寫程序,和寫文章也有一定的相似,也會分段落,或者專業點說是程序塊(Block)。一般,每個塊會用一前一後兩個標誌給圈起來。在某些程序語言裏,使用{和},有的是使用begin和end,形式不一樣,意思大致一樣。
初學程序,容易犯的一個錯誤就是,寫了一個開始符號例如{或者begin,然後開始寫裏面的進程塊,寫到完了,結果就忘記了寫結束的那個{或者end了。這是後續的稱之爲compile的過程就會通不過。
所以,受過訓練的程序員,養成了一個好的習慣,敲了一個{之後,立刻就會緊跟着一個},begin和end同樣的道理。永遠都保證有頭有尾,成雙成對。然後再在中間寫程序。
這只是進程員有頭有尾的一個最簡單表現,在其他的方面還有很多,例如某個地方申請了某個資源,在最後的時候,一定要釋放回去,否則程序run越久,資源就越少。甚至最後把電腦或者手機給弄死。
那就是非常糟糕的了。
邏輯性不好的人不能夠當程序員。
寫程序,實際上就是把事情的各種可能性考慮了,各種可能情況下電腦應該做什麼動作去迴應,都要分析清楚,考慮清楚,然後再用電腦懂得的語言給寫下來,告訴電腦這樣去做。
所以,電腦程序裏面會有很多種類似if...then的結構,要做很多判斷,根據判斷結果做不同的動作。如果一個人的邏輯不夠嚴密,考慮問題容易遺漏了要點,那麼寫出來的進程可能就在某些情況下出現非常嚴重的問題。
例如,總共有20樓的電梯,已經20樓了,進程還控制電梯往上走,沒有做邊界的判斷,那麼電梯衝頂,就會發生非常可怕的事件。
由於編寫程序的時候,頭腦中經常要考慮各種情況和做條件判斷,對於邏輯性的鍛鍊是非常好的。這點,確實可以作爲青少年學習編程的一個正面支持點。
最初的程序員,可以一個人做很多事情。但隨着電腦的發展,軟體已經變得越來越龐大,依靠一個人做到的時代已經過去了,團隊是一種必要。
有團隊,就必然有分工和交流。由於軟體程序並非如同建築物那樣的實體,交流起來是很困難的。軟體工程學做出了很大的努力,讓程序員們在交流時候相對容易和有效一些。這裏麪包括了程序員編寫程序時候的一些規範。
程序員之間的團隊精神,體現在這些編寫規範裏面。例如,我的程序裏面的名詞,應該用什麼樣的命名方式,符合大家習慣,以便別人看起來容易理解。我應該在我的程序裏面,添加什麼樣的註釋信息,以便別的程序員看的時候,能更容易理解。
好的程序員,會在自己寫程序代碼的時候,想到別人。這是一個優秀的程序員的團隊精神的重要體現。
程序員往往會因爲趕工而通宵達旦。但這並非這裏說的重視時間。
優秀程序員重視時間的表現是,當他撰寫程序時候,會想到半年後,我自己或者別人來看我的代碼,或者經過多次修改後我的代碼,容易變得很難理解,甚至容易引入錯誤嗎?
對時間引來的變化的充分重視,會促使優秀的進程員在寫代碼的時候,採用高內聚鬆耦合的做法。這不太容易理解,甚至很多程序員本身都不太深入理解。用效果來去解釋,如果有一個程序,將來要進行改動的時候,某個改動需要動到10個地方,那就非常容易因爲只記得改到其中8個地方,漏了2個地方,導致不一致性,進而導致非常嚴重的後果。而一個良好的程序,可能僅需要改變2個地方就好,這大大降低了風險。
做事情不僅僅注重當前,還考慮到將來,就是程序員的一個優秀特質。
微信公衆號 南輝海創 授權發佈。
閲讀更多..