解析Linux C/C++開發的難度到底在哪


解析Linux C/C++開發的難度到底在哪

 

經常被問到的問題, 如何學習C++, 如何學習Linux, 如何開始?

其實這個問題對於不同的人答案往往不盡相同,每個人所處的環境就不同。一個普遍的現象是有一些windows開發基礎的人,他們想轉Linux開發,那我就以這個點和大家討論一下。

相對於Linux下的C/C++開發,在windows下的初學者往往容易入門,原因是visual studio, 這個強大的工具隱藏了很多的細節,好多人甚至以為拖拖控件,寫寫消息響應函數就是軟件工程師了,這點在入門的時候尤為明顯,出生牛犢不怕虎,信心滿滿。但是在這個強大工具的背后,隱藏了太多的東西,其中許多對於我們來說是非常重要的東西,比如Make, debug, call stack, 匯編代碼,OS,哪些功能是系統提供的,哪些是工具提供的。所以很多人轉過來的時候往往去類比以前windows的知識,但是又對不上,再加上無人指點,工作不用,可能慢慢的就會失去信心。

 

但是我認為作為一個有追求的軟件工程師,如果不了解Linux, 我不認為他合格,當然此處無意挑起平台之爭,實在是對於軟件工程師而言Linux給了我們另一個選擇,另一種思路,同時也提供了我們很多的輪子和一座寶庫。

 

如下總結出一些建議,希望對Windows轉Linux開發的朋友有所幫助。

1. 不要一開始就去搞內核,先裝上系統用Linux來完成一些日常的事情,比如:看電影,拷貝文件,添加修改用戶,文件,學學shell 腳本。

2. 試着用命令行去編譯一些簡單的代碼,然后逐步增加難度,然后學學make。

3. 學習Linux的一些基礎知識,找本書看看。

4. 嘗試自己去寫一些小的東西,動起手來,別總看書而不去實踐,實踐出真知。

5. 學習如何調試代碼。

6. 學習主要的一些系統調用,文件操作,socket操作等等。

7. 學習簡單的驅動開發,比如:串口驅動。

8. 學習...

9. 學習內核源代碼。

 

另外在此需要指出的是,當你真正看透了Windows和Linux的軟件開發的時候,你可能並不覺得他們有很大的區別,所謂殊途同歸,說的可能就是這個道理,比如這兩個平台的代碼最后都會轉換為IA32架構的指令序列,在轉換過程中使用了不同的工具,反出來的匯編代碼區別也不是太大。還是那句話,做同樣的事情,每個人的切入點不同,所謂站得一山方望得另一山高,千萬不要畏而不前,遲遲不敢動手。

 

希望此文對大家有所幫助。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM