这几年

时间过得太快了,特别是年龄大了越发有这种感觉。

很惭愧,我之前没写过技术博客,算是一个很不合格的程序员,而我在2012年之前的程序员之路也的确算是不合格的,那几年可是我生命中最为年轻和宝贵的几年啊!可就是被我在碌碌无为之中挥霍掉了。

2012年之后到现在对我来说很重要,我也是把它当成一个转折点,现在我就来梳理一下这几年我的工作和生活。

先说工作吧。

2012年4月份进入到目前的这家公司,刚开始应聘时是做.NET开发的,另外还有一个同事比我早一天进入公司,也是做.NET的,当时公司想做属于自己的电子商务平台,然后还有一个内部的系统需要维护,是用.NET开发的。后来负责面试我的同事要走了,并且根据老板的要求给我们布置了一个任务,由我来全权负责(可能看我年龄大些,貌似比较有经验吧,具体原因不得而知),大概就是开发一个控制一款门禁控制器的网站程序,没有详细的需求文档,当时我也不知道什么是门禁控制器,看它的外观似乎很神秘的,上面全是些电子元器件,没办法,刚进公司就碰到这样的项目,我是完全陌生的,除了.NET。公司的硬件工程师帮我们安装门禁控制器后,我就硬着头皮看厂家的开发协议和SDK,慢慢的有了点感觉,发现可以通过软件控制硬件了,当时心里还是挺高兴的,感觉还挺好玩的。后来从公司的硬件工程师那里了解到门禁控制器是属于单片机、嵌入式开发方面的,也就是在硬件里面写入软件,我一听,突然想起来了,每次去人才市场都会看到有公司要招聘单片机和嵌入式开发人员的,由此便开始接触这个领域了。

对单片机开发有着强烈好奇心和热情之后就开始在网上搜索关于这方面的知识,看到了大多数人都说要学习单片机和嵌入式开发需要掌握C语言,汇编最好了解一些,操作系统原理,Unix和Linux,CPU体系结构等等,我一看,懵了,除了上大学学了点C语言,而这些早就还给老师啦,其他我都不懂啊!!!当时心里就有点想打退堂鼓了,可是公司有些项目又必须用单片机才可以解决,没办法就咬牙开始学了。

最开始我买了谭教授的《C语言程序设计》(第四版),2012年年底的时候买了一个51系列开发板来学习,照着上面的步骤来做此实验,又下载别人的代码在51上移植了uIP0.9网络协议栈,实现在了SMTP客户端协议,只是做些实验,没有详细了解单片机和一些协议的源码,这就算是开始了。

2013年的时候公司要做一个网站,我的单片机学习中断了很长时间,后来到年中的时候老板说要做一个大的系统,而且是肯定要用到单片机的,公司也招了几个硬件工程师,有些是懂一些单片机开发的,有一个同事建议我试下STM32这款CPU,然后我就去找相关的资料,买了一款最小系统板开始做实验,刚开始接触还是很难的,也挣扎了一段时间,慢慢看了野火、正点原子的教程后对STM32有了初步的认识,有库函数开发效率很高(那些库函数可是大师级软件工程师写的,对我的C语言学习肯定是大有帮助的),而且STM32性能又好,当时就决定要好好学习这款CPU。

从那时起我大概读过和了解如下单片机开发相关的书籍和源码:

1、《STM32库开发实战指南》,野火的教程;

2、《ARM Cortex-M3权威指南》,主要是作参考资料,也是从这本书上学了一些汇编的基础知识;

3、《STM32中文参考手册》,这是了解STM32各个寄存器工作原理必不可少的;

4、《嵌入式实时操作系统uC/OS-III》,读过大概3遍吧,边读边研究它的源代码,之前我没有接触过uC/OS-II,听说这一版本介绍的更加详细,也是一个经典版本;

5、《嵌入式实时操作系统uC/OS-III应用开发-基于STM32微控制器》,这是结合STM32和它的评估板来进行的uC/OS-III实验;

6、《C语言程序设计》和《C++程序设计》,C语言入门经典教程,谭浩强教授的,我觉得对我帮助很大的;

7、《嵌入式网络那些事-LwIP协议深度剖析与实战演练》,学嵌入式开发,必学LwIP,这是老纳五木的作品,非常感谢他,我也结合该书将整个协议栈源码读了几次,内容太多,也有一定难度,特别是pbuf的理解,有时读了很快又忘了,但每次读后都会有些收获的,以后还要多读几次,力争可以完全掌控它;

8、《你必须知道的495个C语言问题》,也是作为参考资料的,很多的C语言技巧都是从这里学的;

9、《Linux内核设计与实现》,很遗憾我没有坚持读完,但今年我肯定会好好读下的,对了解操作系统原理很重要;

10、《深入理解Linux内核》,还没有看完,内容太多了,有时甚至想放弃,不过我会坚持下来的;

11、《新概念51单片机C语言教程》,这是买郭天祥51开发板时买的,也算是学习单片机开发买的第一本书吧;

