從業5年,教你學習Linux開發
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 從這裡開始學習 LinuxLinux
- 改變自己從學習linux開始Linux
- 為什麼學習Linux?學習Linux有職業發展嗎?Linux
- 從零開始學習開發人工智慧(一)人工智慧
- 從零開始學習的朋友應該如何學習Linux技術?Linux
- 初創企業能從 Linux 學習些什麼Linux
- 學習SQL Server從在Linux上安裝開始SQLServerLinux
- 從零開始學習Linux部署Java web專案LinuxJavaWeb
- 從今天開始學習iOS開發(iOS 7版)–概論iOS
- Linux運維行業的發展前景如何?Linux學習Linux運維行業
- Linux開發環境必備的工具!Linux學習Linux開發環境
- java web開發--Servlet學習之HelloWorld 從部署到開發全過程JavaWebServlet
- 學習Linux後可以從事哪些職業?前途怎麼樣?Linux
- 從頭開始學習VuexVue
- 從零開始學習KafkaKafka
- 從零開始學習機器學習機器學習
- 從零開始學習laravelLaravel
- 手把手教你從零搭建深度學習專案(附連結)深度學習
- 學習Linux開發課程需要培訓嗎Linux
- 學習Linux常見的開發命令有哪些?Linux
- 分享學習linux系統學習心得,從大白變小白Linux
- Web開發學習Web
- Oracle開發學習Oracle
- 學習Web開發,就業方向你知道幾個 ?Web就業
- web前端就業開發學習路線(乾貨)Web前端就業
- 如何從零開始學習Linux雲端計算的運維?Linux運維
- 從0開始學習java,應該從那塊開始學起?Java
- 從裁員學習職業生涯規劃
- 從頭開始在Python中開發深度學習字幕生成模型Python深度學習模型
- 從0開始學習Webpack(一)Web
- 學習小程式從“你”開始
- eclipse學習從零開始Eclipse
- Vue 學習筆記(1):從傳統 JavaScript 到 Vue 開發Vue筆記JavaScript
- Web開發從學些JavaScript開始WebJavaScript
- web開發學習之旅Web
- SVG開發學習【轉】SVG
- 想學習Python不知從哪開始,來看我和同事通過遊戲開發學習PythonPython遊戲開發
- Linux學習路線全解,Linux作業系統學習路線Linux作業系統