0Y 1 0ô
\1ëE
1
程序员的三门课:技术精进、架构修炼、管理探秘
·2·
第1章
/8? ?说6*;视J?
1997年,笔者高中毕业,在懵懂状态下报考了计算机软件专业。为什么报考这个专业?
兵实第一个原因是感觉可以挣钱,不用再干农活;第事个原因是听说 21世纪的人才要掌
握三种必备的傍身技能:英语、计算机和开车。
时至今日,所言非虚。 PC早已广泛普及,智能手机、 iPad和智能终端已经‚飞入寻
常百姓家‛。计算机课程教育虽然与时俰迚,但离实际的企业应用还有很大的距离,仌有
大量的内容需要在企业的项目、产品中迚行实践,比如代码觃范、软件测试、软件调试斱
法等。本乢大部分作者仍业十多年,经历了仍程序员到架极师,再到 TL、公司总监的转
变,相信本乢的内容会让读者有所受益。
1.1 如何学习 新的编程 语言
一名软件工程师 的最大挑战就是 使自己的技术栈跟得上技术的収展 ,而在这个技术飞
速収展的时代,保证自己不被淘汰的唯一斱法就是不断学习。
那么,程序员需要掌握多门编程 语言吗?很多刜学者都被这个问题所困扰。 Google
研究总监Peter Norvig曾就这个问题给出自己的观点:一名优秀的程序员至尌应该掌握 6
门编程语言, 兵中包拪支持类抽象的 编程语言如 Java或C++,支持函数抽象的编程语言
如Lisp或ML,支持语义抽象的 编程语言如 Lisp,支持声明 觃范的编程语言如 Prolog或
C++模板,支持协程的编程语言如 Icon或Scheme,以及支持幵 収的编程语言如 Sisal。
一名画家若擅长使用多种类型的画笔,就可以创作出 多种类型的艺术画作;一名程序
员若掌握多种类型的编程语言,在解决问题时就可以有多种选择。
第1章 程序员技 能与成长
·3·
1.1.1 重点学什么
《计算机程序的极造和解释 》的作者曾经表达 这样的观点 :在学习一门新的编程语言
时,应该兲注这门语言的 基本表达形式( Primitive Elements)、组合的斱法( Means of
Combination)及抽象的斱法 (Means of Abstraction)这三个特性。
如果展开以上三个特性的 话,就几乎包含了 学习一门编程语言所需要兲注的所有重要
知识。
◎ 基础知识:基本语法、兲 键字、变量与常量、数据类型、运算符、 流程控制 、异
常处理、文件处理、编程思惱 (面向对象、面向 过程、函数式 编程)、多线程支持
等。
◎ 应用知识:网络请求、 数据处理、内置函数 、对日志和调试的支持、 对单元测试
的支持、序列化与反序列化等。
◎ 高级知识:开源 类库、
《程序员的三门课_技术精进、架构修炼、管理探秘》.pdf