天天看點

保姆級幹貨分享!

原本這篇文章我打算寫這段時間學習總結好的mysql和資料結構之樹的技術總結文章:

保姆級幹貨分享!

但是就在剛才給一位網友發qt源碼包時,突然又聊到了這個嵌入式學習路線的問題,是以這篇文章我會分享一些免費的資源學習以及學習路線:

ps網友一:

保姆級幹貨分享!

ps網友二:

保姆級幹貨分享!

ps網友三:

保姆級幹貨分享!

其實在很早之前,準确的說應該是今年的五月份左右,當時我也分享過我自己的學習經曆(ps:當時可能講的不太詳細:簡單的總結和分享);其實結合之前很多網友問我offer方向選擇以及我自己畢業一年來,大大小小的求職過程和觀察的經曆來看:

(1)如果在學校或者說你已經出來上班不久,就能夠非常明确自己要走哪個方向那肯定是很好,你隻要努力朝自己定的目标慢慢靠近進行(當然這其中會遇到許多挫折和挑戰也是在所難免的,不可能一帆風順!)

(2)當然也有那種經曆過彎路之後的,才明确要走哪個方向的(我覺得大部分人可能都是這樣過來的,包括我自己也是這樣過來的)

(3)當然有些人也有聽從前輩的建議走哪個方向的,這都沒錯,畢竟是前人的經驗,至少說可以讓少采坑。

不過我這裡我認為對方向的選擇,應該建立在對行業的了解基礎上(比如待遇問題,這個肯定是我們最為關注的話題,以及今後是否有發展性!),再去做一個合理的選擇(結合自身情況,考慮到時間成本,試錯成本,自己是否能夠承受住這種錯誤等等),不過往往大部分人在還沒出來上班之前,對行業的認識可能比較淺,一般可能是出來上班之後,才會對行業有一個更深的認識!其實總的來說,方向的選擇,會受到很多因素影響;就拿剛才來說,上班上了一兩年左右的時間,差不多對行業摸得非常清楚,這個時候可能你對職業方向規範會比較清楚;前期剛出來對于方向的選擇還真不好說。下面是嵌入式的路線(應該大部分人是這樣走的,這裡不包含硬體來說):

(a)51單片機+stm32+rtos+linux(分應用和驅動)

(b)直接到linux(先做linux應用,後期再做linux驅動,或者兩者都結合做)

還有一個非常有意思的話題,很多技術群裡面會聊到網際網路和嵌入式工資的對比,然後一大波對嵌入式的吐槽就開始了;其實說老實話,作為打勞工,這兩個行業薪資對比上後期确實有差距,但是我想說的是嵌入式待遇也不差,為什麼我會這樣說(這裡看到文章的大佬不要噴我,我隻是站在我的經曆來看待這個問題!):

我讀大專的時候,學的專業是汽車電子技術,就拿我這個學曆來說,出來去4s店做技術人員, 你知道實習和轉正多少錢嗎?在我大專還沒有畢業的時候,我和實驗室的小夥伴已經體驗過一次創業的曆程,這期間我也會去市場了解情況,比如去連鎖店裡面洗洗車(精洗的那種)以及做保養:

保姆級幹貨分享!

然後空閑的時候,我就向這些學長問一下待遇咋樣;我清楚的記得當時一個學長和我實習期一個月1000塊(當時我是在贛州那邊,因為我大專是在贛州讀的),而且還不吃住的那種哦,轉正也才1500;你看到這裡,你會脫口而出:卧槽!才這麼點錢,這怎麼活啊,但是事實就是這樣,贛州消費水準也不低,平時吃個飯也怎麼要十來塊;還有後來我在學校準備專升本(hh,說到這個我自己也不咋後悔沒有考上,有得就失,魚和熊掌不可兼得!),聽我的同學以及同學院的朋友出去去其他城市分享的待遇情況,比我剛才好不了多少,工資大概也就三千最多,如果是做汽車銷售,按提成來拿的話,工資可能就會更高一點。你說這麼點工資在現在這個社會怎麼活,更别說有存錢的說法了,連養活自己都很難。是以在我畢業一年了,我平時也會和一些以前同學和朋友聊到他們現在在幹啥:

保姆級幹貨分享!
保姆級幹貨分享!