12、《TCP/IP详解》共3卷,也是作为参考资料,学习网络必不可少的;

13、FATFS文件系统源码阅读,我读的是较新的0.09版本的。刚开始读比较困难,完全不知道那些代码在干嘛,于是我就找了FAT文件系统相关的资料读了下,知道了什么是MBR,DBR,BPS,分区表,长文件名,短文件名,目录项等等知识后再来阅读FATFS源码,感觉轻松了很多,虽然源代码中还有一些没有了解,但我相信我会弄懂的。看来在学习一种新知识的时候会牵涉到很多其他的知识,这其实也是自己将这些散乱的甚至快忘记的知识进行串联的好机会;

这些书和源码主要是在2013年下半年到2014年读的,读完之后也确有些收获,特别是在阅读源码的过程中提高了C语言能力,了解了许多重要的协议,实时操作系统的基本原理(信号量,消息,多任务管理,中断处理等等),Cortex-M3内核的基本了解。

在这其中,我也一直坚持学习英语,大概买了20多册《床头灯5000词》系列英文读物并坚持阅读,然后每天上班前的半个小时会上网听VOA。平时中午休息的时候会上下百度乔丹吧,从里面下载一些以前公牛队比赛的视频和一些记录片,我最喜欢的是公牛队6次夺冠的记录片,全部是英文原声的,既看了篮球又学习了英文,可谓两全齐美啊!当然语言只是一种工具,学习它也要自己有兴趣,而有时你又不得不学它,特别是搞单片机、嵌入式开发的人看不懂英文的芯片手册是很影响工作的,所以还是学吧,多学点东西总不会有坏处的。

2015年主要目标是全面学习STM32及Cortex-M3内核,买一块资源齐全的开发板结合参考手册来学习(很惭愧,在这方面投资不多,也是该为自己的未来投资的时候了)。虽然在公司的项目开发中会用到一些常用的资源,但是自我感觉还是很不够,离牛人的水平还差太远,有时是要给自己一些压力的,况且我又喜欢这个行业,所以不会觉得它是一种负担和纯粹只是为了工作需要。

 

再来谈下自己的生活吧。

就在我进入这家公司后的两个月,也就是2012年6月份,我老婆怀孕了,当时我真是太高兴了,但突然又觉得对不起我老婆,跟了我这么多年,还没有自己的房子,也从来没有带她到外面哪怕是去旅游一下,而她,总是在我遇到挫折和困难的时候鼓励我,让我觉得在我做一件事或者一个决定时,哪怕全世界的人都反对,只要她支持我,我都会充满力量,坚持做下去。

鼓励的力量是无穷的。记得2010年暑假,高中时的英文老师来到了我工作所在的城市旅游,她那次是快要走的时候打了个电话给我,我没有见到她,后来我发了短信给她,她回了我短信:“你永远是老师心目中最优秀的学生,我相信你会成功的。”,当时我觉得很感动,同时也觉得自己很无用,老师可能只是用这样的话来鼓励和鞭策自己的学生,可是我把这句话看得很重,我努力学习英文在很大程度上跟这个是有关系的,至少老师教我的这门课程不能差得丢人,因为在这之前我已经把英文丢了几年了。人前进是需要动力的,除了目标和梦想,你一直坚持着某些事情可能仅仅只是为了你曾经爱过的人,又或者曾经爱过你的人,TA曾经对你的期望让你全身充满了力量。

2013年3月我的女儿出生了,当我老婆在产房的时候,我特别紧张,她想要顺产,当时我在产房的外面焦躁不安地走来走去的,就在短短几分钟内我就感觉嘴巴上火了,从来没有像那样着急和担心过的。护士折腾了半个小时后说小孩呼吸加快,需要剖腹产,让我在一系列他们早已准备好的文件上面签字,那个时候心里只想着老婆和小孩平安,其他的都管不了,对于那群无良、想尽办法推卸责任的混蛋东西我只会嗤之以鼻。还好,女儿总算顺利出生了,初为人父感觉手忙脚乱的,一看小孩哭自己都傻了,不知道怎么办才好。随着女儿一天天长大,也终于体会到了当父母的会有多操心,多一个亲人就会多一份牵挂,心里总是希望大家都平平安安的。

我平时脾气比较暴躁,特别没有耐心,女儿一岁多淘气的时候我会经常大声吼她,我老婆经常劝我对待小孩要有耐心,她从来不大声跟小孩说话,而且换纸尿裤几乎都是她一个人在弄,晚上还要喂母乳,睡不好觉,也都没有抱怨过,而且我现在的脾气也是受她的影响慢慢改了一些。

平时周末会打篮球,我很喜欢这种剧烈、消耗体能的运动,不仅可以增强体质,还能磨练自己的意志,因为在球场上我总是想着要赢下每个对手,哪怕现实我技不如人,不到最后一刻我是决不放弃的。

结束语:希望自己可以实现定下的目标,以阳光的心态迎接每一天!



已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页