別去研究C++
作者:掛瓜
YH,今天早晨起來。回想昨天,雖然吐槽了 C++ 的各種問題,但給別人打工,還是要靠 C++ 干活吃飯。我對待 C++ 的態度和云風不同,雖然他所說的 C++ 技術的事情我都懂都理解,而我感受到的不是技術問題,而是人生的問題以及人的精力問題,所以我感到還是需要寫一篇文章,和你探討下程序猿的編程人生。
請先容我在這里倚老賣老下。我用 C++ 也用了好久,2000 年開始真正開始學C++。之前是為了找工作需要,學了幾年的 Delphi 以及 Foxpro。2001 年下半年畢業開始,感受到 C++ 的強大,我開始買大量的 C++ 的書去學習。
朋友周愛民對我的評價就是:你是個學院派的。你最適合去大學里搞研究。
呵呵,可能我是從我父親那里遺傳并繼承了他的研究能力。我很喜歡找到一個東西,并深究研究到我認為透了,我才去用。這個在其他地方也同樣體現。
在學 C++ 之前,我也學了2~3 年的 Delphi,而且畢業設計都是 Delphi 做的。我去面試的是 Delphi 的工作,但業余時間,看 C++ 的書,寫一些 C++ 的代碼練手,后面時機成熟了,就很輕松的上手寫代碼。
但我那堪比貓的好奇心。讓我總是在不停的被 C++ 的“特性”所干擾。因為 C++ 提供的特色太多了。模板,模板庫。虛擬、虛擬、再虛擬的東西。各種抽象、抽象、再抽象的方式。這里就不逐一敘述各種 C++ 概念了。
而這些有趣的東西。會讓我的精力一次又一次的轉到研究這些 C++ 的有趣的設計上。但多年以后回過頭來看,這些東西盡管設計的確實很不錯,但占你人生的代碼量而言,大概有1% 到 10% 左右不等,具體看人的工作性質。而這種代碼,也會被其他方式替換,只不過 C++ 提供的是比較易懂的機制。而不管編寫底層庫,還是編寫頂層實現代碼。最多的還是業務代碼,而這種業務代碼,就是基礎邏輯代碼。任何計算機語言都提供的那類 基礎功能。
在十來年前,流行過一套小書,其中有一本書叫《編程之道》。里面充滿了道家的思想,很多地方甚至就是把老子、莊子的話稍微改一下就成了一種很神秘的話, 呈現在你面前。多年來,我一直時不時的看看這本書,感悟下書里面所說的道理。
一個初學者被要求編寫一個財務軟件。
他瘋狂地工作了很多天,但他的主管檢視他的程序時發現,它寫了一個編輯囂,一個圖形程序集,和人工智能的界面,但是看不到任何跟財務有關的東西。
主管要求解釋時,程序員被激怒了:“你太沒耐心了,我會在最后寫財務的部分。”
</blockquote>起初看這個小故事,并沒有感受到作者到底是在寫什么。工作以后才明白,這個程序猿一開始就沒有考慮核心的財務功能代碼,而是寫了周邊的代碼。要 說周邊代碼沒用嗎?其實也是有用的,但那不是核心功能。當業務真正投放使用之后,這些代碼的使用過程中,會被反復推敲修改的,如果最初就沒有思路去思考, 那結果必定是一團糟。而程序猿就這么輕易被那些“花哨”,看上去很好很強大的東西給吸引了,而忽略了最核心的需求。
而 C++ 正是讓你看到,這個不錯,可以用哦。那個也不錯,試試看?結果呢?短期來說,有可能真正的工作可能耽誤了。長期來說,積累的C++“使用經驗”,對編程水平的提高幫助幾乎微乎其微。
現在信息量如此之巨大,書籍如此多,網上的新興概念,新的資料還在不停的生產。你或許一輩子可能都看不完的東西。
《C++標準程序庫》和《代碼大全》是差不多一樣厚的。兩本書擺在你面前你是選擇哪本呢?《深入理解計算機系統》和《C++ Primer》也是差不多一樣厚的,你是選擇哪一本呢?
當你可能懂得如何謹慎的對待 C++ 標準庫的時候,boost 庫又在你的面前了,loki 之類的庫都逐一出現在你面前。都是海量的信息轟炸著你的頭腦。還有巨額的各類引擎代碼。
C++可以用,用了這么長時間。我深知它僅僅是一門語言而已。但要阻止被各種所謂的“設計”給迷惑。使用他提供的一些基本功能。
去研究 C++ 的周邊的時間。你可以研究下計算機結構基礎,基本的虛擬機原理,完善你的編輯器,研究下工具鏈,研究下各種有趣的算法,看下 Lua 或者 Python 的源碼,值得研究的東西太多了。而這輩子精力太有限了。
因為這些不僅僅是屬于 C++ 的東西,而是屬于“編程”這個大范疇的東西,而很多在現代計算機出現之前就存在,這種不變的東西,才會提高你的編程能力。把精力視角擴大,多專注與編程, 多專注于你所在行業的業務需求。這才能提高你的工作能力。甚至可以和兩三好友去玩也會提高你的社交能力。
可以用C++,但不要去研究C++
最后,我再用一段《編程之道》的小故事做個總結。
有一天編程大師碰見了一個正玩掌上游戲機的編程新手,他說:“給我看一下?”
新手把游戲機遞給大師,“我看到上面說明了三種難度的玩法:容易,中等,高難”,大師說,“但是每個這樣的游戲機都有另外一種玩法,此時游戲機即不是想著怎么贏你,也不是怎么被你贏。”
“那么請問大師”,初學者說,“這種玩法到底是怎樣玩的呢?”
大師把游戲機摔到地下然后用腳踩碎它,突然初學者明白了。
</blockquote>來自: jianshu.io<span id="shareA4" class="fl"> </span>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!