如果你看完APUE的感觸有很多,希望驗證你的某些想法或經驗,推薦UNIX程序設計藝術,世界頂級黑客將同你分享他的看法。
現在是時候做分流了。 大體上我分為四個方向:網絡,圖形,嵌入式,設備驅動。
如果選擇網絡,再細分,我對其他的不是他熟悉,只說服務器軟件編寫及高性能的并發程序編寫吧。相對來說這是網絡編程中技術含量最高的,也是底層的。需要很多的經驗,看很多的書,做很多的項目。
我的看法是以下面的順序來看書:
APUE再深讀 – 尤其是進程,線程,IPC,套接字
多核程序設計 - Pthread一定得吃透了,你很NB
UNIX網絡編程 – 卷一,卷二
TCP/IP網絡詳解 – 卷一 再看上面兩本書時就該看了
5.TCP/IP 網絡詳解 – 卷二 我覺得看到卷二就差不多了,當然卷三看了更好,努力,爭取看了
6.Lighttpd源代碼 - 這個服務器也很有名了
7.Nginx源代碼 – 相較于Apache,Nginx的源碼較少,如果能看個大致,很NB??丛创a主要是要學習里面的套接字編程及并發控制,想想都激動。如果你有這些本事,可以試著往暴雪投簡歷,為他們寫服務器后臺,想一想全球的魔獸都運行在你的服務器軟件上。
Linux內核 TCP/IP協議棧 – 深入了解TCP/IP的實現
如果你還喜歡驅動程序設計,可以看看更底層的協議,如鏈路層的,寫什么路由器,網卡,網絡設備的驅動及嵌入式系統軟件應該也不成問題了。
當然一般的網絡公司,就算百度級別的也該毫不猶豫的雇用你。只是看后面這些書需要時間與經驗,所以35歲以前辦到吧!跳槽到給你未來的地方!
圖形方向,我覺得圖形方向也是很有前途的,以下幾個方面。
Opengl的工業及游戲開發,國外較成熟。
影視動畫特效,如皮克斯,也是國外較成熟。
GPU計算技術,可以應用在瀏覽器網頁渲染上,GPU計算資源利用上,由于開源的原因,有很多的文檔程序可以參考。如果能進火狐開發,或google做瀏覽器開發,應該會很好 。
嵌入式方向:嵌入式方向沒說的,Linux很重要。
掌握多個架構,不僅X86的,ARM的,單片機什么的也必須得懂。硬件不懂我預見你會死在半路上,我也想走嵌入式方向,但我覺得就學校教授嵌入式的方法,我連學電子的那幫學生都競爭不過。奉勸大家,一定得懂硬件再去做,如果走到嵌入式應用開發,只能祝你好運,不要碰上像Nokia,Hp這樣的公司,否則你會很慘的。
驅動程序設計:軟件開發周期是很長的,硬件不同,很快。每個月誕生那么多的新硬件,如何讓他們在Linux上工作起來,這是你的工作。由于Linux的兼容性很好,如果不是太低層的驅動,基本C語言就可以搞定,系統架構的影響不大,因為有系統支持,你可能做些許更改就可以在ARM上使用PC的硬件了,所以做硬件驅動開發不像嵌入式,對硬件知識的要求很高??梢詮氖碌姆较蛞埠芏?,如家電啊,特別是如索尼,日立,希捷,富士康這樣的廠子,很稀缺的。
LDD – Linux驅動程序設計與內核編程的基礎讀物
深入理解Linux內核 – 進階的
Linux源代碼 – 永無止境的
當然你還的看個方面的書,如網絡啊什么的。