“2020 RT-Thread开发者大会” 思考感悟
從2019年開始參加RT-Thread的一次線下培訓(xùn)活動(dòng)后,就深深的喜歡上這個(gè)國(guó)產(chǎn)的RTOS,之后RT-Thread舉辦的活動(dòng)基本都有參加(但每次活動(dòng)抽獎(jiǎng)都抽不到!)。當(dāng)然,最為盛大的還屬一年一度的RT-Thread開發(fā)者大會(huì),這里吸引了來自五湖四海的開發(fā)者,也匯聚了全國(guó)各地的技術(shù)大牛。在這里,只要你對(duì)技術(shù)有熱情就是自家人。每次參加完RT-Thread開發(fā)者大會(huì)不僅可以接觸到一些新技術(shù)長(zhǎng)見識(shí),更能在和其他開發(fā)者的交流中對(duì)自己學(xué)習(xí)碰到的問題有所啟發(fā)。
對(duì)于新接觸的技術(shù)學(xué)習(xí):很多工程師都有個(gè)習(xí)慣,在接觸一種新技術(shù)時(shí),喜歡從頭到尾自頂而下對(duì)這門技術(shù)了解之后才覺得掌握了,用起來才覺得踏實(shí)放心。這本身并沒有什么問題,搞清楚弄懂一門技術(shù)的實(shí)現(xiàn)原理對(duì)于做技術(shù)的人來說是一件非常有成就感的事情,也是技術(shù)人對(duì)于技術(shù)的極致追求。即不光能用,還希望能參加到這門技術(shù)的開發(fā)、升級(jí)、維護(hù)中去。這是我們長(zhǎng)久的一種學(xué)習(xí)態(tài)度,但是作為初學(xué)者學(xué)習(xí)一門新技術(shù),如此去學(xué)習(xí)會(huì)遇到很多問題!
一門技術(shù)的產(chǎn)生不會(huì)是一蹴而就的,是市場(chǎng)和技術(shù)相互推動(dòng)發(fā)展的結(jié)果,是眾多的技術(shù)前輩付出大量的心血形成的一套知識(shí)體系,因此其涉及到的知識(shí)面會(huì)比較寬、比較龐雜。在學(xué)習(xí)技術(shù)時(shí),我們可以順著技術(shù)發(fā)展的脈絡(luò)大概對(duì)其有個(gè)大致發(fā)展歷程的了解,然后再開始對(duì)其技術(shù)進(jìn)行學(xué)習(xí)。
在學(xué)習(xí)時(shí),不要一上來就從上到下逐層去看。比如剛學(xué)習(xí)RT-Thread準(zhǔn)備用其實(shí)現(xiàn)多線程時(shí),就從設(shè)備驅(qū)動(dòng)框架開始逐層往底層去看,從內(nèi)核看到線程調(diào)度,從C語(yǔ)言看到匯編,非得最終看到對(duì)寄存器的操作才放心(甚至還可以更往底層去看寄存器是如何實(shí)現(xiàn)的,編譯器是如何實(shí)現(xiàn)的,總之,要想真的深究下去是沒有盡頭的,非得一直學(xué)習(xí)到計(jì)算機(jī)產(chǎn)生之前都還不能算作結(jié)束)。這樣學(xué)起來很快我們就會(huì)發(fā)現(xiàn)力不從心,自己知道的太少,很容易打擊學(xué)習(xí)的熱情。我們可以使用項(xiàng)目驅(qū)動(dòng),先將這門技術(shù)用起來,在官方或者眾多開發(fā)者提供的軟件包上修修改改先實(shí)現(xiàn)功能,多折騰幾次。修改幾次就熟悉了起來,這時(shí)候再對(duì)之前已經(jīng)熟悉的內(nèi)容有針對(duì)性的深究,大概了解其實(shí)現(xiàn)原理,太細(xì)節(jié)的東西最好先不要去研究,等以后真的項(xiàng)目需要深度優(yōu)化涉及到這些細(xì)節(jié)時(shí)再去看(理由有二:1、細(xì)節(jié)深究下去是個(gè)無底洞,看不到盡頭 2、細(xì)節(jié)涉及的東西很細(xì)小,看過后不久就會(huì)忘記,下次用時(shí)還是要從新看起)。針對(duì)這點(diǎn)舉個(gè)例子說明:
假使使用STM32芯片進(jìn)行項(xiàng)目開發(fā),芯片ROM空間為64KByte,產(chǎn)品初版開發(fā)后占用ROM總空間為40KByte,隨著后面幾個(gè)版本功能的升級(jí)迭代代碼占用空間逐漸變大,到最終發(fā)現(xiàn)代碼需要的存儲(chǔ)空間為72KByte已經(jīng)大于芯片的ROM總空間64KByte。此時(shí)產(chǎn)品硬件已經(jīng)定型,不可更改,不能通過增加外置FLASH實(shí)現(xiàn)程序的存儲(chǔ),這時(shí)候就需要對(duì)程序占用空間進(jìn)行優(yōu)化。很自然的我們就會(huì)去查如何進(jìn)行代碼空間的優(yōu)化?到最后會(huì)在.map文件查看程序中各文件中定義的函數(shù)、全局變量等占用的RAM和ROM空間大小,通過.map文件中的這些信息進(jìn)行代碼的優(yōu)化。在費(fèi)勁千辛萬苦,實(shí)際操作進(jìn)行代碼空間優(yōu)化后,最終將程序空間成功的優(yōu)化到64KByte以內(nèi)下載到STM32芯片中去。在這其中,因?yàn)轫?xiàng)目需求推動(dòng)我們?nèi)ミM(jìn)行.map文件的研究,一步步操作中我們熟悉了.map文件,也收獲了代碼空間優(yōu)化獲得的成就感,對(duì)于.map文件的理解會(huì)比較深入。相反如果在初版產(chǎn)品程序?yàn)?0KByte的時(shí)候去研究.map文件,因?yàn)闊o代碼空間優(yōu)化的需求可能只是大概的瀏覽一遍,理解不深很快就會(huì)忘記。
同樣是開發(fā)一個(gè)項(xiàng)目,有的人一上來就拿著軟件包在那修修改改,不管懂不懂,先跑起來再說,不懂得地方邊動(dòng)手邊學(xué)習(xí)。而有的人,一拿到這個(gè)項(xiàng)目,發(fā)現(xiàn)網(wǎng)絡(luò)這塊不太懂,買本《圖解TCP/IP》開始看起來,看到一半發(fā)現(xiàn)太乏味了看不下去了,又繼續(xù)去搞項(xiàng)目,發(fā)現(xiàn)藍(lán)牙不太懂只是知道個(gè)概念,又網(wǎng)上搜了個(gè)藍(lán)牙教學(xué)視頻開始看,東一榔頭西一棒槌,這搞一下那搞一下,覺得自己這也不懂那也不懂,自信心受打擊開始懷疑自己的能力,懷疑人生。實(shí)際上,我們應(yīng)該向那位動(dòng)手先搞起來的人學(xué)習(xí),不是鼓勵(lì)大家去不加思考就直接動(dòng)手,謀而后動(dòng)永遠(yuǎn)都是沒錯(cuò)的。但是如果謀的太多,以至于總覺得自己謀的不夠全面,要等到自己謀的完美后再開始行動(dòng),這種行為就是自縛手腳寸步難行。在做項(xiàng)目時(shí),我們可以大致先捋一捋項(xiàng)目中需要的技術(shù)手段,對(duì)比自己的技術(shù)棧,涉及到新的技術(shù)先參照別人的設(shè)計(jì)實(shí)現(xiàn)自己所需的功能(如果技術(shù)太前沿沒有參考那還是需要自己去從頭摸索,有參考的就參考使用別人的設(shè)計(jì),通過修改實(shí)現(xiàn)自己的功能后再去優(yōu)化它或是重寫它,不要總是重復(fù)造輪子)。
花費(fèi)大量的時(shí)間研究某種技術(shù)的細(xì)節(jié)會(huì)使自己成為這個(gè)技術(shù)領(lǐng)域的專家,但人的精力總是有限的,在初學(xué)時(shí)若將過多的精力投身于細(xì)節(jié)的研究會(huì)導(dǎo)致忽略掉整個(gè)技術(shù)的全貌,容易將自己局限在某個(gè)特定的領(lǐng)域內(nèi)。對(duì)于新技術(shù),一個(gè)比較合理的學(xué)習(xí)順序?yàn)?#xff1a;先從初次接觸使用它,到使用了很多次后熟悉它,再到研究它優(yōu)化它。通過多接觸、多學(xué)習(xí)新的技術(shù)找到自己喜歡的領(lǐng)域,在該領(lǐng)域內(nèi)追求技術(shù)的深度、深入研究,同時(shí)在廣泛學(xué)習(xí)其它領(lǐng)域的技術(shù),追求技術(shù)的廣度,成為T字型人才。
T字型人才是指按知識(shí)結(jié)構(gòu)區(qū)分出來的一種新型人才類型,就是“一專多能”,可以用字母“T”來表示他們的能力結(jié)構(gòu)特點(diǎn)。
“—”表示有廣博的知識(shí)面,“|”表示知識(shí)的深度。T字這一橫,并非只限于知識(shí)面、知識(shí)結(jié)構(gòu),也是一種“橫向的跨界思考、整合資源的能力”。它不只是你所擁有的知識(shí)技能和知識(shí)儲(chǔ)備的多個(gè)方面,也是一種跨界整合的能力和習(xí)慣。兩者的結(jié)合,既有較深的專業(yè)知識(shí),又有廣博的知識(shí)面。
?
?
總結(jié)
以上是生活随笔為你收集整理的“2020 RT-Thread开发者大会” 思考感悟的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 西南科技大学oj题66
- 下一篇: [pytorch、学习] - 5.5 卷