C 學到怎麼樣的程度才算是達標

2021-08-26 14:37:07 字數 3877 閱讀 5109

c++學到怎麼樣的程度才算是達標?

2023年03月02日

網摘______________________

當你能自如的運用資料結構和演算法、tcp/ip原理、編譯原理、作業系統原理、資料庫以及win32 api 呼叫、構造自己的c++庫(網路庫、數學庫、測試庫、圖形庫)以及各種引擎,出去畢業應該能在短短半年時間裡薪水至少有7000以上甚至上萬吧(其實畢業生出去95%以上可能沒達到這個水平)。

其實也不用說太多,你問你自己幾個問題,如果你都能做到或者學習半到2個月就能做到,那肯定是達標了:

1、我能用c++做出2d的rpg遊戲嗎?(c++與api或框架的結合運用能力)

2、我能用c++通過3種以上的方法寫出四則運算表示式分析器嗎?(c++與資料結構、演算法的結合能力)

3、我能用c++寫出類似stl的簡化版的庫嗎?(庫與框架設計能力與c++高階語法運用能力的結合)

補充:①、你能這麼問,說明你知道程式設計能力對it行業高薪工作的重要性是至關重要的。

②、你的目的性已較強(知道要深入下去),但是你也想有更加明確的目標,我可以給你講一下怎麼自己去尋找目標和路線以及怎樣學習。

③、計算機專業領域一共有幾個大方向,十幾個分支方向,而每個分支方向又有幾十個小方向,每乙個方向的深入學習與熟練到一定火候都不是一朝一夕,互相之間也不是完全沒聯絡的,但是你現在就應該選擇乙個大方向並在其中的乙個小方向內深入(為什麼要這麼早就選擇具體的分支方向?後面說)。

④、這裡列出計算機的幾個大方向(非程式設計開發類的我就不說了):

基本方向:

1、微控制器、嵌入式方向

2、網路程式設計:涉及到伺服器程式、客戶端開發、指令碼設計等。

3、系統程式設計:基礎api開發、桌面開發、系統程式開發、服務程式

4、圖形學:3d、2d、影象識別、人臉識別

5、音訊:語音識別、音訊解碼、音訊軟體

6、編譯原理:編譯器設計、指令碼直譯器、虛擬機器、非自然語言翻譯系統

7、應用層開發:利用高層語言去開發表層應用

8、安全:反工程、病毒、反病毒、木馬、反木馬、軟體破解、軟體加殼

附加方向:

8、人工智慧:遺傳演算法、神經網路、灰色系統等等

9、遊戲設計:各種遊戲引擎設計以及業務邏輯設計等

⑤、基本方向是你一定要選的,附加方向只是基於基本方向的一些錦上添花,但是不管你怎麼選,最開始某些東西一定要深入而不是只是懂就夠(當然你對自己要求似乎不會很低),我把這個列出來:

資料結構:下面其他理論的基礎。

作業系統原理:理解作業系統的架構和細節,你才能對以後關於多執行緒、檔案管理、記憶體管理、指令優先順序等有乙個正確理解和運用。

編譯原理:能夠昇華你對計算機程式語言的理解,對以後出現的各種編譯、解釋、相容、移植、優化、併發與並行演算法等有乙個深入理解。

資料庫系統原理:這個是進入公司都要會的,也是大型軟體開發的基礎。

軟體工程:這個是你能夠在經驗不足還能保證大專案正常完成的理論基礎。

網路技術:這個是必須學的,因為目前幾乎沒有一款裝機率很高的軟體或者平台跟網路無關。

數學的話,主要是:離散數學、線性代數、高等數學、計算機圖形學、概率論

以上幾個基礎就是你成為乙個融匯各個主要分支牛人必須學的(當然不是指理論,而是理論+實踐編碼能力)

⑥以上都是大的基礎,要一一攻破並深入學習,雖然網路時代計算機專業知識**式的增長,但是以上幾個基礎掌握後,會發現,以後的什麼新的理論和技術都是基於這些大基礎,你就很容易理解了。

⑦我為什麼開頭不講你要具體學什麼怎麼順序學呢?因為那些技術你要掌握的話,根本可以自己解決,但是如果你由於興趣,沉迷於一些自己可見的小範圍技術的話,那麼畢業後雖然也能找到不錯的工作,薪水也可能高,但是不能成為乙個大牛。

現在才開始講學習順序,雖然你說不要推薦書,不過我還是要用書來做順序。

你的學習順序應該是:

c:做乙個超級馬里奧出來,並能夠讀取文字指令碼來更新關卡。

c++:寫乙個2d圖形引擎,封裝掉細節,實現物件導向設計和可復用設計,並且用到《設計模式》中提到的一些設計模式,這樣才能算對c++有乙個很好的掌握。

mfc:mfc技術雖然近期已經冷下來了,但是你能熟練掌握它,才能證明你的c++oo技術夠純熟,嚴格證明你掌握了mfc很簡單,你只要用mfc做出乙個防毒引擎就差不多了。推薦的書有《深入淺出mfc》。

《windows程式設計》:和mfc不同的是,用的是windows核心sdk,也就是api,這本書學完後,你才能從作業系統層面上算掌握了win32 平台下的機理(其實win64和win32大部分機理類似)。