還有我的大部分同學,有些去做銷售買保險的和賣房的都有,也去自己開店做老闆的也有;總之據我的了解做汽車的大部分都轉行業了,汽車行業太難熬了(這裡不是在吐槽這個行業,實際待遇情況就是這樣);和我待在實驗室的兄弟們,估計就剩下兩個左右還在做汽車行業,其他都早轉了!大部分像我這種學曆(這裡包括大學的要養活自己也很難),如果最終要在汽車行業裡面待下去的話,想要賺錢的話,隻有自己出來單幹,開連鎖店;不然靠工資的話,生活可能确實很難!

回憶到這裡,再拿嵌入式行業來對比的話(對我自己來對比),我說嵌入式真香(看到這句話也不要噴我,我是站在我的角度來看問題),你可能一開始就是搞軟體或者電子的專業的,自然會想到網際網路對比;網際網路我沒有經曆過,但是就目前來說,很多從機械轉到嵌入式行業來看的話,待遇提高了不少,至少生活了不那麼累,收入還比較可觀(尤其是對我這種學曆不好的人來說!)。這裡你又想說,幹嘛不直接轉到網際網路去呢(報個教育訓練班去,上車快),話确實如此,但是我想說的是,有多少人在他第一次拿的一個開發闆,成功實作了自己的第一個程式功能,那是多麼的開心,一種發至内心高興,然後從此之後就迷上了這個行業。嗯,多的話,就不再多說了,上面的分析,可能是站在我的角度來思考和分享,如果你真正喜歡或者有能力去做一個方向的話,就大膽去做,不用去糾結于别人的觀點,别人的觀點和思想始終是别人的,你隻是聽聽,覺的是這樣,我們隻能去參考和學習,但是我們自己要真正發自内心去思考是否适合自己,做最真實的自己,不要活在虛假和遐想的虛拟世界裡面!

一、路線資源分享:

說了這麼多,下面我分享一些學習路線資源,不過僅供參考哈:

保姆級幹貨分享!

ps:這裡我分享的資源都是免費可以找到的,屬于白嫖的那種!

1、c語言:

在學習c語言的過程中,除了一些基本的文法知識點外,在我們嵌入式實際開發當中,有些知識點會經常被用到(以及面試的時候,面試官非常喜歡問這些方向):

a、指針(函數指針,指針函數,數組指針,指針數組,結構體數組指針,結構體指針數組,結構體函數指針,結構體指針函數),這裡舉的一些概念,最好自己去搞清楚本質,然後實踐一下

b、字元串處理函數,應該說這個在面試裡面,最喜歡考如何實作這些字元串處理函數:

strcpy(p, p1) 複制字元串

strncpy(p, p1, n) 複制指定長度字元串

strcat(p, p1) 附加字元串

strncat(p, p1, n) 附加指定長度字元串

strlen(p) 取字元串長度

strcmp(p, p1) 比較字元串

strcasecmp忽略大小寫比較字元串

strncmp(p, p1, n) 比較指定長度字元串

strchr(p, c) 在字元串中查找指定字元

strrchr(p, c) 在字元串中反向查找

strstr(p, p1) 查找字元串

strpbrk(p, p1) 以目标字元串的所有字元作為集合,在目前字元串查找該集合的任一進制素

strspn(p, p1) 以目标字元串的所有字元作為集合,在目前字元串查找不屬于該集合的任一進制素的偏移

strcspn(p, p1) 以目标字元串的所有字元作為集合,在目前字元串查找屬于該集合的任一進制素的偏移 
           

複制

c、結構體 、 聯合體

ps:以上隻是簡單的列舉了一些知識點,後期的面試題目,我會以視訊的方式分享給大家,這樣可能會比較直覺一點。

d、學習資源推薦,如果你是自學的話,而且免費的話,可以到b站找這個郝斌老師的c語言視訊學習,這個視訊講解的還是非常通俗易懂的:

保姆級幹貨分享!

如果你學完了基礎,也可以看看c語言三劍客,提高自己:

保姆級幹貨分享!
保姆級幹貨分享!
保姆級幹貨分享!

2、c++:

c++的知識點比較多而且非常細,這裡我就列舉了,我直接推薦學習視訊:

保姆級幹貨分享!

因為在嵌入式行業裡面,用到c++擴充庫的話,會比較少,不過你可以學習一下STL标準庫,boost庫可以有時間去學習一下(一般這種做c++伺服器或者背景比較用的比較多一點),書籍推薦:

保姆級幹貨分享!

當然現在市場上,對于ui在linux方面qt用的比較多,你也可以去b站上找教程:

保姆級幹貨分享!
保姆級幹貨分享!

當然平時可以去官網或者部落格上找一些大神的文章來學習參考,會少走很多彎路。

3、資料結構和算法:

保姆級幹貨分享!

