C程序员从校园到职场

周兆熊
前 言 在刚入职的时候,我与一个工作多年的老员工之间有以下一番对话。 老员工:“你的C语言功底如何?” 我:“还可以,考试考了九十多分。” 老员工:“你觉得编码规范重要吗?” 我:“什么编码规范?我之前没听说过呢。” 老员工:“你觉得把代码写完并运行通过,你的工作就算结束了吗?” 我:“差不多吧,在学校里面程序运行没问题就OK了。” 老员工:“对于测试,你是怎么理解的?” 我:“测试就是看程序运行是否正常,看输出结果是否正确。” 也不知道当时那位老员工听了我的回答,是什么感受。如今回忆起来,那时的我对自己将要从事的工作的理解是很不成熟的。 本书写作目的 在工作的过程中,我发现我们在学校里面学到的很多东西比较片面肤浅,根本达不到岗位的要求。像编码规范、研发流程等学校里几乎不提及的知识,在实际的软件开发项目中却恰恰是异常的重要。 在学校里面,我们欠缺的教育主要包括以下几个方面。 第一,对编码规范的要求。在计算机编程课上,老师只要求学生能够编写程序实现既定的功能即可,几乎不会对编码规范提出要求,而编码规范是一般软件项目中最基本的要求。 第二,对动手能力的要求。学校里面学完一门课程之后,只要考试通过就行了,至于这门课程有什么实际的用途,很少有人关心。这就导致很多人考试得了高分,但让他们动手编写一个程序却出现了困难。一般的软件公司对个人的动手能力是十分看中的,这就是为什么他们喜欢招有工作经验的人的原因。 第三,对研发流程的讲授。软件开发并不仅仅是编写代码那么简单。学校里的老师只会教学生怎样写出代码,但很少会教他们一个实际的软件项目是怎么回事。其实,编码只是软件研发中一个很小的部分,而诸如设计、测试等还会占据很大一部分时间。 第四,对团队精神的培养。老师一直教导我们要独立完成作业,考试的时候不要交头接耳。而公司里面,我们是在一个团队里面工作,我们要与各个成员合作来完成任务或解决问题。…