碼農是一種游離于在二維世界(二進制)和人類現實世界之間的一種奇異的生物。關于程序,有人形容“程序有如生命。總處于演化之中。新需求就是基因突變。可能進化,可能劣化,可能崩潰。版本控制保存眾多樣本,提供重試的機會。單元測試就像DNA雙鏈。將不自洽的細節揪出來。”
每個人的觀點和看法可能不太一樣,畢竟每個人達到的境界不一樣,觀看的視角也不一樣,但是不管怎么樣,但凡程序員就避免不了要寫代碼,或者要懂代碼,那么寫代碼的目的又是什么呢?
當你水平達到了一定程度之后,你經常面對的是“效率”和“簡潔”的選擇,這已經沒有辦法讓你的程序在這兩方面變得絕對更優,魚和熊掌很難兼得。
對于那些年薪百萬的,或者真正的大神來說,并不是每一行程序性能都需要優化到極致,而是在這二者之間掌握一個所需要的平衡。當代碼量上去之后,對于大部分代碼而言,可讀性和穩定性的重要性就會逐漸超過性能,也就是說寫得清晰易懂不犯錯比下筆就是神算法要簡單得多。
舉個比較簡單的例子,一個有序搜索,做過10道算法題的人都知道logn的,但是當你確定數據量不會超過15,并且這段算法不是critical path的時候,是完全可以直接寫線性解的,因為線性解比logn要清晰簡明得多,而且不會出現錯誤。
因此在成為大神的路上,思考遠遠要比書寫重要,反思遠遠比重復重要。想清楚了再下筆去寫,知道你要的是什么。在實現一個功能之前,腦子里先相處三種實現的方式,然后問自己我需要的最重要的東西是什么。而不是見到什么都先brute force,然后開始調,調好了發現原來這算法可以變成logn,然后推翻了重寫。這完全是在浪費自己的時間和精力。當然了另一個極端就是,遇到什么東西都先想最優解,不是最優解堅決不寫。
總而言之,寫代碼的目的,不是追求,也不是追求最簡單,而是最好用。
責任編輯:wv
-
程序員
+關注
關注
4文章
956瀏覽量
30941
發布評論請先 登錄
芯盾時代SDP助力企業應對核心機密泄露危機
C語言訪問某特定內存位置
程序員最常見謊言
匯編程序段的定義介紹
奔赴熱AI,碼力全開!Talkweb House@1024程序員日系列活動圓滿收官
開鴻智谷“以賽促學、以賽選才”|1024程序員節暨開源鴻蒙構建大會圓滿落幕!
HarmonyOSAI編程編輯區代碼續寫
程序設計與數據結構
CY7C68013A無PID和VID,如何制作PDF?
如何在 樹莓派 上編寫和運行 C 語言程序?
零基礎入門:如何在樹莓派上編寫和運行Python程序?
為什么學了C語言,卻寫不出像樣的項目?
程序員寫代碼的目的是什么
評論