從業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/69901823/viewspace-2774163/,如需轉載,請註明出處,否則將追究法律責任。

相關文章