比較推薦這個老師講解的資料結構,算法的話,我推薦一個大佬的課程(不過是收費的,看個人意願了):

保姆級幹貨分享!
ps網站:https://www.acwing.com/activity/
           

複制

不過我建議在學習的過程當中,可以去leetcode官網去按照專題刷資料結構和算法,這樣一邊學一邊用,可能效果比較好一點;如果你一點資料結構和算法的基礎理論都沒有的話,直接去刷的話,效果不怎麼好,而且刷題也要多總結和歸納,不要死磕,适當看一下題解(先思考一下自己是否有思路解,如果沒有的話,再去看):

保姆級幹貨分享!

這裡說一點,做嵌入式,也非常有必要去學習資料結構和算法的,不管是為了面試還是今後的程式生涯,都會有很大的幫助,是以非常值得去學習,不要去糾結要不要去學習:

保姆級幹貨分享!

4、作業系統:

說到作業系統理論,在面試的時候,面試官問的深的話,會你為啥這樣,這樣是怎樣實作和處理的,是以作業系統課程非常有必要學習學習:

保姆級幹貨分享!
保姆級幹貨分享!

書籍推薦:

保姆級幹貨分享!

如果對risc-v架構感興趣的可以去官網下載下傳文檔學習:

保姆級幹貨分享!

書籍推薦:

保姆級幹貨分享!

5、linux學習:

這個可能是我們的重頭戲;其實做linux應用的話,我個人看到過和了解的情況,大概可能分三個方向(可能不全,不包含linux背景和音視訊編解碼那種偏網際網路):

a、linux應用做ui方向:qt、minigui

b、做ipc通信的

c、做網絡程式設計的(一般側重點在網絡産品上面,或者說自己能不能實作一個協定棧)

ps注:其他方向可以到boss直聘或者其他招聘網站詳細了解一下

保姆級幹貨分享!

在b站上有很多免費的linux應用學習視訊

linux驅動的話,我個人不是很了解(我了解一點點:uboot一種,linux核心移植以及核心剪切優化,linux驅動外設開發);詳細也可以去招聘網站上了解。

這裡我提一個建議,如果你有想要了解的崗位,可以第一時間去招聘網站上了解一下,可以多看幾個公司的崗位招聘要求,大緻我想你也對這方面的崗位方向就比較清楚了!

其實關于學習linux這塊的話,我的建議還是系統的去學習不管是linux應用還是驅動,這樣學起來有章節,不至于感覺太亂,市場上韋老師、朱老師的linux課程都是非常不錯的選擇!

書籍推薦(有網絡程式設計書籍和驅動都有的,具體我不推薦哪本,網絡的這些最好都看一下):

保姆級幹貨分享!

對了,在linux裡面makefile(可以看陳浩老師的:跟我一起寫makefile)和cmake以及shell腳本,在做應用方面和驅動都用的比較多,平時也要掌握

6、代碼管理工具其他資源彙總:

(1)、一般在嵌入式裡面,svn和git都會用到,這裡可以參考菜鳥教程的教程走一篇就可以:

保姆級幹貨分享!

git教程的話,可以看廖雪峰老師的教程:

保姆級幹貨分享!

當然也可以在模拟環境下練習指令:

保姆級幹貨分享!
保姆級幹貨分享!

ps網站:https://oschina.gitee.io/learn-git-branching/

(2)、線上筆記記錄我喜歡用石墨文檔或者語雀:

保姆級幹貨分享!
保姆級幹貨分享!

(3)如果對音視訊編解碼感興趣的話,可以學習一個前輩的文章:

保姆級幹貨分享!

文章連結:https://blog.csdn.net/leixiaohua1020

(4)自己編寫的文檔直接轉換成pdf文檔,我習慣使用Typora

保姆級幹貨分享!

二、寫在最後:

文章中有些觀點僅供參考(學完了基本理論知識,多實踐,不要一直停留在你一直都在學的轉态)!這裡還分享一個面試亮點,平時養成寫部落格或者把自己寫的項目放到github上,當你去面試的時候,可以把這些寫到你的履歷上去,這個是非常受面試官喜愛的,也許你技術不咋樣,但是人家就是看重你愛學習的習慣和能力!

我最後想說的是,在我們這個年紀,不要太安逸,多投資自己的大腦學習;有目标就會有動力,話說2020年就還剩下一個月,回想一下2019年定的目标,是否有去努力實作!在年輕的時候,莫要給自己留遺憾,我們唯一能夠改變的是自己,那就是靠自己去努力奮鬥,實作自己的目标!