1. 程式人生 > >踏上嵌入式之路,一去不復返!

踏上嵌入式之路,一去不復返!

大家好,昨天又有一批新的小夥伴加入,這裡重新簡單介紹一下自己的情況。和很多應屆生一樣,剛畢業有著找工作的迷茫和擔憂(這裡不包含已經工作的前輩),這是我去年也有過這樣的經歷;今天有一個網友加我微信,說在b站上看了我的介紹(b站ID:TXP嵌入式),學習經歷很像他,說到這裡,我也不由噓噓的感慨以前的時光,確實我大學裡面不是本專業的,是學汽車的,在學校裡的時光,和朋友搞過一年多的汽車保養和維修的創業(其實也不算創業,當時想著提高自己的技術,這算是第一次體驗過如何去經營一個組織的經驗,確實當老闆沒有想象的那麼簡單,要有各方面的抗壓技能等等!),下面我就簡單說一下,我是如何從零基礎到linux開發崗位的一個經驗介紹:

 

正如上面所說,我是跨專業來學電子的,在幹了一年左右的汽車保養和維修,我果斷的放棄了汽車行業(其實最為直接的原因,就是出來上班工資太低,而且以我的體質不適合幹汽車維修,為啥這樣說:舉個簡單,在進學院的實驗室管理員,這個過程中要經過大概三個月的魔鬼訓練,每天跑步大概6公里左右,然後跑完做各種難度的動作,到後面舉汽車的輪胎也是有的,說實話,這個我真舉不起,有些輪胎太大了,實在沒有力氣舉(我本身人又瘦小,所以你懂的當時是有多麼難的),後面我挺過來了,進了實驗室(這裡我很羨慕學電子或者計算機的網友能夠進入本學院的實驗室,順便再插一句,我學歷沒有很多大佬那麼高,我只是一名非常普通的大專生),這個過程我不展開詳細講了,今天的核心內容是如何從零基礎到linux開發崗位。

 

我是大二下學期快要結束的時候開始正式學程式設計(其實大二也有學,但是中途參加過兩次國家行業大賽:汽車新能源服務大賽和智慧交通大賽,其中一次獲得三等獎(這裡非常感謝當時學院和老師的指導以及搭檔老王,這兩次比賽經歷算是我大學裡面最難忘的記憶了)。其實我學程式設計說實話,我的大學班主任算是我的啟蒙老師(這裡真的非常感謝,不然現在我自己也不知道做啥行業,沒有方向感),他給我推薦了一本c語言書籍和野火的開發板來學習,後面我就一發不可收拾了,一直自學堅持到現在,這其中走的彎路太多,比如:在我自己建的一個交流群裡面,經常有網友問,到底學哪個好,其實當初我也是這樣,在入門嵌入式過程中,會發現真的太多東西要學,苦於當時身邊沒有人指導一下方向(我的班主任他是研究生畢業,一出來就來到我們學校當老師了,當時也有找老師談過,但是自己還是沒有找到方向),所以學的過程中非常累,抓不住重點,看到那樣好,就馬上跟風去學,其實自己內心沒有去真正思考過這個技術到底是不是自己喜歡和以後吃飯的傢伙(這是站在我今天已經工作的角度簡單分析的。),因為嵌入式太廣了,甚至很多人連嵌入式到底是啥也不知道(所謂“嵌入式”,名如其文,指在很多晶片中,其所包含的處理器就像嵌入在裡面不為人知一樣,嵌入式領域的應用非常之廣泛,是處理器除了伺服器和PC領域之外的主要應用領域:實時(Real Time)嵌入式領域(也就是我們常說的RTOS)、移動(Mobile)領域(比如要搞複雜的系統:linux、安卓等)、傳統嵌入式領域(一般就是微控制器裸機了)),其實這段話,我是在網路上看到一個前輩總結出的,結合自身體驗,確實是分為這三大領域。

 

回到剛才學嵌入式過程的哪個話題,其實在過程中最大的難處在於:缺乏鋼鐵一般的毅力(如果真喜歡嵌入式這個行業的話,一定要堅持下去,會有意想不到的結果)、良好的學術氛圍(我指的是自學的人沒有好學習的環境和交流,全靠一個人走“夜路”,走到哪裡算哪裡,也不知道到底是對還是錯)、缺乏專案經驗;第三點是很多人最為缺乏的(包括我自己也是這樣,其實有的網友說,學校做的畢設和企業裡面做的專案差別太大了,要考慮到很多方面,這個說的確實是這樣,但是我要說的是,先把學校畢設和一些小專案,認真做好,技術經驗和解決問題的能力就是在一個一個的小專案中成長的,帶領你如何走進嵌入式開發的大門,所以在學校裡面的實戰,一定要認真做好,有機會和對嵌入式感興趣的,可以去實驗室,不是說非要進入實驗室,只是說實驗室的環境稍微可能要好一點;把學校裡面的專案做好,後面有機會可以擴充套件到企業專案,只要你有能力,機會總會來的,就怕你沒有實力和準備,不然就算有機會來的,你也只能乾瞪眼和乾著急,沒啥用啊,因為你不會啊,這就是現實;以後出來上班也是這樣,你憑什麼拿高薪,只有有能力給公司產生利潤,老闆就願意給你高薪,因為你有能力,值得這個價。)這裡可能又扯外了,哈哈,不過現實就是如此,只有自己有能力,資源和一切等,你都有機會得到。

 

這學習嵌入式過程,我自己走的彎路確實走的太多,而且很多東西又沒有學會,比如說一開始學過51微控制器,後面看到別人玩pic、avr微控制器,我也跟著去玩,最後發現自己還是沒有學會pic和avr,就是因為自己學的雜亂無比,其實這裡我建議在學的過程中,最好去網路上找小專案練手,這樣會學的比較好,不要只看視訊教程學,這樣是學不到啥東西的,只是說帶你走了一個過程,熟悉了一下這種型別的開發以及一些協議和外設等等,實際你自己真要動手去做的話,你會發現不知道從哪裡下手,所以說要多練,養成一個良好的程式設計習慣以及當拿到一個小專案的時候,我該怎麼去入手,做好大體規劃,然後再去深入細節(這裡模組化思維很重要,真的);然後後面,發現python和opencv好火,又去跟風學這個,又走了彎路,又沒有學會,這裡你可以發現我,不知道自己真正要學什麼,以後往哪裡走,只是一味的跟風(說的難聽一點,就是在裝逼);後面臨近畢業我真正開始意識到這一點,我得先深入一個方向去學,然後再去擴充套件,於是乎,我最開始是從pcb去深入的,我報了一個培訓班,認真學了三個月,確實出去能夠幹活了,這裡非常感謝凡億的鄭老師很助教的辛苦付出。在我學完pcb就直接去了一個非常小的公司裡面實習,軟體和硬體都要做,那時候我軟體很差勁,就畫板好一點,畫兩層板和四層還行,六層的不行,沒有實戰過,學的時候,跟實戰還是有差別的,而且小公司裡面不做那麼高層的板子,六層板的話,成本還是蠻高的,更別說8層、12層那種板子了。

 

那我是如何接觸到linux的呢?沒錯,我在那家小公司實習了兩個月,我就走了,為啥,因為我認識到了自己到底要啥了,這個時候我無意之間買了朱有鵬老師的嵌入式linux核心課程,對於我這種小白來說,這課程可以改變了我職業發展,這是我真心話,因為我出來上班,直接跳過做微控制器,直接上手linux,其實這裡我也是比較幸運的,自己也比較大膽,在今天特殊情況下,一來深圳就辭職了上家公司(我正式上班的第一家公司是做手機螢幕,不算是驅動,只是簡單除錯顯示和觸控,也不是我喜歡的;當然這裡我是有準備跳槽的。)在上家公司我又待了兩個月左右,這兩個月,我也不知道自己是怎麼走過來的,我拼了命在學朱老師課程,從最基本的linux命令(之前在學校的時候我接觸過,但是太零散了。)、以及基本的c語言基礎、c語言提高、linux應用程式設計,到現在的linux核心和驅動,在那兩個月裡,我每天下班都會去看課程去學(晚上下班7:30.有時候晚一點,早上上班9點,然後週末是單休),每天晚上我都學到凌晨兩點左右,這和我學習pcb的時候,一樣,這種感覺現在回憶起來,讓人噓噓。期間我也開始寫公眾號了(把自己學的知識點,總結出來,並分享出去,讀者也可以發現,我寫的文章並不好,沒有深度,但是這是一個人成長的過程),就是我現在這個公眾號,這期間,我改變了自己的學習方式,養成了喜歡和別人交流技術,也認識了很多前輩和網友,這裡他們的幫助對我影響也非常大(過程中得到了很多指導以及一些網友提的不足之處,讓我糾正了很多誤區。)。

 

其實我去找linux崗位的時候,內心也是非常害怕,怕找不到工作的,因為我linux應用,只是學完了課程內容知識,並沒去找專案練手,只是想快點上手linux;於是乎,我在過年期間就開始頭簡歷,這過程確實難了,和現在有網友找工作的感受一樣;我投了很多簡歷,但是隻收到的回覆不是很多,因為缺乏專案經驗以及學歷的原因,沒有達到要求,但是我明白,這個過程是自己成長的過程,並沒有放棄對linux崗位的追求,終於後面經過在假期的磨鍊,我又投了幾家,終於收到了offer(這其中我自己又去認真的把課程中的一個網路程式設計小專案又熟悉了一邊,以及c語言的基礎,即使是到現在我依然會去買一些書籍,繼續去鞏固基礎):

 

 

後面通過了面試,就順利拿到了linux崗位開發了。這裡我可能我沒有說的很具體,但是這其中的艱辛只有我自己知道,多少次想過放棄從事這個行業,但是又一次次我跌倒了,又重新站起來了,因為我奶奶經常告誡我:年輕的時候要多吃點苦,先苦後甜的道理,我聽過我奶奶講她以前的故事,那時候的苦,我的苦比起她吃的苦,簡直不能比)。

 

好了,今天就分享到這裡了,這就是我的簡單故事,平常和普通,只有靠自己的努力和行動才能得到你想要的。後面我會繼續分享技術文章;如果有網友想進交流群的話,可以加我微信,回覆技術,我會拉您進群,之所以這樣,是為了防止有些人,進了交流群裡面,老是發一些與技術無關的連結和廣告,這樣的話,就失去了交流群的意義了。最後,說一句:感謝各位網友的支