從前台 Web 開發轉 Linux 後台編程該如下下手?
01-26
本屌原來從事Java、JavaScrip、Web等前台應用開發,由於各種原因現在要轉到Linux下搞驅動和網路開發。大學學的操作系統知識、計算機網路、TCP/IP協議等知識都忘得一乾二淨,C/C++也從來沒學過,Linux操作系統都沒操作過。這麼大的跨度,我該如何下手?現在好迷茫,希望得到過來人的點撥。
1 學 C++2 學網路基礎3 學C++中的網路庫。
1.下載個最新的某個Linux系統,比如Ubuntu,儘快熟悉常見的命令的操作和使用
比如ls,cd,rm等等等等。確保越來越熟悉如何簡單的在Linux下面進行基本的操作。
2.網路:去學習網路方面的基礎知識,包括網路分幾層,分別是啥,都是什麼功能等等。然後再去寫個簡單的基於socket方面的小程序,慢慢的了解socket,埠等等方面的概念;真的要是高net的網卡等驅動的開發,則又是更加深入,深入到底層各種協議方面的事情了。這方面,我之前寫了個教程,不過沒寫完,只寫個框架。僅供參考:如何在Linux下寫無線網卡的驅動3.驅動:最近剛寫的,只完成了其中一部分,供參考:(1)先看:
嵌入式軟體開發搞懂嵌入式軟體。(2)嵌入式領域內的,各種驅動共性的東西:嵌入式驅動開發(3)單獨針對Linux系統下面的軟體開發:嵌入式Linux軟體開發(4)針對Linux下面的,驅動方面的開發:嵌入式Linux驅動開發4.然後期間會遇到各種知識點,技術,框架等等,只能等你自己,逐漸慢慢搞懂各自的名詞含義,技術細節了。其中學會利用網路資源,尤其是用google搜技術資料
(可參考我的:【crifan推薦】利用搜索引擎google幫助你解決問題)尤其尤其是查維基百科wikipedia,可以快速地搞懂一個(東西,尤其是)技術是幹啥的,有個概覽,便於搞懂大概是啥,然後再慢慢深入研究。Unix環境高級編程那本書當工具書來看就行了。linux程序設計這本要結合操作系統來看,要不然看完了還是一頭霧水,不知道能拿來幹什麼。TCP/IP的書建議結合和UNIX網路編程來看(我光看TCP/IP詳解卷一,看完了還是只懂理論)。shell編程就買本一個印度人寫的,貌似叫Linux的shell腳本編程。好久之前看的了,看了這本基本一些基礎功能你都可以輕鬆實現了。
如果你真心想深入學習的話, 推薦給你一下路線:
Ps: 一下推薦路線並不需要全部看完才能幹活, Linux操作網上搜點簡單的就好了, 不需要看鳥哥XX(掩面)
- 學習計算機網路基礎知識. 推薦書籍: 計算機網路 (豆瓣)
- 學習C/C++基礎知識. 推薦書籍: C程序設計語言 (豆瓣)C++ Primer 中文版(第 4 版) (豆瓣)
- 學習Unix網路編程
- UNIX網路編程 (豆瓣)
- UNIX網路編程 卷2 (豆瓣)
- UNIX環境高級編程 (豆瓣)
更加深入的學習協議細節, 推薦TCP/IP卷一和卷二
基本看到Unix網路編程書的時候就可以開始擄袖子幹了...
順便說一下, 可以參照一些開源網路庫對照學習, 推薦Linux多線程服務端編程 (豆瓣) . @陳碩
逃...最後一個「急」字 然後笑了。。。既然你急 那麼你想實現什麼功能,了解大概的過程,學習實現的細節,學習語言也不用全掌握,夠用就好
這麼多基礎忘了得學好久才行呢
推薦閱讀:
※Ubuntu for phones 有哪些值得關注的特性?
※如何在超極本上安裝 Linux 發行版?
※Ubuntu 16.04 LTS + GTX1060 + CUDA8.0 [解決循環登錄問題]
※免費 SSL: Ubuntu 16.04 配置 Lets Encrypt 實現站點 SSL