03.08 怎麼保持學盡最新C++的知識?

金牌評手


本人10年開發培訓經驗,期間經歷了Java Web,Android,H5,大數據,PHP等多個不同的方向的開發,也做過軟件培訓公司的金牌講師,很有興趣回答你這個問題。

對於你的這個問題,我可以結合自身的體會,給你一些建議,這樣你或許可以少走點彎路。

其實很多時候,我們沒有必要把所有的API都學完,都瞭解完,這是沒有必要的。因為你開發中真正常用的API有多少呢?只需要把常用的API瞭解到了就行了,然後用到一些不熟悉的api的時候,知道有這個東西,去哪裡查就好了。對於這種技術型的東西,經常會進行更新,想把所有東西都掌握住,是不現實的,而且是沒必要的。如果你這樣去學習,會發現自己好比是掉進了一個大洞裡,洞裡都是寶藏,哪個你都想要,哪個你都不想丟棄,但是你拿不了這麼多。所以呢,選擇最重要的就好了。


我從事互聯網開發10年,主要的研究方向集中在Java web微服務架構領域,Android移動端研發,HTML5前端方向,我會陸續寫一些關於互聯網技術方面的文章,感興趣的朋友可以關注我,相信你一定會有所收穫。

如果有Java,Android,H5等開發方面的問題,或者是開發求職方面的問題,都可以在評論區留言,或者私信我。


一一哥Sun


C++自1979年就有了,1998年ANSI/ISO標準投入使用,通常這個版本被認為是標準的C++。沒有你提問的所謂最新C++,只有標準的C++,有網絡總結的學好C++的50條忠告,你可以拜讀一下:

1.把C++當成一門新的語言學習;

2.看《Thinking In C++》,不要看《C++變成死相》;

3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因為他們很難而我們自己是初學者所以就不看;

4.不要被VC、BCB、BC、MC、TC等詞彙所迷惑——他們都是集成開發環境,而我們要學的是一門語言;

5.不要放過任何一個看上去很簡單的小編程問題——他們往往並不那麼簡單,或者可以引伸出很多知識點;

6.會用Visual C++,並不說明你會C++;

7.學class並不難,template、STL、generic programming也不過如此——難的是長期堅持實踐和不遺餘力的博覽群書;

8.如果不是天才的話,想學編程就不要想玩遊戲——你以為你做到了,其實你的C++水平並沒有和你通關的能力一起變高——其實可以時刻記住:學C++是為了編遊戲的;

9.看Visual C++的書,是學不了C++語言的;  

16.把時髦的技術掛在嘴邊,還不如把過時的技術記在心裡;

18.學習編程最好的方法之一就是閱讀源代碼;

19.在任何時刻都不要認為自己手中的書已經足夠了;

20.請閱讀《The Standard C++ Bible》(中文版:標準C++寶典),掌握C++標準;

21.看得懂的書,請仔細看;看不懂的書,請硬著頭皮看;

22.別指望看第一遍書就能記住和掌握什麼——請看第二遍、第三遍;

23.請看《Effective C++》和《More Effective C++》以及《Exceptional C++》;

24.不要停留在集成開發環境的搖籃上,要學會控制集成開發環境,還要學會用命令行方式處理程序;

25.和別人一起討論有意義的C++知識點,而不是爭吵XX行不行或者YY與ZZ哪個好;

26.請看《程序設計實踐》,並嚴格的按照其要求去做;

27.不要因為C和C++中有一些語法和關鍵字看上去相同,就認為它們的意義和作用完全一樣;

28.C++絕不是所謂的C的“擴充”——如果C++一開始就起名叫Z語言,你一定不會把C和Z語言聯繫得那麼緊密;

29.請不要認為學過XX語言再改學C++會有什麼問題——你只不過又在學一門全新的語言而已;

30.讀完了《Inside The C++ Object Model》以後再來認定自己是不是已經學會了C++;

31.學習編程的秘訣是:編程,編程,再編程;

