首頁>Club>
具體的知識方向、書籍、專案。
9
回覆列表
  • 1 # linux技術棧

    1) 語言&工具C語言和C++是傳統的 Linux 開發的語言,需要掌握。除了基本的語法,還要玩轉一套工具鏈。經典的組合是 GCC(編譯器)+ Make/Makefile(構建中大型專案必須的工具)+ GBD(偵錯程式)+ Valgrind(記憶體分析工具)+ Vim/EMACS/Gedit/Sublime Text(編輯器)。現在有越來越多的新專案使用 Clang/LLVM 來構建了,例如 Android NDK 已經放棄GCC,全面轉向 Clang。由於 C++ 語法變態,到處都是奇*巧*淫*技,並且沒有記憶體回收機制,所以被最近幾年大火的 Golang 完爆了,不少底層專案開始轉向 Golang,棄用 C++。嗯,這是好事,作為《C++教程》的作者我已經噁心透了,C++ 這種騷*浪*賤的語言早就該被爆*操了。對於初學者來說,不要貪多嚼不爛,先學好 C/C++ 語言,掌握 GCC 就可以,Clang/LLVM 和 Golang 留著以後再學。

    2) 資料結構和演算法學習基本的,瞭解概念就可以,很多庫已經封裝好了常用的資料結構和演算法,實際開發中你不用從零開始,所以千萬不要陷在裡面不能自拔,演算法是個無底洞,耗死你。記住,以後需要了可以再來回顧,不用一開始就吃透。

    3) 作業系統除了基本的 Linux 操作,還有必要了解一些常用命令;當然,這不是重點,只要你經常使用 Linux 作業系統,慢慢就會了。記憶體(虛擬地址空間、記憶體分配策略)+ 程序執行緒(程序通訊、執行緒排程、死鎖) + 檔案系統 + 輸入輸出 + 中斷等才是重點。這些都是理論,要和實踐相結合起來。

    4) 通訊(Socket)在伺服器上做開發,通訊是必不可少的,而且是重中之重。除了瞭解 TCP/IP 協議族,還要學習 socket 程式設計,將理論和實踐集合起來。ACE、Libevent、Libev 等知名的網路庫也要掌握一兩個的,畢竟在實際開發中不可能直接呼叫 Linux API 吧,怎麼也得搞個庫來提高效率。

    5) 介面庫當然,在伺服器領域一般不需要介面,但是掌握一個介面庫會讓你做出一個好玩的軟體來,學以致用,提高興趣。Linux 下常用的介面庫有 Qt、GTK、WxWidgets 等,其中 Qt 是老大。搞 Linux 開發,作業系統原理和通訊是重點,也是最難學的部分,這是你跨進 Linux 開發這扇大門的標誌,不學這些就是耍流氓。

    C/C++ Linux伺服器開發免費學習地址:https://ke.qq.com/course/417774?flowToken=1013300

  • 中秋節和大豐收的關聯?
  • 精神病人該如何與正常人相處?