程式設計師學什麼樣的知識才能賺錢[1]

才智咖 人氣:6.22K

如果我們要討論C的學習路徑,恐怕要失望了。因為C和Java語言並不一樣。並沒有前人規劃好的必然成功之路。

程式設計師學什麼樣的知識才能賺錢[1]

Java語言由於面向應用面相對狹窄,框架模板眾多,最重要的,其主要工作方向比較確定,就是做基於網路的`跨平臺資料應用為主,因此,其發展方向很容易確定,學習路線也比較好規劃。

但C顯然不是這樣,C應用面太廣,可以說,彙編能做的事情,C就能做,甚至做得更好,也就是說,我們能想出來的計算機軟體應用,其實都可以由C來實現,僅僅是成本高低而已。

而不同的應用,除了計算機軟體程式設計知識之外,還需要很多應用相關的知識,這就造成了C程式設計師往往也需要成為自己應用方向上的半個專家,這就比較麻煩了,這麼多的應用方向,寫遊戲的知識儲備,和寫驅動顯然不一樣,與寫作業系統和編譯器的方向又顯然不一樣,因此,很難說一個C程式設計師需要掌握哪些知識,才夠用。

以我自己為例子,我做程式差不多快20年了,做C也超過15年,做過遊戲,工業控制,電子教育,網路傳輸等各種軟體,我總結自己的知識儲備,也僅僅覺得自己在資料傳輸方面有一點心得,並且對於C和C++語言怎麼實現0Bug程式設計,有點經驗而已,真不敢說自己什麼都會。

另外,C語言之所以難學,並不是說它自己多難,真正的問題在於,C語言偏底層,只要我們一做應用程式,或多或少都需要呼叫很多作業系統相關的api來完成工作,Windows下,如果我們不懂Win32API,則很難寫出合用的程式碼,C語言玩得再熟都不行,Linux下對於各種系統和應用級api,也需要不斷查詢man,否則根本寫不下去。所以,要想成為C程式設計師,至少要學習作業系統,通常,至少應該把Windows和Linux常見的api學一遍。MFC是Win32API的C++框架表示,最好也學一點。

其實這已經帶出另外一個話題,現代開發,C和C++一般不分,C++到了函式內部,其實是C,而C呢,有很多特性寫程式不夠方便,也需要使用很多C++的特性,如預設引數,如引用等等。所以,學習C,最好和C++套著學,都看看。呵呵,這已經是兩門語言了。

還有一個問題,不管是C還是C++,總是各個具體的作業系統上開發,Windows和Linux有差異性,很多庫函式,常量定義都不一樣,因此,C和C++一般說來,很難做到程式通用,需要使用大量的編譯巨集,這需要了解語言之外的東西,即編譯器的很多特性,不過,很可惜,關於編譯器特性,目前的資料很少,我很多都是摸索的。