【本帖内容】RT-thread学习之一直走下去
RT-thread学习之object对象管理机制
RT-thread学习之Thread线程机制及应用
RT-thread学习之线程间的同步
RT-thread学习之设备层框架设计浅析
这是一篇很久就想开的帖子,吐槽成分居多的帖子,标题篇请先忽略RT-thread:虽然它是国产级操作系统,虽然它秀外慧中,虽然它拿奖到手软,虽然它:至今对我来说还是很神秘,但是请先忽略它,先来吐槽一下这么多年内心的痛。。。
故事还是从高中毕业讲起:08年高考落榜,分数少的可怜,一瞬间让我想起了什么,悲从心中来,面对蓝翔,复读,我选择了去别的学校读个专科吧,毕竟那时候挖掘机专业与电子专业,我还是毅然决然的选择了电子专业,不是因为我不热爱挖掘机,关键是家里条件困难买不起啊,还是选择了比较神秘的电子专业,当时年少无知,对于这介于软硬之间的一个专业,充满了好奇与兴奋,现在想想,当年剑走偏锋的确不对,看不懂的不一定就是好,有可能学完了依旧看不懂,人家至少还能开个挖掘机。(多么痛的领悟。。。)
接下来开始的就是大学的日子,抱着满腔的热血与激情,一个月以后就彻底沦陷了,老师照本宣科,下课根本找不到人,如果你下课拦着老师问问题,同学们会以一种看怪物的神情看着你,大家都是要么旷课,要么上课睡觉,看小说,听音乐,聊妹子,这都算是比较好的了,你居然在听课。。。
不出一个月我也一样了,只是上课还是保持听听课,下课就是打游戏,呆宿舍,日子一天天的过,不是因为不想好好学习,说实话总感觉智商有限,当时选错专业,实在是听不懂,不出一个月就放弃了,只是心疼那么多的学费所以还是坚持每节课听听天书。
快毕业的时候学的专业课,单片机彻底激发了我的兴趣,那时候觉着跑马灯简直是世界上最漂亮的灯了,我让它怎么跑它就怎么跑,事实证明我还是很有眼光的,到今,很多高楼大厦夜晚总会闪烁起迷人的跑马灯(看着无比的高端大气上档次)。
那个时候学的是汇编:也就是那一年,我接受了一些东西,也让我学会了一些东西,到现在才慢慢的想明白,挣扎的工作了这么年,才找到伤口到底在哪里。
【一切止于汇编】:日子总是不抗混,毕业只是眨眼间,因为专业里大部分都没打算干这个,所以找工作时候也比较顺利吧,唯有像我这样的有限几个人,水平就不说了,与社会脱节的厉害,就凭着一股子不撞倒南墙不回头的架势,再找工作的路上撞得头破血流,体验了现实与想象的巨大差距,原本有几个志同道合的同学也都选择了,提升学历,要么参加培训机构,JAVA,C++,记得那时候有个很叼的培训机构,具体什么就不讲了,打着招聘的幌子骗你去洗脑,然后交钱培训,结果钱没赚到,又搭进去一大笔,当然不说培训完全没用,只是这种手段实在不敢苟同,就这样,我还在不是去找工作就是在去找工作的路上渐行渐远。。。
瞎猫总能碰到死耗子,总有招不到人的小企业降低条件要一些人,其实感觉刚开始也没打算真的要,后来阴差阳错的留下了,中间过程略有负杂,欲知详情请看姊妹篇,我或许可以是个工程师,此篇还是穿插着讲点自己这几年工作的心得与体会,与大家分享一起学习,就不扯太远的犊子了。
工作的开始接触的就是C语言,第一感觉就是简直太友好了,终于不用写指令了,记住几种语法,天下任我行,顺序执行,循环结构,条件判断,在外面披上一层函数的外衣,头文件里放满了全局变量,main.c里无穷无尽的各种函数,就是一路的披荆斩棘,开始了我的项目生涯,说实话,那时候我仅仅比定义变量时a,bc,i,j,k....能稍微高一个档次,总觉得凭借自己的脑子可以挑战一切的幻想冲昏了头脑。加之身边一群老工程师的影响,在面向过程的道路上渐行渐远,以能超越驾驭十几层if else的老工程师为目标,无知者总是这样的无谓。
不知不觉间,几年匆匆而过,做过几个项目也算是能用,学习停滞不前,调试找bug功力深厚不少,但总觉得自己这么下去越来越危险,于是便有了挣扎中想去改变。其实眼前有无数条大路能帮你到达你想要去的地方,可是总有一个叫做放不下拥有的小人拉着你,阻止你前行,一面面对多年的编程习惯,一面面对明知是错的但是不敢下决心尝试的全新模式的到来,于是总是在挣扎中前行,想起来大学里买电脑的纠结,果真还是逃不过贫穷的思想,虽然在努力前行,但总是自己给自己下绊子的路上,越走越坎坷。或许改变并没有那么难,只是懂得的有点晚。
【那些曾经亲身掉进去的坑】:毕竟学电出身,还不是科班,相比于学软件齐家的人,编程全凭喜好(最起码开始时候这样),真的是经历了不少的坑。算是爬的有点经验了,和大家分享一下,有的坑已经被时代验证了,有的坑可能还深深的植入在一些工程师的脑海中,久久也不会散去。
深坑一:单片机资源有限,ram/rom很贵,最好省着点用,汇编大哥当道时代已经过去,但大哥依旧是大哥。那个时候最早用的51单片机,大概记得ram只有2K吧,想想可以定义2048个变量就会觉得我的天好多啊,但是好像就这么多,还是省着点用,现在连51都进化了,更别说很多大学课程都换成了STM32 PIC16 一系列高端片子了,动辄几十K,上百K,这个时候你会发现,省空间不是王道,有时候牺牲空间而用来构建你的框架体系才是正道。
深坑二:千万不要用指针,一旦溢出了,你都不知道该怎么解决,而且你们现在的水平不适合接触这一类,当然还会补充一句,指针才是C的灵魂,这是大学老师对于我们的教导,现在想想很有道理,你要用指针出了错,你能把老师问懵B了,为了颜面形象和授课的难易度,这一章很重要,希望大家自学,有兴趣的同学下课可以找我(前提能找到我)。这就像有钱人告诉你投资有风险一样,现在看来投资其实没风险,有风险的是无知而已,回首这么多年,兜兜转转还是绕不开,有些东西你不用永远体会不到它的灵魂,虽然犯错时不可避免的,但是慢慢地它会改变你的价值观,不要怕犯错,不要怕侵犯它的神圣,它又不是你的女神,就算是错过了可就再也没有机会了。哪怕是犯错。。。
深坑三:勿与人争高低,其实工作这么多年,接触了太多的工程师,其实大家各自有各自的套路,各自有各自的理解,有人觉得控制个十几层的嵌套就是很easy,不要说你这样做不优雅,有人用IJK学出的成熟算法,给你抄你都抄不明白,不要说你这样做谁能看得懂,这方面没有太多的想说,只想说每个人都有自己的优点和缺点,干了这一行谁也不会暴富,一个穷人何必难为另一个穷人,有时候不要把编程看成是艺术,能体现自身的才华,而把它当做是一门手艺,大家同是炸油条的,相煎何太急。(水先吹到这里,早睡早起,明天继续搬砖,空闲了老铁们继续。。。)
【裸奔的那些年。。。起点】扯得有点远,这里说的裸奔不是真的不穿衣服,而是代表着自由,键盘在手,代码可以横着走,除了你要遵守编译器的规则和语言的约束,当然还有考虑硬件的特殊性以外,没有了任何条条框框,你可以随心所欲的编程,毫无规律的命名,就像是一个没有秩序的世界,而你则是这个世界的主宰,软件的世界,最初自然要有个开始的地方,这就是我们接触最多的main函数了,也是代码之初,像这样。
从宏观的角度上是从这里开始的,其实从微观的角度上看,却是从老大哥那里开始的,
也就是前面所说的,一切起于汇编。。。其实这一块没必要深入的研究:只要知道程序是有起点的,C的起点在于main,而真正的入口来此距离机器更近的汇编,足够。
【裸奔的那些年。。。终点】这或许是一篇长篇的小说,有耐心的老铁们慢慢追吧,主旨在于总结过去,展望未来,反正我感觉又要写成小说了,那就当小说来看吧。现在回头想想,假如工作之初,就有个明白人带着自己走,该多好,该少走多少弯路呢,也只是假如,当年我就喜欢无事自己瞎琢磨,差一点走火入魔,前面讲了程序的开始,是必须要有个起点的,就像是生命之初一样,有了灵魂我们就是一个独一无二的个体,话说灵魂到底是个啥。。。
那么程序到底该不该有终点呢,其实说程序还是很模糊的概念,换一种思想来理解,程序也就是一串串顺序执行的代码,这是亘古不变的,不论是多高级的语言,他们最终编出的程序经过编译后形成的是一条条的机器指令,机器按照指令一条条的执行,假如它是有终点的,当它执行到终点的时候,你也就对他失去了控制权,你买一台电冰箱,电脑,电视机不可能只用一次,所以说我们得让他们看起来没有终点,一直在干活的路上,这里就得归功于while了,在main函数中,实际上程序真正的执行,是在一个while里面,这里我们可以解释为一个超级循环。当程序开始的时候,注定我们就不想让他们停下,而是在其硬件能够支撑的足够岁月中,不断的给我们干活。like this。。对,不要停,谁也不能停。。。(goodnight。。。)
【本帖内容】RT-thread学习之一直走下去
RT-thread学习之object对象管理机制