“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字这一横,并非只限于知识面、知识结构,也是一种“横向的跨界思考、整合资源的能力”。它不只是你所拥有的知识技能和知识储备的多个方面,也是一种跨界整合的能力和习惯。两者的结合,既有较深的专业知识,又有广博的知识面。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

构造函数demo

package cn.xuexi; /** 简单的写了一个构造函数的类* 总结一下构造函数的坑* 1、构造函数的名字必须与类型保持一致* 2、构造函数不能有任何返回值类型的修饰,void也不行* 3、构造函数中不能使用return 语句 */ public class GouZaoDemo { public static void main(…

小红书笔记_小红书的沙雕笔记,害人不浅啊

话说,当代人的十大必备软件是什么?要猫姐来说的话。除了微信微博抖音,小红书也肯定少不了!它简直就是大部分PLMM的“种草神器”。就连明星都纷纷入驻小红书变身为“美妆博主”。前一阵上了热搜榜和李晨分手的范冰冰也是小红书的一…

禅、魏晋风度及其他

禅、魏晋风度及其他 从本质上说,禅与文学艺术活动是相悖的。禅讲“静虚”,讲“色空”,讲“人中无我”、“法中无我”。所谓“菩提本无树,明镜亦非台,本来无一物,何处惹尘埃”(王蒙说这也不算彻底…

2020 RT-Thread开发者大会 ART-Badge电子胸牌(可二次开发)

2020 RT-Thread开发者大会 ART-Badge电子胸牌(可二次开发),动手实验IOT会场有介绍使用PersimmonUI设计器进行柿饼UI的开发,使用拖拽控件、注册事件的方式进行GUI的开发。开发语言使用JS,界面实现非常方便,后…

datatables分页下一页不能点击_干货,删不掉Word文末最后一页?学会5个方法,再也不愁啦...

在处理Word文档时,经常会在文档最后出现一页空白,非常讨厌,更可恶的是总是删不掉,按退格键或者delete键都无济于事。你是不是也正在为删除Word文末空白页发愁呢?有没有好的方法解决这一问题呢?有的&#xf…

swift 第四课 随意 设置button 图片和文字 位置

项目中经常遇到按钮改变文字和图片位置的情况,所以尝试写一个 button 的分类: 参照连接 http://blog.csdn.net/dfqin/article/details/37813591 import Foundation import UIKit /*枚举 设置 图片的位置*/ enum ButtonImagePosition : Int{case Position…

C#中get和set访问器的用法

C#中的get和set访问器可用来获取和设置类中字段(即属性)的值,通过get和set访问器提供访问接口,从而可以避免对字段的直接访问造成的不安全性。 using System; using System.Collections.Generic; using System.Linq; using Syste…

asm扩容流程_Oracle rac asm 扩容

环境介绍:故事发生在Oracle 11.2.0.4 RAC/ Linux 6.8 的数据库集群服务器上。DATA/ ARCH/ 磁盘组空间不足,进行扩容。首先,如果要在线使用udev方式扩容asm,建议先备份两个节点所有在用网卡信息,避免bug误删除网卡信息。…

计分员计分程序

1.估计这个任务需要多长时间:两星期 2.需求分析: 作为一名现场记分员,我希望详细记录比赛现场比分增长情况,以便观众及运动员、教练员及时掌握比赛状况。(满意条件:每一次比分的改变,都要形成一…

蓝牙入门基础知识(一)

蓝牙起源 1995年5月20日,在美国华盛顿州,索尼爱立信、IBM、英特尔、诺基亚、东芝成立了蓝牙技术联盟(Bluetooth Special Interest Group,SIG)。SIG是一个制定蓝牙规范,推送蓝牙技术发展的国际组织。SIG授权…

用python将图片写入ppt_用python做ppt服务用于导入图片

项目需要做WINFORM程序与powerpoint交互,把winform生成的图片自动拷贝到ppt中。目前使用python做了一个简单的服务解决。由于要求是32位程序,所以下面全都是32位的版本。第一步,安装python2.7 32位。第二部,安装py2exe 32位。第三…

C#语言入门详解---委托(刘铁猛)

委托:函数指针的升级版,可以类比C语言中的函数指针进行理解 变量的本质就是以变量名所对应的内存地址为起点的一段内存,这段内存中存储的就是变量的数据,这段内存的大小由变量的数据类型决定。 函数代表算法,函数的本…

【LintCode题集】Q6、Q64

最近开始刷LintCode上的题目,先从标签为容易的开始刷。今天刷的这两题目差不多为同一类型的题目,都是为按照一定的规则合并两个已经有序的数组。 [Q6] 描述: 合并两个排序的整数数组A和B变成一个新的数组。 样例: 给出A[1,2,3,4]&…

input标签的值只能两位小数_解决input只能输入金额类型的方案(金额输入框只能输入2位小数)...

欢迎加我技术交流QQ群 :811956471前言:最近在用uni-app框架,写一个项目(支付宝和微信小程序)遇到一个需求,要求金额输入框只能输入2位小数,且第一位数不能是 ".",只能是数字。发现用 input事件监…

C# winform中判断控件类型

C# winform中对控件类型的判断: public void UpdataControl(Control control, string data) {if (control is TextBox){doSomething1();}if (control is Label){doSomething1();}if (control is Button){doSomething1();}}

单元测试原来是这样的呼

我们要先创建一个界面: 显示的界面是这样的: 接下来我们来写java代码, 在输入框里的内容,点击button,将数据显示到上面的textview. 后面写测试用例,但我不知道哪里出错了,不知道是不是创建就出错…

python生成表达式_说说 Python 的生成器表达式

列表推导与生成器表达式都可以用于初始化元组、数组或其他类型的序列。但列表推导需要先建立一个完整的列表,然后再把这个列表传递到某个构造函数。而生成器表达式会逐个产出元素,这样显然能够节省内存。列表推导写法:codes [ord(symbol) fo…

C#中宏定义#define、预处理#if #else #endif的使用

C#中预处理的使用: 预处理指令并不会被编译为执行代码中的指令,但使用预处理指令可以选择编译程序中的哪部分代码。一般在调试代码时或在发布不同功能等级的软件版本中使用。 需要特别注意的是,宏定义必须在C#的.cs源文件最开头的位置定义&am…

华硕vm510l装固态硬盘_华硕VM510L拆机换固态硬盘

首先看下需要准备的东西,一台华硕笔记本,螺丝刀,固态硬盘。微信图片_201910051157221.jpg1.先把背面的螺丝全部卸掉。微信图片_20191005115722.jpg2.反过来,暴力拆键盘,从边缘部分开始撬。注意键盘下面有排线&#xff…

C# 串口接收1次数据会进入2次串口接收事件serialPort1_DataReceived,第2次进入时串口缓冲区为空

在C#中使用串口接收数据时发现,在完整的接收完一次数据后,还会再次进入串口接收事件。 在网上搜索资料发现其他开发者也有遇到该问题: [1] c#串口事件接受一次数据莫名其妙会触发两次 原文链接:https://www.52pojie.cn/threa…