|
我是老溫,一名熱愛學習的嵌入式工程師
. g! `7 q2 b8 B; W; |# v* S- M關注我,一起變得更加優(yōu)秀!四年前寫的文章,重新分享一下。
' E- K# E& x4 m% x4 ?. J在分享我的學習過程之前,先交代一下我的工作經(jīng)歷和學習背景。+ m0 ]# K& x$ ~& \$ t
我是從2020年11月初開始學習RT-Thread實時操作系統(tǒng)的,在學習RT-Thread之前,我接觸過uCOS和FreeRTOS,+ r2 g& v/ I# J& ~0 b* n' L" r
但這兩個在單片機上應用的實時操作系統(tǒng),我都沒有仔細并系統(tǒng)化地進行學習,都只是局限于開發(fā)板上運行一下demo例程。
/ L: q& l* q/ Q/ L以前我在嵌入式開發(fā)板公司工作的時候,曾經(jīng)系統(tǒng)化地學習過Linux驅(qū)動程序,當時是買韋東山老師的2440驅(qū)動教程,0 W' C2 [0 Y: z" W
不過很遺憾,一直沒有從事過Linux驅(qū)動開發(fā)相關的崗位,學過就丟到一邊了,但正是因為這段經(jīng)歷,讓我明白了建立抽象思維的重要性。
; m3 e* Q3 j1 y# N我曾經(jīng)使用嵌入式Linux操作系統(tǒng),開發(fā)過兩個應用項目,以前為了協(xié)助生產(chǎn),也用操作系統(tǒng)做過一些桌面工具,9 U1 D, {4 k4 C) ?
所以,對于使用操作系統(tǒng)開發(fā),里面涉及到的一些概念,比如多線程,內(nèi)存管理,線程間同步與通信,等等,理解起來也相對容易。
' i7 D9 T% b; _+ b) l以上就是我學習RT-Thread之前的工作經(jīng)歷和學習背景。
" X3 g% r6 L( c9 A# U" ^. R經(jīng)過差不多兩個月業(yè)余時間的學習,我已經(jīng)把RT-Thread內(nèi)核應用相關的知識系統(tǒng)化地學習了一遍,并且同時寫了一些學習總結(jié)文檔,如下圖所示,
7 v" i7 f; p1 J2 Q+ h$ X9 D, z并且在公眾號做成了 專輯 | RT-Thread學習筆記 ,公眾號回復【技術文檔】即可下載PDF。
* a* j [* l* Y3 t( m
nz3u4paufjm6406491319.png (9.12 KB, 下載次數(shù): 0)
下載附件
保存到相冊
nz3u4paufjm6406491319.png
2024-9-8 11:12 上傳
1 e1 L( v b2 [, \, x* c先用思維導圖總結(jié)概括一下,學習方法不一定適用于每個人,但希望可以給你一些參考。
% w$ l% N7 e+ W9 z7 D$ \
usurofw02dl6406491419.png (37.13 KB, 下載次數(shù): 0)
下載附件
保存到相冊
usurofw02dl6406491419.png
2024-9-8 11:12 上傳
0 Z! [; T2 B+ K( B Z( \
明確利益目標. |$ Z" _- w. b+ n% K
參加工作后的學習或自我提升,其目的已經(jīng)不像在大學校園里面那樣單純,大學里面基本都是學院安排好的學習計劃,而作為學生,只需要按計劃執(zhí)行就可以了。
7 Y0 d' J( O S6 j5 v可以說,很多大學生受限于社會經(jīng)歷,也不知道為啥要學習這門課程,他們只是知道這是學院要求的。
2 d& m5 |* |1 B0 t/ s" F參加工作后,個人的學習和提升,都是有目的的,人性都是趨利的。
$ k+ X! m$ _4 a你基本不可能做到不帶任何目的而投入大量的時間去學習一門技能,就算是因為興趣愛好而學,那也是為了自己的內(nèi)心滿足感,
% y" J* i2 f( ]) O“尋找內(nèi)心滿足感”也是一種目的。/ H" W. n- V" G! d2 |: `
而對于大多數(shù)職場打工者的自我學習提升,無非只有兩個目的:名和利。
+ d; u+ Z4 A r+ U/ t6 E所以,在學習RT-Thread操作系統(tǒng)之前(其實也不局限于RT-Thread,包括很多職場技能也是如此),要先搞清楚自己為什么要學這門技能,要有明確的利益目標。# ~- ~- p7 c0 p& v
如果想不明白這個問題,只是道聽途說地覺得RT-Thread或某項技能很火,也想跟風學習一下,那還是不要貿(mào)然浪費時間,因為漫無目的的學習,會很難堅持下去。$ g+ r9 d- {# c% E6 p x# f8 }
那么,我學習RT-Thread的利益目標是什么?$ `1 [/ ~3 r* M9 J
其實很簡單,是為了公眾號有素材可寫,同時建立自己的技術背景和人設,然后積極擁抱開源社區(qū),認識不同行業(yè)的技術大佬。. Q! }( V+ }1 J
通過這種學習總結(jié)+持續(xù)輸出的閉環(huán),可以讓自己技術得到提升的同時,也讓自己鏈接更多優(yōu)秀的人才,如果自己能幫助更多的人,那就更加perfect了。
' V/ O: ?6 d0 q# x& t1 x( G1 i* ^
5hpwsirzsxv6406491519.png (211.79 KB, 下載次數(shù): 0)
下載附件
保存到相冊
5hpwsirzsxv6406491519.png
2024-9-8 11:12 上傳
9 G" M! {* e# P* @; q0 `這種持續(xù)的學習總結(jié)輸出,也為我以后求職增加了籌碼,呈現(xiàn)給對方公司的,不再是一紙枯燥的簡歷,可以是我的技術博客,公眾號,GitHub,開源作品,等等,這也是我的利益目標之一。8 q, _$ j9 _# w9 r- o
如果你還不知道如何搞清楚自己學習的利益目標,那就要先花時間好好想清楚了,而對于大多數(shù)職場打工人來說,學習技能最直接的目標,就是為了跳槽好找工作。 p& i Y8 G2 g3 `6 r
可以把跳槽當作利益目標之一,但是別忘了,最好還是要通過展示手段,把你所學到的技能呈現(xiàn)到對方公司面前,而不是把技能都寫在一紙簡歷上面。
~3 ]' R. Z8 d! t' M7 H* b$ V- n弄清基本概念# i0 E. U) H/ {5 _
文章里面的每一段話,是由字詞句三者組成的,就像我們初中高中學習閱讀理解的時候,分析一段話的含義,都是從字或詞開始進行分析(文言文翻譯簡直是一段痛苦的經(jīng)歷)。" n+ |6 f' P: s0 j, b
所以,要學習RT-Thread操作系統(tǒng),就需要先弄清楚操作系統(tǒng)的基本概念。( F6 c9 \( p2 _$ D. g
這些基本概念,在操作系統(tǒng)里面基本上都是相通的,不管是實時操作系統(tǒng)還是多任務分時操作系統(tǒng)。
; p; ^5 C9 X2 P6 f- q8 w) `(在你看這段話的時候,腦海是不是也會有疑問,什么是多任務分時操作系統(tǒng)?)
, x' @- I: i, D X3 v% V為什么會看不懂一段話,無非就是組成這段話的詞語概念不理解,不妨看看下面一段話,里面紅框部分都涉及了各種概念,而這些概念如果你不懂的話,是看不懂這段話的。/ f" E2 p( G4 D5 Y$ u4 N
ge5aat515nq6406491619.png (97.5 KB, 下載次數(shù): 0)
下載附件
保存到相冊
ge5aat515nq6406491619.png
2024-9-8 11:12 上傳
9 c( M8 b0 m' v短短幾句話里面,就包含了很多操作系統(tǒng)的概念,什么是線程調(diào)度器?什么是搶占式?什么是最高優(yōu)先級?什么是中斷服務程序?等等。。。
' W( f% u, J7 @+ o$ {而我能很容易看懂這幾句話,是因為我有了以前的學習經(jīng)歷作為鋪墊。& G4 U0 p/ |8 m$ f& @) n9 {/ x
那么,在我們平時的學習中,如何搞懂這些基本概念呢?教大家一個比較實用的方法,就是在網(wǎng)上搜索的時候,在前面加上“如何通俗地理解xxx”,比如,“如何通俗地理解多線程”,網(wǎng)上就會有不少結(jié)合生活事例的參考答案。 }# @2 t% h3 }1 N& O
0ea3do1yzs36406491719.png (101.85 KB, 下載次數(shù): 0)
下載附件
保存到相冊
0ea3do1yzs36406491719.png
2024-9-8 11:12 上傳
& `- h# U/ A- s9 p1 n: S- O
現(xiàn)在終于知道為啥語文數(shù)學外語這些科目可以貫穿整個學業(yè)生涯了,學習語文可以鍛煉我們的閱讀理解能力,而數(shù)學可以讓我們建立邏輯推導能力,學習外語,是為了在經(jīng)濟全球化的背景下,讓自己更好地和世界交流。
. o& N: H! t! N8 `4 `" C建立抽象思維
; G: {3 i6 A& k1 H1 Y$ G. [2 J為什么要建立抽象思維?人為什么能通過閱讀文字或觀看圖片和視頻來獲取知識? |6 c& J+ ^* [& f
原因就是,一個人在接收外界信息的時候,會在自己的大腦里面建立一個具體的事物影像,這個具體的事物影像在構(gòu)建的時候,會依賴于你自身的社會經(jīng)歷以及知識豐富程度。
6 _, k, ^/ U) U6 H* g( Q, K$ u( u回到如何學習RT-Thread這個話題上面,我在學習RT-Thread的時候,首先參考的是其官網(wǎng)提供的學習資料,而這一大堆學習資料里面,我首先關注的,肯定是RT-Thread這個操作系統(tǒng)的簡介和框架。
" W/ C( z/ w& v
3exlzkua3qb6406491819.png (140.24 KB, 下載次數(shù): 0)
下載附件
保存到相冊
3exlzkua3qb6406491819.png
2024-9-8 11:12 上傳
! r7 r) G3 g* p% I" |% P L9 j7 v
千萬不要一開始就去看系統(tǒng)源碼,也不要馬上去運行demo例程,在你的大腦建立RT-Thread這個影像框架之前,看這些源碼,無疑是想自己勸退自己。
& t0 E" V; k ?5 z為什么要先看簡介和框架?& k4 h' M* q! a+ }9 y9 k
因為這個框架可以有助于我建立一個關于RT-Thread的大腦影像,往后不管我學習RT-Thread的哪一塊內(nèi)容,都是基于這個框架的,框架是用來告訴我們,里面的代碼以及模塊是如何進行組織的,所以,框架很重要!
- O6 N' W: o% ?- M細心的人就會發(fā)現(xiàn),即使是這個框架介紹,里面也涉及了很多基本概念,這樣又回到了“弄清基本概念”這個環(huán)節(jié)。所以,這是一個螺旋式的過程,不斷弄清概念,建立大腦影像,如此往復循環(huán)。& l+ J, V+ r: R# P- Y2 m8 O
當你要去看操作系統(tǒng)代碼的時候,面向?qū)ο蟮乃季S,肯定是必不可少的,這又回到了“什么是面向?qū)ο?”這個問題上了。5 ?* k, G$ e: D* q- V8 U, ?) f
我相信,通過網(wǎng)絡搜索,你一定會基本明白什么是面向?qū)ο,接下來就是C語言如何實現(xiàn)面向?qū)ο罅,具體可以查看以下文章。6 I, N) n& T# o5 r# ]0 v7 [+ E* D
嵌入式 C 語言面向?qū)ο缶幊?--- 總結(jié), P" z: m6 N( h. i) r
基于狀態(tài)機和面向?qū)ο蟮乃枷耄O計一個通用的按鍵檢測模塊。 v5 A8 V- _1 d- ?! C
如何建立抽象思維?這個問題實在太難回答了。
: o' v( l9 j! t) Z0 ]0 R$ A抽象思維的建立,不是一朝一夕的事情,它需要周而復始地保持一種對世界好奇的學習心態(tài),而且很大程度取決于你的人生經(jīng)歷和知識體量,
4 K# a; g/ g7 l. e" r3 d我能給出的建議就是,多閱讀經(jīng)典書籍,多觀察這個世界,多總結(jié)和思考,多于不同行業(yè)的朋友交流。
8 B0 T# u: {( L. U持續(xù)總結(jié)輸出
9 ]; J H# x* j" @& c& H為什么我現(xiàn)在那么喜歡寫文章?為什么我一直建議各位持續(xù)總結(jié)輸出?
3 {) H& Q' V* L; T9 Z& q) J這是因為,一個人的認知象限里面,有以下四種狀態(tài):不知道自己不知道、知道自己不知道、不知道自己知道、知道自己知道。. u% n3 h: v. h& P) m$ ^! \' i/ |
關于這四種認知狀態(tài)的說明,在網(wǎng)絡上面有很多解釋,這里不做重復描述。; M9 t P! G8 H2 g" q
持續(xù)地通過技術文章進行輸出,可以讓一個人理清自己的學習過程與學習狀態(tài),這種方式可以讓一個人搞清楚學習過程里面,哪些是自己知道的,哪些是自己不知道的。, K1 }+ j( ^4 F" |* g
我相信,很多人在最初學習一個新知識點的時候,通常都是處于“不知道自己不知道”的狀態(tài),也就是不知道自己哪些地方不懂,自然就不會向別人提問。: B& _" {; H/ A# [- `
“好記性不如爛筆頭”這個道理,我相信很多人都懂。我在2015年學習Linux驅(qū)動的時候,就開始用記事本零散地記錄自己的學習過程,那時候,還沒學會系統(tǒng)化地進行技術文章組織和輸出。8 V* y2 O* ^: k* C0 h O7 C2 m. V2 v
5pr0j4pfnsm6406491919.png (55.89 KB, 下載次數(shù): 0)
下載附件
保存到相冊
5pr0j4pfnsm6406491919.png
2024-9-8 11:12 上傳
7 ?* S% k+ I! C4 d" @& S: n直到最近這兩年決定寫公眾號和博客,才明白系統(tǒng)化知識的重要性,所以公眾號和博客的寫作風格,都是通過技術專輯的方式來呈現(xiàn),
$ V6 _7 C3 r) R一方面是為了讓自己學習不會太片面,同時讓網(wǎng)絡上的知識碎片能盡可能集中一點,方便以后自己查閱,如果能給你帶來一些幫助,那是對我莫大的鼓勵。
: k; M- Z" X( d. q3 {3 c, {2 C- ]這種持續(xù)的總結(jié)輸出,會給我?guī)硪恍┱答佔饔,讓我認識了很多優(yōu)秀的同行,同時也希望我的學習總結(jié),能給其他嵌入式的初學者帶來一些參考,6 l3 j' J; Z8 g b* T- E5 V6 O
以上就是我的學習方法論,關于我的從業(yè)經(jīng)歷和職場感悟,也可以在公眾號獲取我的個人微信,跟我一起互相交流,共同進步。
9 G( \. P# g( b; W感謝閱讀!& g/ e- ]5 r6 b+ f' e
-END-
& n7 s" z% [, G% K+ {9 W' {1 K8 I往期推薦:點擊圖片即可跳轉(zhuǎn)閱讀
8 M8 H/ I. D0 b- {% n$ s
9 k3 ^7 z; {2 o0 u
# o9 s8 K: d- g8 G! m5 b . q0 w9 b3 L& \0 I+ W" q$ H
+ `: L6 R4 J# f; v
vsmrxg5ianu6406492019.jpg (314.54 KB, 下載次數(shù): 0)
下載附件
保存到相冊
vsmrxg5ianu6406492019.jpg
2024-9-8 11:12 上傳
3 K7 U2 J5 `" ?" A4 G + y# o0 ]! |6 P4 j' S1 j
【5折福利】選型必看!這款RK3588開發(fā)板究竟有何魅力?
; E$ J; S3 A9 ^. {" y# H; @" D. Z ( i9 C6 T0 G' ^1 l
6 T- k- |- p6 J; [ [+ Z j# G. y( L
3 V" ]. |. P( X/ @/ [) s4 B
6 W: [, I6 J: e4 O# \* `
ahxyvnb132s6406492119.jpg (67.09 KB, 下載次數(shù): 0)
下載附件
保存到相冊
ahxyvnb132s6406492119.jpg
2024-9-8 11:12 上傳
$ Y" v# B7 r5 ?% z y$ B# i
* ~0 C0 V9 ~- h5 s, P7 p& j3 ]) E! |
這兩種 C 語言語法,建議別用,不然會被罵慘!( W1 F# G+ ?9 f& X
) }6 a0 w' m% S: ]/ m7 L5 F: A5 m % j% O& ?, |5 [ L& ]9 A
, R) }6 a2 c# T- O+ l1 S
op4wnqju3ao6406492220.jpg (129.37 KB, 下載次數(shù): 0)
下載附件
保存到相冊
op4wnqju3ao6406492220.jpg
2024-9-8 11:12 上傳
# R* n$ S# `5 \+ ?* g( r# ^
6 Y# n( M# C) T7 A 嵌入式 C 語言,那些“花里胡哨”的語法特性。: W7 W) ^) c# }6 E
; f9 \: B/ J0 F. g4 N: Z / g5 b% C8 ?0 N# `5 j( N6 q
6 W# u! W7 ?0 ^* `) p# Y. R/ R
我是老溫,一名熱愛學習的嵌入式工程師6 O( u ^1 V. B' q
關注我,一起變得更加優(yōu)秀! |
|