亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux應用開發自學之路

發布時間:2020-03-01 23:42:39 來源:網絡 閱讀:1186 作者:良許Linux 欄目:系統運維

前言

在 「關于我 」那篇博文里,朋友們應該知道了我不是科班出身,是由機械強行轉行到Linux應用開發方向。下面我就詳細向大家介紹自己這一路上的轉行歷程,希望對大家有所啟發。

我是學機械專業的,對于機械專業我還是很感興趣,而且當年這個專業也是我自己選擇的。本科時成績沒排第一,但也排專業前列。碩士時成績一直是專業第一,還拿過國家獎學金。由此可見,我還是挺熱愛機械的,考研時甚至還想去中科院深造(可惜落榜了),想成為一名機械磚家。

轉折點

但轉機在我畢業之后。本來我就想一直踏踏實實的做機械,但陰差陽錯的,第一份工作由機械工程師調劑到電子工程師。雖然是電子工程師,但做了很多代碼工作,那時候學了一些Verilog,以及C#,并且用C#開發了一個測試工具及一個生產用的上位機,據說那個測試工具現在還在電子部門使用。也就是那時,我真正接觸到了編程,并深深的被編程世界所著迷。

可是,我在學校學的是機械啊,跟軟件相關的東西頂多是C語言及匯編語言,但C語言是十年前(那時候)學的,早就還給老師了。因此,為了工作的需要,我硬著頭皮開始學習編程。我每天早上6點起床,學習一個小時后7點去趕班車,晚上下班回來再繼續學習。在這樣的條件下我學會了Verilog及C#,同時對STM32有個大概的了解。

但那個崗位畢竟不是完全做軟件工作,還需要做電子方面的工作。做軟件的都知道,寫代碼的時候需要一個不被打擾的環境,而我那個崗位,一天可以接到十幾個電話,嚴重干擾我的軟件開發進度,因此,我決定離開公司,去做真正的軟件工程師。

入門

第二份工作,我是嵌入式工程師。在去公司之前,我系統的學了一遍51,看的是郭天祥十天學會51單片機,對單片機有個初步的入門。真正入職后,再利用一個月的時間系統學習一遍C語言,看的是C語言之父寫的C程序設計語言。這本書雖然寫于80年代,但現在看來依然不過時。而且這本書比較薄,容易看完,比較有成就感。

看完 「C程序設計語言」之后,最好再看C和指針,C專家編程,C陷阱與缺陷。這三本書號稱「C語言三劍客」 ,學完它們你的C語言水平絕對是非常之高了。做我們這行,C語言是基礎語言,一定要把C語言完全拿下。

之后為了工作的需要,開始接觸了Marvell 88MC200及88MW300。這兩款是WIFI芯片,但本質是單片機,采用的是ARM M3內核。底層驅動已經由廠家寫好了,我們要做的工作就是在SDK基礎上做應用做二次開發。在這個過程中,我對敏捷開發有了初步的認識,看了高效程序員的45個習慣:敏捷開發修煉之道這本書。

在第二家公司里,我知道了物聯網的整體解決方案,對于物聯網的整體框架有了更深入的了解。同時對嵌入式開發所需的技能有了全面的掌握,達到能夠獨立做一個物聯網項目的水平。當然,期間還學會了版本控制工具git,看的是Pro Gitgit權威指南。同時再進一步系統學習了STM32,看的書是野火的STM32庫開發實戰指南,但看的視頻卻是正點原子的。這里強烈推薦正點原子的視頻,真的是做的非常好。

由于我是轉行,我自知底子薄,起點比別人落后很多,因此我很刻苦學習。我就住在公司附近,公司8點上班,我依然6點起床,12點睡覺。平時沒事的時候就在公司學習,看代碼,寫代碼,調代碼,甚至好幾個周末也是在公司度過。為了轉行我一心撲在了學習上,放棄了一切娛樂活動,只為能趕上同事一點半點。這個狀態一直持續了我在這個公司的整個過程。

新挑戰

可惜,一年之后我不得不離開了,因為我老婆在廣州,我去廣州追隨我老婆了。由于我面試時的不錯表現,以及我不錯的英語口語,我順利的被廣州一家外資世界500強錄用。我的新崗位是Linux應用開發工程師,使用C++ 開發。而在那時,我既不會Linux,也不會C++,所以公司敢錄用我真的是勇氣可嘉。

從單片機到Linux又是一個比較大的跨度。Linux主要有三個方向:運維、應用、底層,而我選擇的是應用方向。為了工作的需要,我必須先拿下C++。好在公司是外企,幾乎不加班,于是我有充足的時間學習。可是,每天坐班車的時間加起來有三個小時,這么好的時間我不能浪費啊,于是,我買了個iPad,下載一套視頻,在班車上也進行學習。當然,我也注意保護眼睛,在班車上絕不看書,看視頻的時候也經常往窗外看看。

這里講講自學過程中是采用看書還是看視頻的方式。我采用的是先看視頻再看書的方式。為什么要這樣?因為我個人覺得,很多技術書都是很厚的一本,自己看下來要花費很多時間精力,而且很多知識點在工作中很少會用到,可以暫時先略過的。視頻一般會比較短,一般是幾天就能看完,而且老師一般只挑重點的講。我們時間都很寶貴,我建議先把老師講的知識完全掌握了以后,再利用書籍進一步擴展其它知識。但是,不管是看書還是看視頻,一定要寫代碼,一定要寫代碼,一定要寫代碼,否則非常容易造成眼高手低!!

