《系统程序员成长计划》成长过程——作者自序_系统程序员成长计划书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 系统程序员成长计划 > 《系统程序员成长计划》成长过程——作者自序
broncho 系统程序员成长计划 的书评 发表时间:2010-04-12 10:04:51

《系统程序员成长计划》成长过程——作者自序

《系统程序员成长计划》的起源应该追溯到六年前了。04年我进入恒基伟业深圳研发部,参与商务通隐形手机开发。在此之前我是做服务器软件开发的,对嵌入式软件开发非常好奇,所以想方设法进入这个行业。恒基伟业在嵌入式方面的实力也是相当高的,很多在消费类设备方面的开发高手都有在恒基伟业工作过的经验。原以为做嵌入式开发的程序员都是非常牛的人,动不动都是能写上上万行汇编语言。真正进入这个行业之后,才知道牛人毕竟是少数,大部分人都和我一样是普通的程序员。

过了几个月,我当了小组长,手下带了几位同事。有刚毕业的,有工作两年的,也有工作经验和我差不多的。有次我让一位同事写一个小程序,过了好几天他还没有写完。和他讨论了一会儿后,才知道他写的程序动不动就死掉,查了几天没有查出原因来。由于我以前做过两年全职的调试工作,看了一下他的代码,马上发现问题所在:指针声明之后,没有指向任何有效的内存,就直接使用了!

后来和他们交流多了,才发现有的同事工作几年之后,连一些编程的基本技能都没有掌握,代码写得乱七糟八的。这些代码集成到项目中后,产品越来越不稳定,整个项目慢慢失去控制。那个项目后来BUG总数超过了 10000个,当时大家都知道在做一件不可能完成的任务,士气变得非常低落。经历那一段非常郁闷的时期之后,我更深刻的体会到高素质的程序员才是软件开发成功的关键。于是我开始对手下的同事进行培训,把一些我认为重要的知识和方法教给他们。虽然没有收到预期的效果,不过积累了一些素材。

05年我跟着现在的上司进入鼎智通信,我还是小组长,带了几个新手。我根据前面的经验制定了一个培训计划,我的上司看了之后觉得不错,就在软件部推广。下面是当时我发在博客上的培训计划:

学习的方式:

对于基础性知识,指定几本教材,大家轮流学习,学习完成后给其他讲解。对于较难的知识,由我或者请其他有经验的人讲解。集中学习时间定在周三晚上。

第一阶段:

目标:熟悉常见的算法和调试方法,培养良好的编程风格,从而提高编程 能力。
时间:8周

内容:

   1. 编程规范
   2. 双向链表
   3. 调试方法与调式工具的使用
   4. 动态数组
   5. 快速排序/归并排 序/堆排序/二分查找
   6. 状态机
   7. 下推自动机
   8. 嵌入式软件开发
   9. Unicode基本知识


第二阶段:

目标: 学习如何阅读和改进别人的代 码。

时间: 4周
内容:
   1. 代码阅读方法
   2. 代码重构


第三阶段:

目标:自动测试
时间:2周
内容:

   1. 测试理论
   2. 常用的自动测试框架


第四阶段:

目标:软件设计和文档编写
时间:12周
内容:

   1. 面向对象的设计与分析
   2. 契约式编程
   3. 设计模式
   4. 软件架构编档
   5. 了解常见的软件过程: XP/RUP等
 

第五阶段:

目标:学习一种脚本语言,能自动化的工作尽量让计算机去做,从而提高 工作效率。
时间:4周
内容:cygwin + bash 或者 python 或者 perl 或者vbscript。
 

第六阶段:

目标:综合应用所学的知识,完成一个模块的设计、编程、测试。
时间:4周
内容:待定

这个培训坚持了半年,收到一些效果,但是不够理想。主要原因是这个培训计划追求大而全,加上大家工作很忙,还没有消化就进入了下一个阶段。现在来看,这个计划完全可以作为一个程序员的三年学习计划了。

05 年下半年,Broncho团队成立。我改为手把手的培训方式,通过代码评审等方式,发现新手犯的错误,然后纠正他,并把一些典型的错误统一讲解。慢慢的积累了典型错误和问题的素材,后来我开始思考:能不能搞一系列的题目,让新手把他们该犯的错误犯一遍,让这些典型的错误在他们正式工作之前就被纠正了呢?

这些题目要有足够的挑战,又不能让人望而生畏。要解决这个难题不容易,记得当时《C++沉思录》给了我一些启示:用一个好的程序的演化过程,逐步深入的学习各种基本的技术和方法。于是有了第一章双向链表演化的雏形,第二章写得又快又好的秘诀,则是我多年来一直在思考的。

07年下半年正式在Broncho团队起用这套培训课程,记得Broncho团队的吴松是第一位参加这个培训的同事。经过一年多时间,前前后后有十多位同事的参与,这套培训课程逐渐完善起来,到现在Broncho团队仍然在使用。

08年十月份开始把这些培训资料整理成文字,并在我的博客上发布。这是一项艰苦的工作,虽然这些内容在脑子里都过了几十遍了,但写出来的时候,要讲清楚还是不容易的。一年多时间,经过读者的建议,又做了些完善。

09年七月底完稿,并确定由人民邮电出版社旗下的图灵出版社出版。我一直强调图书的质量,并多次跟出版社要求,我不要稿费甚至自己拿钱出来补贴工作人员都可以,但是一定要保证图书的质量。出版的过程中出现了一些波折,到今年三月本书才终于与读者见面。

另外我解释一下,书上为什么没有推荐序之类的东西。在出版之前,一些热心的朋友主动说帮我写或者请名人写推荐序,我都一一婉拒了。我的理由很简单,那些“名人”都没有仔细读过我的书,帮忙写推荐只是纯粹的吹捧,都是虚假的,对读者不负责的。我希望更多的读者读本书,但是决不能用这种手段来欺骗读者。只有真正的读者才有资格对书做出评论,如果有机会出第二版,我会请读者写推荐序的。

展开全文
有用 32 无用 2

您对该书评有什么想说的?

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“《系统程序员成长计划》成长过程——作者自序”的回应

yinchaoonline 2013-03-25 12:26:00

支持一下。。、

qin 2011-12-23 09:05:47

推荐刚入行但有一定C语言编程经验的程序员阅读,很简洁又很实用的指导书籍,团队的技术负人也可以考虑在团队里推广下这本书里的经验。

longge 2011-03-30 22:01:39

顶起,很有借鉴意义!

youxiafuture 2010-10-20 17:01:40

随着FTK而来

green369258 2010-06-03 21:29:13

好书,最后一章的MVC我非常想知道。顶一下

Zero 2010-05-09 23:10:50

恒基伟业,"呼机、手机、商务通,一个都不能少""一部永不断电的手机"。
我承认我一看到这个公司我就完全萎了

[已注销] 2010-04-14 10:34:05

由于我以前做过两年全职的调试工作,看了一下他的代码,马上发现问题所在:指针声明之后,没有指向任何有效的内存,就直接使用了!

==================================================
把hr拖出去tjjtds,这种垃圾也能招,估计是老板亲戚。