32.請留意下列書籍:《C++面向對象高效編程(C++ Effective Object-Oriented Software Construction)》《面向對象軟件構造(Object-Oriented Software Construction)》《設計模式(Design Patterns)》《The Art of Computer Programming》; 

34.請把書上的程序例子親手輸入到電腦上實踐,即使配套光盤中有源代碼;

35.把在書中看到的有意義的例子擴充;

36.請重視C++中的異常處理技術,並將其切實的運用到自己的程序中;

37.經常回顧自己以前寫過的程序,並嘗試重寫,把自己學到的新知識運用進去;

38.不要漏掉書中任何一個練習題——請全部做完並記錄下解題思路;

39.C++語言和C++的集成開發環境要同時學習和掌握;

40.既然決定了學C++,就請堅持學下去,因為學習程序設計語言的目的是掌握程序設計技術,而程序設計技術是跨語言的;

41.就讓C++語言的各種平臺和開發環境去激烈的競爭吧,我們要以學習C++語言本身為主;

42.當你寫C++程序寫到一半卻發現自己用的方法很拙劣時,請不要馬上停手;請儘快將餘下的部分粗略的完成以保證這個設計的完整性,然後分析自己的錯誤並重新設計和編寫(參見43);

43.別心急,設計C++的class確實不容易;自己程序中的class和自己的class設計水平是在不斷的編程實踐中完善和發展的;

44.決不要因為程序“很小”就不遵循某些你不熟練的規則——好習慣是培養出來的,而不是一次記住的;

45.每學到一個C++難點的時候,嘗試著對別人講解這個知識點並讓他理解——你能講清楚才說明你真的理解了;

46.記錄下在和別人交流時發現的自己忽視或不理解的知識點;

47.請不斷的對自己寫的程序提出更高的要求,哪怕你的程序版本號會變成Version 100.XX;

48.保存好你寫過的所有的程序——那是你最好的積累之一;

49.請不要做浮躁的人;

50.請熱愛C++!


林凱文


隨著互聯網+深入蓬勃的發展,經過40餘年的時間洗禮,C/C++儼然已成為一門貴族語言,出色的性能使之成為高級語言中的性能王者。

後端服務器,移動互聯網後端,經典Windows界面開發,移動互聯網端界面開發,跨平臺界面開發,圖形分析,系統架構,應用設計,還有現在最為流行的分佈架構等一些新的技術領域。

C++太博大精深了,其中最複雜的莫過於泛型編程思想,不要以為能寫個模板類就認為泛型編程不過如此而已。

仔細看看STL源碼, Boost 源碼, 你就知道泛型編程有多麼的博大精深了。

修煉C++, 可以從用C++封裝的MFC, wxWidget入手, 看高手如何通過C++語言, 封裝這樣龐大的UI庫,裡面應用了很多的C++機制, 最典型的就是多態機制, 還有很多的設計模式應用可以研究。

設計模式是程序設計的靈魂,是通用方法,當你面對一個大型項目的時候,如何設計一個有彈性的系統,是所有系統分析員應該掌握的技能。在設計模式的研究上,要結合實際的項目進行。

還有什麼是跟C++相關的,很多多,這裡涉及你從事的編程方向,比如:

Windows系統編程:那Windows系統機制和MFC都是必學的。其實這個也算是基礎,你學好了,其他的系統編程,原理也相通。

移動設備編程:現在主要是MacOS、android和windows phone,這幾個吧。

數據庫編程:你要再去學數據庫原理和知識,SQL語言有標準,大部分數據庫在一定程度上相通。

網絡編程:主要是服務器方向吧,那可能是學LINUX系統了,和數據庫有一定相通。

嵌入式系統開發:這個相對而言不太適合C++,不過你如果真的基礎紮實,估計最多一個月,也就能學完一套適合的編程語言了(JAVA、C語言、腳本語言……這時候,你已經對C++有一定火候了,才應該去學習其他語言。),畢竟原理相通麼。


莫非8125


