從前台 Web 開發轉 Linux 後台編程該如下下手?

本屌原來從事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(掩面)

  1. 學習計算機網路基礎知識. 推薦書籍: 計算機網路 (豆瓣)
  2. 學習C/C++基礎知識. 推薦書籍: C程序設計語言 (豆瓣)C++ Primer 中文版(第 4 版) (豆瓣)
  3. 學習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

TAG:Linux | Ubuntu | C編程語言 | 網路編程 | linux驅動 |