
作者序
希望能给你带来帮助
十多年前,我大学毕业。
十多年来,我一直从事开发工作。主要的开发工具是:C/C++语言。当然,还会使用一些其他的开发语言和平台。
十多年了,也积累了一些东西,决定抽空把自己技术上成长的路总结一下,希望能给你带来一定的帮助。
在大学的时候,我只不过是一个想努力学好每门功课,争取拿到奖学金的学生。
C语言对我来说,只不过是其中的一门功课,对功课的态度我都是一样的。
记得我的这门功课的考试得了98分。
不过,现在看来,这个分数毫无意义,只不过却跨出了认识这门语言的第一步。
如果说重要的课程,反而是后面的一门算法和数据结构课程,工作时间越久,越意识到这门课程的重要性。
算法和数据结构课程之后,又一次接触C语言是在毕业设计时。
毕业设计对我来说,有两个重大的意义:
一是编写了一个“大”程序,让我意识到要组织好代码,还得具有一些工程化的知识经验技巧规范。
二是编写了这么多代码,C语言让我使用得更加熟练。
不过,当你知道得越多,接触到未知的东西就会越多,那个时候才明白,面对整个C类开发而言,我的C语言成绩应该只有2分。
毕业后,我经历了很多比大学毕业设计更加庞大的项目。
非常幸运的是,这些项目都是由浅入深,逐步走入我的工作中,这逐渐给了我成长的空间。
第一个阶段:这些项目,都是嵌入式在ROM中的小程序,它们让我学会了算法平衡,学会了设计,学会了调试……
第二个阶段:特点是这些项目都引入了嵌入式开发系统。项目的规模很大,系统的规模也相当大,需要很大的团队来支持、完成。这些项目让我达到了另外的台阶,基本上不再是个人独立完成项目,开始积累项目开发的经验……
总结一下,你会发现这些经验非常可贵,我要是早早就知道这些,工作中可能就会少犯很多低级错误,还有莫名的焦躁。
……
我平时也有记录工作笔记的习惯,这些经验都散布在我厚厚的几个笔记本中。
一直想,等我有空了,把这些总结一下,应该是非常有意思的事情。不过一直也没有时间。
直到有一天,和我一个同学聊天,他说起来目前的大学生就业形势。我知道很多公司都缺乏开发人才,而且能开出的工资远远高于网络上公布的平均数字。而这些工作的基本要求,就是熟练掌握C语言。实际上,我们读大学的时候,理工科大学生学习一门编程语言是一个基本要求,我想现在也是,所以,我觉得这个要求并不算高。大学生缺的,只是熟练程度和一些基本经验。
所以,我决定每周总结一点。希望能在你找工作的时候有所帮助,希望能对你的成长有一些帮助。
Emily
2018年3月