從業5年,教你學習Linux開發

roc_guo發表於2021-05-27

1.  為什麼要學習Linux程式設計?

其實這個問題很容易回答,因為你要寫的程式是跑在 Linux下的啊。至於跨平臺的程式,你熟哪個就在哪個下開發,效率第一,糾纏平臺和工具,純屬吃飽了沒事幹閒的。其實 程式設計就是說開發 Linux軟體,所以說,在Linux系統下開發才會更加順手,並且效率更高。因為直接就可以在主機環境下執行,而無需再安裝虛擬機器,模擬器等來測試程式。

 

2.  關於 Linux開發

Linux下開發, 其實主要涉及 兩種基本語言,C和C++ C語言是學習Linux程式設計必不可少的語言,因為Linux系統核心很多就是C語言編寫的,而且粗語言也是目前對硬體支援最好的語言。Linux提供的很多api也是C語言寫的,所以只有當我們理解了C語言之後,才能更好的進行Linux開發。而c ++ C語言的超集,在保留了C語言的一些語法特性之外,支援的比C語言也更多。除了C語言和c++之外,還可以根據Linux去學習一下怎麼寫驅動程式等等。Linux程式設計除了Linux的api外,Linux內部還有一種語言,為shell。這門語言是是Linux的指令碼語言。類似於windows上的vb指令碼程式設計。雖然shell提供了十分簡單的語法,但是當和Linux的命令結合起來的時候,就非常強大了。基本上shell可以很好的處理各種Linux上命令列就能解決的問題,而且更加自動化和便捷。 然後學學Qt,悉一下圖形介面,可以把你 做的命令列下的小程式 完全改成圖形介面下的。

3.  如何學習?

首先, 要想學會 Linux程式設計,你 必須要 會用Linux, 也就是必須學會如何在命令列環境下操作。當你能夠在命令列下使用各種命令,操作各種檔案和在 Windows上使用滑鼠一樣的時候,就說明你已經入門了Linux系統。這個時候,你就不會再有之前對命令列的方反感,反而喜歡上了命令列。因為這個給時候,你會發現滑鼠還要點好多下的操作,在命令列下幾個字母就可以輕鬆解決。在學習的時候一定要多多練習。可以自己安裝一個虛擬機器,也可以在網上買一個雲伺服器,買最便宜的就行。在系統上多做練習。首先在Linux系統上嘗試著做各種和Windows一樣的操作,這樣就可以瞭解到Linux和windows之間的差異了。

這個 我個人認為 看一本書就行了,《 Linux就該這麼學 》,記得安裝Linux系統 自己 按照這本書的章節安排,自己手把手 操作一遍 。這本書從最基礎的命令開始,一直到搭建 lnmp環境為止,一步一步由淺入深的教你學習Linux。 做完這一步,你 基本上已經 可以 學習 開發了。 因為我當時初學 Linux作業系統的時候,就是使用這本書入的門,這本書配套的還有一個網站,非常方便,我們可以直接在網站上看書,所以說我們有時候沒有帶書,公交車上地鐵上,隨時想看就可以看。這個網站上還有很多的技術新聞資訊以及技術乾貨,我相信透過這本書你可以學到更多東西,不止Linux的,還包括其他的程式語言和作業系統等知識。

4.  如何深入

接下來就是繼續深入了, 這個時候 你得去稍微的看看核心原始碼啊,核心的進執行緒排程啊 這個時候,資料結構 演算法 啥的 這些就是你必備的基礎知識了 ,計算機網路 ,作業系統 啥的也 全部得 看看,作業系統原理啥的也得看看, 這些東西雖然看著和程式設計無關,但是全部都是真正涉及到最底層架構的東西了。學會這些東西對於你理解系統的底層架構有很大的幫助。如果不會這些知識,你根本看不懂原始碼。  

在學習的過程中,要不斷積累和了解最新的東西, 首先了解這個概念,然後知道這個概念是幹嘛的,提出這個概念是解決為了解決什麼問題的。  

5.  書籍推薦

最後推薦幾本書(前面的包含在內):


《鳥哥的Linux私房菜 基礎篇》

C程式設計語言》 丹尼斯寫的
Linux C程式設計一站式學習》 宋勁杉寫的
Eensstial C++》
C++ Primer》
Effective C++》

Linux網路程式設計》 宋勁彬寫的
Unix環境高階程式設計》
Unix網路程式設計》 兩部
Linux高階程式設計》 華清遠見

《大話資料結構》
《演算法導論》

Linux核心情景分析》
《深入理解Linux核心》

《深入理解計算機系統》
《現代作業系統》
《深入理解計算機網路》
TCP/IP》的三卷經典書

最後,我個人認為,我們要廣泛的接收新知識,所以要多去網上看一些別人的文章。比如 各大論壇, GitHub, stackoverflow, 部落格園,CSDN等等 社群和論壇 ,多逛逛,當然還有知乎也要多逛逛 ,畢竟知乎的大神還是很多的。

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2774254/,如需轉載,請註明出處,否則將追究法律責任。

相關文章