- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
系统程序员成长计划.pdf
写作背景
在经历过几个大型的,失败的项目之后,我终于明白没有什么比高素质的程序员更能决定项
目的成功了,无论什么过程,什么编程语言和开发工具,离开了高 素质的程序员,什么都
是白费力气。毫无疑问,人是软件开发中最重要的因素,但不是每个人都重要,不是什么样
的人都重要,只有那些高素质的程序员和那些对项 目有突出贡献的人才是重要的。
不过高素质的程序员并不多见,所以从我开始带人之际,就在思考团队成员培养的问题。我
做过很多尝试,从小组内学习到整个部门一起上大课,最后又回到 对个人单独的辅导;从
通过codreview 做现场教育到制定过一个宏伟的培训计划,最后又回到一个朴素的培训过程 。
其中遇到了很多问题,开始是培训不够 系统,效果不甚理想,后来又因为计划过于”宏
伟”而无法实施,直到最后行成一个朴素的,切实可行的培训方案,中间经过了好几年时间 ,
直到去年,整个计划才 趋于完善。我把这个培训计划称为系统程序员成长计划,这就是我
在这个系列中要写的。
培训内容不是来源于某本书,毕业八年来,我坚持不断的看书,家中放了 7 大储物箱,有
300 多本不同类型的书籍,其中囊括了大部分经典的IT 图书。当 然也不是全部内容都来源
书本,这几年我在开源软件吸取了大量的营养,一些思想和经验在broncho 项目中也有充分
的发挥,可以说是理论,经验和实践的结 合。但我不尝试阐述什么高深的道理,相反我是
针对应届毕业生和业余爱好者写的,目的是要让初学者进阶为一个专业的程序员。
为什么叫 系统程序员成长计划?程序员的范围太广了, 虽然软件开发有很多相似之处,但是
隔行如隔山,比如对于目前炙手可热的WEB 开发,我完全是外行。想什么都讲一点,结果
是什么都没有讲清楚,所以我得把培 训计划限定在我熟悉的范围之内。先定义一下系统程
序员 :从事操作系统内核、DBMS 、GUI 系统,基础函数库 ,应用程序框架 ,编译器和虚拟
机等基础软件开 发的程序员。这些培训同样适用于桌面软件和智能手机软件开发,我想对
其它软件开发也会有一些启发作用。
草莓酱定律与果酱定律。第一次在咨询的奥秘中看到草莓酱定律时,我觉得非常有意思。当
然这个系列也无法脱离草莓酱定律的魔法,利用这个系列中的内 容,我手把手的教了十多
个同事,收到了良好的效果。当有数百个读者读这些文章时,我不敢期望有同样的效果。不
过在果酱定律的鼓励下,我相信这个系列中至少 有部分内容的价值不会因为读者群的增大
而消失,所以最终决定写出来。
中心思想
软件开发的困难在哪里?对于这个问题,不同的人有不同的答案,同一个人在不同职业阶段
也会有不同的答案。作为一个系统程序员来说,我认为软件开发有两大难点 :
一是控制软件的复杂度。软件的复杂度越来越高,而人类的智力基本保持不变,如何以有限
的智力去控制无限膨胀的复杂度?我经历过几个大型项目,也分析 过不少现有的开源软件 ,
我得出一个结论 :没有单个难题和技术细节是我们无法搞定的,而所有这些问题出现在一个
项目中时,其呈指数增长的复杂度往往让我们束 手无策。
二是隔离变化。用户需求在变化,应用环境在变化,新技术不断涌现,所有这些都要求软件
开发能够射中移动的目标。即使是开发基础平台软件,在超过几年 时间的开发周期之后,
需求的变化也是相当惊人的。需求变化并不可怕,关键在于变化对系统的影响 ,如果牵一发
而动全身,一点小小的变化可能对系统造成致命的 影响。
为了解决这两个问题,方法学家们几十年来不断努力,他们发明或改进软件的开发过程和设
计方法。系统程序员面对的基础软件通常都是大型的复杂的软件,其通用性也要求能容纳更
多变化,解决这两个问题也是系统程序员成长计划的主要目标。
文章特色
以引导读者思考为主。培训可以制造合格的程序员,却无法造就一流的高手。培训是一个被
动的过程,我们都知道在大学里听课的效果,我不希望本系列文章 的成为单纯的培训教材 ,
相反我们要变被动为主动,最大限度的提高学习的效果。大多数情况下,我先提出问题让读
者去思考,让读者自己尝试去解决,能不能解决 这个问题不重要,重要的是在思考中提升
自己。如果读者在一定时间无法找到解决问题的方法,后面会有专业程序员的参考做法(或
许不是最优的) 。
以简单的例子讲述复杂的设计方法。我曾经制定一个宏伟的培训计划,结果失败了,原因是
我忘记了我在走路之前也艰难的爬行过。这次我吸取了教训,用简 单的示例讲述复杂的设
计方法,而且不对读者的背景太多假设。里面不会出现复杂的数据结构和算法,也不会引入
大型软件来唬人。即有足够的挑战 ,不会让读者感 到乏味 ;又一切尽在掌握之中,不会因
为挫折而打击积极
您可能关注的文档
最近下载
- 【通桥(2016)2322A-II-1】高速铁路预制无砟轨道后张法预应力混凝土简支箱梁(双线) 跨度31.5m(直、曲线) .pdf
- 2024年二建继续教育-合同管理和风险防范(必修)1、2答案.docx VIP
- 2024-2025高二化学人教版选择性必修2习题试卷第三章章节测评(解析带答案版).doc
- GB∕T 3953-2024电工圆铜线 GB∕T 3953-2024电工圆铜线.pdf
- 部编版六年级毕业作文总复习指导(名师作品).ppt
- 产品上架与下架操作指南.doc VIP
- 《你好!法语1》练习册答案.pdf
- 日本的设计文化.ppt VIP
- 甲醇行业未来发展趋势预测.docx
- 收发文件管理制度.docx
文档评论(0)