《0 bug ---- C/C++商用工程之道》简介
TPRI 肖舸(C/C++老师) 2009-11-09 11:31
目前,在IT职场上,甚至在整个社会上,普遍存在一种现象,就是刚刚毕业的大学生,不好找工作。究其原因,我们很多人在大学中,虽然学到了很好知识,但是缺乏运用知识的技能,无法满足企业用人的要求,导致就业困难,很多人因此甚至“回炉重造”,以参加各种培训班来弥补这种经验上的缺失,以期尽快找到工作,获得社会的认可。这究竟是广大学生的学习能力出了问题,还是大学的教育出了问题呢?
另外,很多年轻的朋友即使顺利进入到企业中,也会由于经验的缺失,无法快速融入企业商业化开发的氛围,尽管大多数年轻的程序员已经很努力地在学习和工作,但做出来的产品就是无法满足市场的需求,这令他们很苦恼,用他们的企业也很苦恼,这究竟又是怎么一回事呢?
还有个问题,程序员作为一种创造性极强的社会职业,已经获得了大家的认可,但是,大家也几乎公认,程序员是一门非常辛苦的工作。在商业公司中,由于市场竞争的压力,程序员经常面临的环境是任务紧,压力大,加班成为家常便饭,同时,新技术层出不穷,程序员在完成本职工作的前提下,还要不断努力学习,稍有懈怠,即有因知识老化被淘汰的危险。虽然我们说,市场化的竞争社会,各行各业都压力,但是无疑,程序员这个职业是压力较大的一种。那么,我们程序员究竟有没有办法,通过自己的一点努力,让自己的生活变得轻松一点,压力小一点,更多一点时间来陪伴家人,共享天伦之乐呢?
笔者从事IT程序开发几十年,被人招聘,也招聘过人,有压力,也有心得,看过很多书籍,也做过一些工程项目,很多时候,笔者和朋友们也都面临上述的问题。不过,经过这么多年的思考,笔者发现,上述问题其实并非无解,简单说来,无非是一个年轻人,从学校出来,需要迅速扭转学生思维,做工程不搞科研,做项目不做学问,以务实的态度,迅速进入商用软件开发领域,并在成本和质量意识的基础上,不断对自己的技能精益求精,高质量地完成各种商用软件工程项目,最终也使自己成为企业合用的人才。
但是很遗憾,笔者看了很多计算机软件编程方面的教科书,这些书虽然都讲解了很好的知识,但是,也许是笔者孤陋寡闻,几乎没有一本书,是站在商用软件开发,站在企业、市场化的角度,来论述软件开发的原则和道理,同时,很多教科书上,讲解了很多正确的开发知识,但对于如何开发正确的程序,如何杜绝程序中的bug,如何开发出高安全度,高可用性的商用软件,论述甚少,尤其在近年来32位多任务操作系统大行其道时,如何以一种简便、安全的方式,开发出合用的并行商用工程,更是很少有书籍涉及。这几乎已经成为IT软件全行业的一块“短板”。简单说来,目前的软件开发书籍,正确的多,实用的少,对于商业企业中的职业化开发,缺乏指导资料。
笔者有鉴于此,决定写这本书,一方面,笔者希望把自己这么多年的开发经验做个总结,并share给各位读者,另一方面,笔者也希望从另外一个角度,从纯粹商业化的,务实的角度,论述一点商用工程开发的道理,希望能帮助更多的朋友,能迅速掌握商用开发的基本原则,迅速掌握企业开发的基本原则,最终,成为企业合用的人才。
本书不仅仅是一本技术类书籍,虽然本书给出了很多诸如内存池、线程池、任务池、锁、队列、debug和日志系统等常见商用软件开发的范例,也给大家展示了一个可用度较高的工程库,但笔者认为这并不是本书的重点,贯穿本书始终的以需求为主导的系统分析方法,实用主义的开发态度,以及务实的程序实践理念,才是本书的精华所在,因此,笔者请各位读者在阅读本书时,不要就技术谈技术,尽量多思考技术之外的东西,这样的话,各位读者的收获可能更多。
另外,很多年轻的朋友即使顺利进入到企业中,也会由于经验的缺失,无法快速融入企业商业化开发的氛围,尽管大多数年轻的程序员已经很努力地在学习和工作,但做出来的产品就是无法满足市场的需求,这令他们很苦恼,用他们的企业也很苦恼,这究竟又是怎么一回事呢?
还有个问题,程序员作为一种创造性极强的社会职业,已经获得了大家的认可,但是,大家也几乎公认,程序员是一门非常辛苦的工作。在商业公司中,由于市场竞争的压力,程序员经常面临的环境是任务紧,压力大,加班成为家常便饭,同时,新技术层出不穷,程序员在完成本职工作的前提下,还要不断努力学习,稍有懈怠,即有因知识老化被淘汰的危险。虽然我们说,市场化的竞争社会,各行各业都压力,但是无疑,程序员这个职业是压力较大的一种。那么,我们程序员究竟有没有办法,通过自己的一点努力,让自己的生活变得轻松一点,压力小一点,更多一点时间来陪伴家人,共享天伦之乐呢?
笔者从事IT程序开发几十年,被人招聘,也招聘过人,有压力,也有心得,看过很多书籍,也做过一些工程项目,很多时候,笔者和朋友们也都面临上述的问题。不过,经过这么多年的思考,笔者发现,上述问题其实并非无解,简单说来,无非是一个年轻人,从学校出来,需要迅速扭转学生思维,做工程不搞科研,做项目不做学问,以务实的态度,迅速进入商用软件开发领域,并在成本和质量意识的基础上,不断对自己的技能精益求精,高质量地完成各种商用软件工程项目,最终也使自己成为企业合用的人才。
但是很遗憾,笔者看了很多计算机软件编程方面的教科书,这些书虽然都讲解了很好的知识,但是,也许是笔者孤陋寡闻,几乎没有一本书,是站在商用软件开发,站在企业、市场化的角度,来论述软件开发的原则和道理,同时,很多教科书上,讲解了很多正确的开发知识,但对于如何开发正确的程序,如何杜绝程序中的bug,如何开发出高安全度,高可用性的商用软件,论述甚少,尤其在近年来32位多任务操作系统大行其道时,如何以一种简便、安全的方式,开发出合用的并行商用工程,更是很少有书籍涉及。这几乎已经成为IT软件全行业的一块“短板”。简单说来,目前的软件开发书籍,正确的多,实用的少,对于商业企业中的职业化开发,缺乏指导资料。
笔者有鉴于此,决定写这本书,一方面,笔者希望把自己这么多年的开发经验做个总结,并share给各位读者,另一方面,笔者也希望从另外一个角度,从纯粹商业化的,务实的角度,论述一点商用工程开发的道理,希望能帮助更多的朋友,能迅速掌握商用开发的基本原则,迅速掌握企业开发的基本原则,最终,成为企业合用的人才。
本书不仅仅是一本技术类书籍,虽然本书给出了很多诸如内存池、线程池、任务池、锁、队列、debug和日志系统等常见商用软件开发的范例,也给大家展示了一个可用度较高的工程库,但笔者认为这并不是本书的重点,贯穿本书始终的以需求为主导的系统分析方法,实用主义的开发态度,以及务实的程序实践理念,才是本书的精华所在,因此,笔者请各位读者在阅读本书时,不要就技术谈技术,尽量多思考技术之外的东西,这样的话,各位读者的收获可能更多。