我這家公司里我依然保持著早上6點起床,晚上11點睡覺的習慣。這樣早上有1個小時,晚上3個小時,班車上3個小時,一天總共有7個小時可以用于學習。而周末我會睡個懶覺,7點起床,依然11點睡覺,周末幾乎不出門,所以周末又有大量的時間可以用來學習。

C++ 實在是太難了,我用了一個多月才將視頻里的知識完全拿下來。之后,在工作中,陸續開始看C++ Primer進一步鞏固。其它書籍推薦:Effective C++,C++ 語言的設計與演化,C++ 標準程序庫。在stackoverflow上有個C++必讀書單,可以去看看。

學完C++我再學習了Linux系統編程,同樣采用的是先視頻后書籍的方式進行。不管是視頻還是書籍,一定要看最經典的。市面上有太多良莠不齊的視頻和書籍,如果選擇了一個質量不好的材料來看,不僅會浪費很多時間,而且有可能還會被誤導。對于視頻的選擇,可以去各大培訓機構,里面通常有一些免費視頻資料供我們下載。

對于Linux應用的學習,主要有六部分:1. 環境搭建;2. 基本操作;3. 系統編程;4. 網絡編程;5. 數據庫編程,6. Shell編程。下面一一詳細介紹。

  1. 環境搭建
    作為Linux工程師,毋庸置疑一定需要Linux環境。對于Linux環境的獲取,我們通常有三種方式:

    • 將電腦整體安裝為Linux系統;
    • 在電腦里安裝一個虛擬機,跑Linux電腦;
    • Window+Linux雙系統。

    得到Linux環境后還不夠,還要知道如何配置、如何遠程連接Linux電腦、如何與Linux電腦互傳文件、如何在主機上閱讀Linux電腦中的代碼,等等。

  2. 基本操作
    眾所周知,Linux很少或幾乎沒有界面,所有的操作幾乎都可以通過命令行來完成。對于運維人員來說,需要掌握相當大量的Linux命令。而對于應用、驅動方向的人員來說,只需掌握一些基本的常用的命令即可。對于這部分很多人建議看 「鳥哥的私房菜」 ,但我覺得這個更適合運維人員,我們無需掌握那么多命令。

  3. 系統編程
    在學系統編程之前,一定要先學習Makefile,這會為后續的學習提高很大效率。之后的系統編程,主要有幾大塊:IO編程、進程、線程、進程間通訊(包括管道、信號、信號量、共享內存等)。這幾部分學完了,基本也就差不多了。

  4. 網絡編程
    網絡編程主要就是socket,poll,epoll,以及對TCP/IP的理解,同時要學會高并發式服務器的編寫。

  5. 數據庫編程
    數據庫的內容其實并不屬于Linux,但在項目中經常要用到。這部分主要要學會數據庫的基本操作,以及如何寫一套接口去操作數據庫。

  6. Shell編程
    Shell是Linux下的腳本語言,功能雖然不如高級語言強大,但它可能做很多事,在某些場合甚至比高級語言要方便得多。當然除了Shell腳本,還有Python腳本。

Linux應用編程書籍推薦:

  • UNIX環境高級編程。簡稱APUE,號稱程序員的圣經。它不是一本API字典,它還講述了很多操作系統的細節,內存,文件系統等方面,是一本難得的好書。但是它起點有點高,不適合初學者。
  • Linux程序設計。如果覺得APUE有點難入門的話,可以選擇此書進行入門。
  • Unix/Linux系統編程手冊。這本書號稱是一本超越APUE的書,它是一本比較新的書,里面新增了APUE所沒有的Linux/Unix新特性。而且對于一些概念性的東西講的確實比APUE好。但至于能否超載APUE,還有待歷史的考驗。
  • UNIX 網絡編程。也是一本非常經典的書,主要是網絡編程方向的。
  • MySQL必知必會。本書在Amazon上長期排在數據庫銷售榜首,建議想快速了解數據庫原理和MySQL的新手閱讀。快餐性質,簡潔明快,小開本,而且很薄,比較好閱讀。
  • Linux Shell腳本攻略。這本書很薄很精華,它追求的不是全,而是精,所以用它來入門再適合不過了。

學完以上六部分,基本就有能力完成Linux環境下的應用編程了。當然,在有些場合我們可能還需要用到Python腳本。像我公司的項目部分腳本就是用Python完成的。對于Python的入門,可以參考簡明Python教程。但如果想進一步提高的話,那就需要閱讀大量書籍了。對于Linux層級的腳本應用,掌握一些基礎的足夠了。

以上就是我的Linux應用開發自學之路,雖然我離高手還有很長的距離,但我還是將自己的這段自學經歷分享出來,希望能夠幫助朋友們少走一些彎路,同時也期待和高手一起學習、提高。好了,今天的分享就至此為止。

更多精彩內容,請關注公眾號良許Linux,公眾內回復1024可免費獲得5T技術資料,包括:Linux,C/C++,Python,樹莓派,嵌入式,Java,人工智能,等等。公眾號內回復進群,邀請您進高手如云技術交流群。
Linux應用開發自學之路cdn.xitu.io/2018/8/13/16531c1b61dc557d?w=150&h=150&f=jpeg&s=16304">

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

河南省| 柘荣县| 维西| 吉木萨尔县| 汉川市| 荔浦县| 高清| 富宁县| 枣阳市| 锦州市| 三原县| 应城市| 金川县| 图们市| 白银市| 扶余县| 江津市| 泾阳县| 长阳| 大理市| 治多县| 平乡县| 科技| 图木舒克市| 宁安市| 溧水县| 乌兰县| 贵定县| 嵊泗县| 文安县| 中江县| 桐柏县| 乡宁县| 陆河县| 广灵县| 汝城县| 太保市| 东阿县| 乃东县| 鸡泽县| 来安县|