c#:c#裡集合了當代和前沿電腦科學裡最先進的一些語法(雖然執行效率一直被人質疑),但是你學完c#並深入後,至少能夠算是對計算機語言有乙個更加深刻的理解了。如何證明你c#學的不錯了?也很簡單,再次寫乙個隨便什麼遊戲,比如俄羅斯方塊。如果更加證明自己呢?用它寫乙個p2p網路對戰遊戲。

(如果你注意的話,會發現我說的學習順序都是沿著語言和某些技術的,為什麼呢?因為這些語言和技術涉及到特定的領域技術和計算機理論思想,比如【真正】學完了c#的話,就不單指學完了c#,而是把多種語言正規化都學習了一遍,以及現代的程式開發思維(因為裡面用到了很多讓你一勞永逸的技術))

以上5個步驟都是基礎大步驟,要解決的話要沒1-2年應該不夠。

與此同時,要盡快選出文中你感興趣的方向作為3-5年的長期方向,不要擔心過早選擇分支方向會有什麼損失,因為計算機很多分支是相通的,只有你把分支方向深入進去,才能真正理解很多理論的實踐意義。並且一旦你在某個分支領域形成了較強的優勢(比如,到公司裡只有你這方面最強),那麼你就是稀缺人才。

關於大方向的步驟就不說了,你主要就是要把我說的這幾個基礎步驟先解決,同時平時要注重大方向理論結合實際去編碼和開發。

如果只是看了一本經典的c++教材,基本上也就只能做乙個基於控制台的的「圖書管理系統或者類似而的東西」,而真正需要的東西往往總是與一些其它東西結合的。

比如如果要做乙個windows程式設計師,首先肯定要會開發windows下的gui程式,這就涉及了兩個常用工具――mfc和.net framework。關於mfc有兩本經典的書,候俊傑的《深入淺出mfc》和孫鑫的另外一本,如果要學習.net framework,那麼不妨順便學習一下c#,經典書籍無疑是《c#入門經典》。順便說一下,有了c++的基礎,c#的語言部分基本上兩三天就能熟悉了。

windows程式設計師如果要對作業系統更加的熟悉,肯定還要了解win32 api。無論是mfc還是vb、.net framework其本質都是對api的封裝,在對api的了解過程中,可以更深刻的理解windows的執行機制。這裡推薦的無疑是《windows核心程式設計》

如果需要開發windows平台下比較底層的程式,比如ramdisk、防毒軟體、防火牆等,那麼就又有兩個必學的課題了。乙個是win32彙編,乙個是基於c/c++的驅動程式編寫。win32彙編的書無疑就是羅雲彬的《琢石成器》,而驅動程式的書實在是太少了,將wdm的書可能還有一兩本算是經典,wdf就是開玩笑了。

如果要用c++開發windows下的遊戲,那麼directx無疑是乙個必學專案。

如果要用c++開發嵌入式系統,那麼當然要看看微控制器和arm的書籍了(順便說一下,微控制器程式基本上都用彙編或者c語言來寫)

如果是編寫用於linux的gui程式,那麼就有必要了解幾個流行的gui庫。qt、gtk+、wxwidgets是其中最優秀的幾個。順便說一下,qt還是跨平台的,一次編寫,然後就可以編譯到linux、windows、mac不同的系統中。關於qt的書這裡推薦《c++ gui qt4 程式設計》,官方教材。

如果是編寫涉及網路的程式,比如說類似emule這樣涉及應用層協議的東西,那麼首先學習一下網路的基本知識是很必要的,這裡推薦的是《計算機網路:自頂向下方法》

最後再加一些比較根本的東西:演算法。演算法始終是軟體的靈魂,經典教材有《演算法導論》和《具體數學》等

c++的高階技巧。一般的c++通用教材不會涉及的,而在實踐中又會遇到的某些很彆扭的、比較難回答的問題。這類涉及c++高階技巧的書,最經典的無疑是《effective c++》,另外關於c語言的《c陷阱和缺陷》、《c專家程式設計》也不錯。

______________________網摘

Python列表 元祖 字典學到怎麼樣才算掌握?

2 元祖 3字典我學習了這麼久,總結寫來,列表絕大多數就是對列表的切片以及索引,切片稍微理解起來會繞一點,接下來最好跟著我一起敲 有助於理解切片。以下 可直接複製,無需注意中文 先定義乙個列表,再看下面的需求 lis 0 1,2 3,4 5,6 7,8 9 現有以下需求 獲取lis列表中元素 1 獲...

你的c 學的怎麼樣?

1.基本型別 各種型別是怎麼進行預設轉換的,強制轉換和各種cast都有什麼區別,編譯器如何對齊,pack和align是什麼東西 2.運算子 所有運算子的優化級都弄明白了麼?什麼能過載,什麼不能過載,什麼能運算子不會自動繼承交類?templateoperator const a const b 這樣的...

網域名稱怎麼樣才合格 哪些網域名稱才是真正意義上的好網域名稱?

首先網域名稱是網際網路的門牌號,乙個好的網域名稱,就像是有乙個好地段的房產權一樣,乙個好網域名稱也是你的 成功的基石。但是如何才能識別出哪些是好網域名稱?下面先和大家談談什麼型別的網域名稱才是好網域名稱。1 com是 王道 儘管現在很多地方都會告訴你.com如何如何資源貧乏,com仍舊是 王道 而且...