你好,非常高興給你回答這個問題哈,

第一,跟真正的在行業裡c加加的這個大神去主動交朋友去學習,去分享你的困惑,分享你的熱情,比如在csdn的網站,因為這些人大多是在職且實戰項目的經驗特別豐富也願意分享,這樣的人,給你的東西一定是很有價值,但首先你要和對方能夠交上朋友。

第二,找到適合自己學習的方法論,把它實踐起來,小步快跑,你要真想搞定這個事兒啊,你就要先混到這個學習圈裡,找到一些比較熱情的社群,你要分析一下自己的個性是否和這些優秀的學習者一致,這東西啊,就像在得到app聽書,讀書群讀書都是一樣的道理,有圈子才能反覆督促呼喚你的熱情才能持續的去找到一些答案,而不是天天聽一些大道理。

第三,學習技術的關鍵在於找到一些比較經典的教材去系統的學習很重要《我想這個你自己應該能找到》,這些技術點的學習,千萬不能東一榔頭西一棒子,通過一些知名技術性的論壇,比較知名的一些社群的頭兒,技術博主等,這些人去看看人家的學習的方式和方法作為自己的參考因素之一。

總而言之,這個問題其實是一個偽命題,就是千萬別想學盡一個知識,對任何一個人都是不可能的,尤其是it的技術,關鍵在於你認識這門技術你是否具備正確的思維框架,是否是用了最有效率的方法去學習,也就是所謂的學習力提升,我建議你除了看技術之外學習一下,像類似成甲的那兩本書《好好學習》,《好好思考》,從這個思維方面提升自己,然後再來判斷我怎麼樣去把c加加學的更有效率,更能學以致用。

以上先說這麼多吧,如果還有別個問題可以關注我,我們可以繼續討論。



心手馬克


C++知識是學不盡的,找個合適工作,在工作中學習

如果你執著於學習C++而不實際操作運用,就如同金庸小說《射鵰英雄傳》

九陰真經的著作人:黃裳隱居40多年,苦思破解敵人武功之道。 40餘年後重出江湖,此時仇家均已死去,餘下的當年一個少女,也已年邁。

這就像你所說的學盡C++的所有知識,說不定等你學盡了C++都淘汰了!

學以致用才是關鍵

在實踐中體會,語句編寫的樂趣,彙編出讓人看著舒服自然通順的語句


極客李老廝


幾點意見:

1.最新是學不完的,也沒必要總是追最新,因為你的工作環境或目標環境未必也是最新。基礎的東西是不會變的,最新標準瞭解一下有必要,但不續奉行。

2.C++新的部分,在我看來漸趨過於複雜和繁瑣,有偏離原本簡潔的嫌疑。

3.標準在網上免費發佈,不過是英文版。要看中文,等中文版的《C++ Prime》,作者是參與制定標準的成員,同時寫教材,是這方面的權威書籍。


TonyDeng


題主可能你要改變下策略,C++的知識是學不盡的,因為如果你都能學盡,那麼意味著你都沒有深入。所以最好的方法是深入某一個方面。比如你果你對桌面開發感興趣,就應該將操作系統相關的圖形化的知識瞭如指掌。

所以一般的做法是C++每次更新的時候把更新的語法知識瞭解即可,深入到C++的某一項領域中。


李老師tome


最新的知識不一定是最適合的!需不需要加入最新的知識看項目的情況,不過知不知道是非常重要的!這就需要我們經常的去學習瞭解最新的知識,我覺著非必要前提下了解就可以了,知道在什麼時候新知識能幫助我們減少不必要的麻煩就可以,如果在項目中用到了,就需要我們去認真的學習對應的知識。這樣我們既能瞭解新知識,在項目中又能最快的去使用。


俺萊蕪有啊


知識這東西是學不完的的,在這個領域有多深的研究,取決你自己,而且知識有橫向縱向的聯繫。It's never too later to learn.


90後生活小白


我是誰……到哪去


分享到:


相關文章: