碼農是一種游離于在二維世界(二進制)和人類現實世界之間的一種奇異的生物。關于程序,有人形容“程序有如生命。總處于演化之中。新需求就是基因突變。可能進化,可能劣化,可能崩潰。版本控制保存眾多樣本,提供重試的機會。單元測試就像DNA雙鏈。將不自洽的細節揪出來。”
每個人的觀點和看法可能不太一樣,畢竟每個人達到的境界不一樣,觀看的視角也不一樣,但是不管怎么樣,但凡程序員就避免不了要寫代碼,或者要懂代碼,那么寫代碼的目的又是什么呢?
當你水平達到了一定程度之后,你經常面對的是“效率”和“簡潔”的選擇,這已經沒有辦法讓你的程序在這兩方面變得絕對更優,魚和熊掌很難兼得。
對于那些年薪百萬的,或者真正的大神來說,并不是每一行程序性能都需要優化到極致,而是在這二者之間掌握一個所需要的平衡。當代碼量上去之后,對于大部分代碼而言,可讀性和穩定性的重要性就會逐漸超過性能,也就是說寫得清晰易懂不犯錯比下筆就是神算法要簡單得多。
舉個比較簡單的例子,一個有序搜索,做過10道算法題的人都知道logn的,但是當你確定數據量不會超過15,并且這段算法不是critical path的時候,是完全可以直接寫線性解的,因為線性解比logn要清晰簡明得多,而且不會出現錯誤。
因此在成為大神的路上,思考遠遠要比書寫重要,反思遠遠比重復重要。想清楚了再下筆去寫,知道你要的是什么。在實現一個功能之前,腦子里先相處三種實現的方式,然后問自己我需要的最重要的東西是什么。而不是見到什么都先brute force,然后開始調,調好了發現原來這算法可以變成logn,然后推翻了重寫。這完全是在浪費自己的時間和精力。當然了另一個極端就是,遇到什么東西都先想最優解,不是最優解堅決不寫。
總而言之,寫代碼的目的,不是追求,也不是追求最簡單,而是最好用。
責任編輯:wv
-
程序員
+關注
關注
4文章
952瀏覽量
29818
發布評論請先 登錄
相關推薦
評論