“2020 RT-Thread开发者大会” 思考感悟

从2019年开始参加RT-Thread的一次线下培训活动后,就深深的喜欢上这个国产的RTOS,之后RT-Thread举办的活动基本都有参加(但每次活动抽奖都抽不到!)。当然,最为盛大的还属一年一度的RT-Thread开发者大会,这里吸引了来自五湖四海的开发者,也汇聚了全国各地的技术大牛。在这里,只要你对技术有热情就是自家人。每次参加完RT-Thread开发者大会不仅可以接触到一些新技术长见识,更能在和其他开发者的交流中对自己学习碰到的问题有所启发。

对于新接触的技术学习:很多工程师都有个习惯,在接触一种新技术时,喜欢从头到尾自顶而下对这门技术了解之后才觉得掌握了,用起来才觉得踏实放心。这本身并没有什么问题,搞清楚弄懂一门技术的实现原理对于做技术的人来说是一件非常有成就感的事情,也是技术人对于技术的极致追求。即不光能用,还希望能参加到这门技术的开发、升级、维护中去。这是我们长久的一种学习态度,但是作为初学者学习一门新技术,如此去学习会遇到很多问题!

一门技术的产生不会是一蹴而就的,是市场和技术相互推动发展的结果,是众多的技术前辈付出大量的心血形成的一套知识体系,因此其涉及到的知识面会比较宽、比较庞杂。在学习技术时,我们可以顺着技术发展的脉络大概对其有个大致发展历程的了解,然后再开始对其技术进行学习。

在学习时,不要一上来就从上到下逐层去看。比如刚学习RT-Thread准备用其实现多线程时,就从设备驱动框架开始逐层往底层去看,从内核看到线程调度,从C语言看到汇编,非得最终看到对寄存器的操作才放心(甚至还可以更往底层去看寄存器是如何实现的,编译器是如何实现的,总之,要想真的深究下去是没有尽头的,非得一直学习到计算机产生之前都还不能算作结束)。这样学起来很快我们就会发现力不从心,自己知道的太少,很容易打击学习的热情。我们可以使用项目驱动,先将这门技术用起来,在官方或者众多开发者提供的软件包上修修改改先实现功能,多折腾几次。修改几次就熟悉了起来,这时候再对之前已经熟悉的内容有针对性的深究,大概了解其实现原理,太细节的东西最好先不要去研究,等以后真的项目需要深度优化涉及到这些细节时再去看(理由有二:1、细节深究下去是个无底洞,看不到尽头 2、细节涉及的东西很细小,看过后不久就会忘记,下次用时还是要从新看起)。针对这点举个例子说明:

假使使用STM32芯片进行项目开发,芯片ROM空间为64KByte,产品初版开发后占用ROM总空间为40KByte,随着后面几个版本功能的升级迭代代码占用空间逐渐变大,到最终发现代码需要的存储空间为72KByte已经大于芯片的ROM总空间64KByte。此时产品硬件已经定型,不可更改,不能通过增加外置FLASH实现程序的存储,这时候就需要对程序占用空间进行优化。很自然的我们就会去查如何进行代码空间的优化?到最后会在.map文件查看程序中各文件中定义的函数、全局变量等占用的RAM和ROM空间大小,通过.map文件中的这些信息进行代码的优化。在费劲千辛万苦,实际操作进行代码空间优化后,最终将程序空间成功的优化到64KByte以内下载到STM32芯片中去。在这其中,因为项目需求推动我们去进行.map文件的研究,一步步操作中我们熟悉了.map文件,也收获了代码空间优化获得的成就感,对于.map文件的理解会比较深入。相反如果在初版产品程序为40KByte的时候去研究.map文件,因为无代码空间优化的需求可能只是大概的浏览一遍,理解不深很快就会忘记。

同样是开发一个项目,有的人一上来就拿着软件包在那修修改改,不管懂不懂,先跑起来再说,不懂得地方边动手边学习。而有的人,一拿到这个项目,发现网络这块不太懂,买本《图解TCP/IP》开始看起来,看到一半发现太乏味了看不下去了,又继续去搞项目,发现蓝牙不太懂只是知道个概念,又网上搜了个蓝牙教学视频开始看,东一榔头西一棒槌,这搞一下那搞一下,觉得自己这也不懂那也不懂,自信心受打击开始怀疑自己的能力,怀疑人生。实际上,我们应该向那位动手先搞起来的人学习,不是鼓励大家去不加思考就直接动手,谋而后动永远都是没错的。但是如果谋的太多,以至于总觉得自己谋的不够全面,要等到自己谋的完美后再开始行动,这种行为就是自缚手脚寸步难行。在做项目时,我们可以大致先捋一捋项目中需要的技术手段,对比自己的技术栈,涉及到新的技术先参照别人的设计实现自己所需的功能(如果技术太前沿没有参考那还是需要自己去从头摸索,有参考的就参考使用别人的设计,通过修改实现自己的功能后再去优化它或是重写它,不要总是重复造轮子)。

花费大量的时间研究某种技术的细节会使自己成为这个技术领域的专家,但人的精力总是有限的,在初学时若将过多的精力投身于细节的研究会导致忽略掉整个技术的全貌,容易将自己局限在某个特定的领域内。对于新技术,一个比较合理的学习顺序为:先从初次接触使用它,到使用了很多次后熟悉它,再到研究它优化它。通过多接触、多学习新的技术找到自己喜欢的领域,在该领域内追求技术的深度、深入研究,同时在广泛学习其它领域的技术,追求技术的广度,成为T字型人才。

T字型人才是指按知识结构区分出来的一种新型人才类型,就是“一专多能”,可以用字母“T”来表示他们的能力结构特点。
“—”表示有广博的知识面,“|”表示知识的深度。T字这一横,并非只限于知识面、知识结构,也是一种“横向的跨界思考、整合资源的能力”。它不只是你所拥有的知识技能和知识储备的多个方面,也是一种跨界整合的能力和习惯。两者的结合,既有较深的专业知识,又有广博的知识面。

猜你喜欢

转载自blog.csdn.net/weixin_43885532/article/details/111461746