网站大量收购独家精品文档,联系QQ:2885784924

系统程序员成长计划.pdf

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
系统程序员成长计划.pdf

写作背景 在经历过几个大型的,失败的项目之后,我终于明白没有什么比高素质的程序员更能决定项 目的成功了,无论什么过程,什么编程语言和开发工具,离开了高 素质的程序员,什么都 是白费力气。毫无疑问,人是软件开发中最重要的因素,但不是每个人都重要,不是什么样 的人都重要,只有那些高素质的程序员和那些对项 目有突出贡献的人才是重要的。 不过高素质的程序员并不多见,所以从我开始带人之际,就在思考团队成员培养的问题。我 做过很多尝试,从小组内学习到整个部门一起上大课,最后又回到 对个人单独的辅导;从 通过codreview 做现场教育到制定过一个宏伟的培训计划,最后又回到一个朴素的培训过程 。 其中遇到了很多问题,开始是培训不够 系统,效果不甚理想,后来又因为计划过于”宏 伟”而无法实施,直到最后行成一个朴素的,切实可行的培训方案,中间经过了好几年时间 , 直到去年,整个计划才 趋于完善。我把这个培训计划称为系统程序员成长计划,这就是我 在这个系列中要写的。 培训内容不是来源于某本书,毕业八年来,我坚持不断的看书,家中放了 7 大储物箱,有 300 多本不同类型的书籍,其中囊括了大部分经典的IT 图书。当 然也不是全部内容都来源 书本,这几年我在开源软件吸取了大量的营养,一些思想和经验在broncho 项目中也有充分 的发挥,可以说是理论,经验和实践的结 合。但我不尝试阐述什么高深的道理,相反我是 针对应届毕业生和业余爱好者写的,目的是要让初学者进阶为一个专业的程序员。 为什么叫 系统程序员成长计划?程序员的范围太广了, 虽然软件开发有很多相似之处,但是 隔行如隔山,比如对于目前炙手可热的WEB 开发,我完全是外行。想什么都讲一点,结果 是什么都没有讲清楚,所以我得把培 训计划限定在我熟悉的范围之内。先定义一下系统程 序员 :从事操作系统内核、DBMS 、GUI 系统,基础函数库 ,应用程序框架 ,编译器和虚拟 机等基础软件开 发的程序员。这些培训同样适用于桌面软件和智能手机软件开发,我想对 其它软件开发也会有一些启发作用。 草莓酱定律与果酱定律。第一次在咨询的奥秘中看到草莓酱定律时,我觉得非常有意思。当 然这个系列也无法脱离草莓酱定律的魔法,利用这个系列中的内 容,我手把手的教了十多 个同事,收到了良好的效果。当有数百个读者读这些文章时,我不敢期望有同样的效果。不 过在果酱定律的鼓励下,我相信这个系列中至少 有部分内容的价值不会因为读者群的增大 而消失,所以最终决定写出来。 中心思想 软件开发的困难在哪里?对于这个问题,不同的人有不同的答案,同一个人在不同职业阶段 也会有不同的答案。作为一个系统程序员来说,我认为软件开发有两大难点 : 一是控制软件的复杂度。软件的复杂度越来越高,而人类的智力基本保持不变,如何以有限 的智力去控制无限膨胀的复杂度?我经历过几个大型项目,也分析 过不少现有的开源软件 , 我得出一个结论 :没有单个难题和技术细节是我们无法搞定的,而所有这些问题出现在一个 项目中时,其呈指数增长的复杂度往往让我们束 手无策。 二是隔离变化。用户需求在变化,应用环境在变化,新技术不断涌现,所有这些都要求软件 开发能够射中移动的目标。即使是开发基础平台软件,在超过几年 时间的开发周期之后, 需求的变化也是相当惊人的。需求变化并不可怕,关键在于变化对系统的影响 ,如果牵一发 而动全身,一点小小的变化可能对系统造成致命的 影响。 为了解决这两个问题,方法学家们几十年来不断努力,他们发明或改进软件的开发过程和设 计方法。系统程序员面对的基础软件通常都是大型的复杂的软件,其通用性也要求能容纳更 多变化,解决这两个问题也是系统程序员成长计划的主要目标。 文章特色 以引导读者思考为主。培训可以制造合格的程序员,却无法造就一流的高手。培训是一个被 动的过程,我们都知道在大学里听课的效果,我不希望本系列文章 的成为单纯的培训教材 , 相反我们要变被动为主动,最大限度的提高学习的效果。大多数情况下,我先提出问题让读 者去思考,让读者自己尝试去解决,能不能解决 这个问题不重要,重要的是在思考中提升 自己。如果读者在一定时间无法找到解决问题的方法,后面会有专业程序员的参考做法(或 许不是最优的) 。 以简单的例子讲述复杂的设计方法。我曾经制定一个宏伟的培训计划,结果失败了,原因是 我忘记了我在走路之前也艰难的爬行过。这次我吸取了教训,用简 单的示例讲述复杂的设 计方法,而且不对读者的背景太多假设。里面不会出现复杂的数据结构和算法,也不会引入 大型软件来唬人。即有足够的挑战 ,不会让读者感 到乏味 ;又一切尽在掌握之中,不会因 为挫折而打击积极

文档评论(0)

weiwoduzun + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档