个人性格与软件开发

Categories: Development Notes; Tagged with: ; @ October 6th, 2008 1:07

总结自:

The Pragmatic Programmer From Journeyman to Master[程序员修炼之道]Chapter 1
Code Complete 2 [ 代码大全 ] Chapter 33

1. What distinguishes Pragmatic Programmers?

  • An attitude, a style, a philosophy of approaching problems and their solutions.
  • Think beyond the immediate problem.
  • Take responsibility for everything they do.

2. 态度与性格

  • 谦虚: 承认自己智力有限并通过学历来弥补, 你会成为更好的程序员. 你越是谦虚, 进步就越快.
  • 诚实: 不是高手时不假装时高手. 乐于承认错误. 力图理解编译器的警告, 而非弃之不理. 透彻理解自己的程序, 而不要知识编译看看能否运行. 提供实际的状况报告. 提供现实的进度方案, 在上司面前坚持自己的意见.
  • 懒惰: 编写某个工具来完成烦人的任务, 如果这个工具最终节省了事件, 无疑时最具产值的偷懒形式.
  • 求知欲: 见5

3. 习惯

  • 好习惯很重要, 因为程序员做的发部分事情都是无意识完成的.
  • 初涉某事时, 就应端正态度来学. 开始做事情时, 积极思考, 轻松绝对做的好坏. 干了一段时间后, 就会习以为常, 习惯的力量开始起作用.
  • 如果没有养成最有效的习惯, 就试着去培养好习惯, 有了新习惯, 坏习惯自然会消失. 但是不能用”没有习惯”来代替”坏习惯”.

4. 规范与纪律

  • 向刚毕业的计算机科学学生很难解释为何需要规范和工程纪律. 一些具有创新精神的程序员将各种标准和规范堪称束缚其创造力的东西, 事实正好相反.
  • Form is liberating [形式就是解放]
  • 坚持代码规范, 才能真正的交流与合作. 这正优秀的程序员之道怎样同别人融洽的工作和娱乐, 代码便于看懂是对团队成员的要求之一.

5.求知欲与知识资产管理

  • 与其他行业相比, 软件开发行业的经验比书本知识价值更小. 在其他行业中, 今天工作肿的收获很可能有助于明天的工作. 在软件行业中, 如果不改掉使用先前编程语言的思维模式, 活着不放弃在旧机器上能用的代码性能优化技术, 你的经验还不如没有. 如果你不能与时俱进, 经验不但不会有所帮助, 反而是个累赘.
  • 知识资产管理: Inverst regularly, Diversify, Manage risk, Buy low, sell high, Review and rebalance.
  • Goals: Learn at least one new language every year, Read a technical book each quarter, Read nontechnical books too, Take Classes, Participate in local user groups, Experiment with different evironments, Stay current, Ger wired.

6.向高手看齐

  • 第一级: 入门级    入门者会利用某语言的基本功能, 能够编写类, 子程序, 循环和条件语句, 会使用语言的许多特性;
  • 第二级: 中级       中级程序员已经度过入门期, 能利用多种语言的基本功能, 并会得心应手的使用至少一种语言;
  • 第三级: 熟练级    熟练级的程序员对语言或环境有着专业技能. 这一级的程序员也许能精通J2EE的盘根错节. 这些程序员时所在公司的活宝, 很多程序员再也不能超过该层次.
  • 第四级: 技术带头人  技术带头人具有第三级的专业才学, 并明白变成工作中只有15%用来和计算机交互, 其余都是与人打交道的. 程序员一般只花30%的事件单独工作, 与计算机交互的事件则更少. 技术带头人会为人写代码, 而非为及其. 真正高手所写的代码, 像水晶一样晶莹剔透, 还配有文档, 他们不会浪费其宝贵的脑力, 去重新阻止用一句注释救恩那个说清楚的某块代码逻辑.

再厉害的编码者如果不重视可读性, 通常只能呆在第三级. 有人之所以写出难以看懂的代码,主要是因为其代码质量太差, 他们没有了解透彻所写的代码, 自然无法使之易读.
当初学者或中级程序员不是错, 当熟练级程序员而非技术带头人也无可厚非. 但如果之道自己该如何改进后, 还总是在初学者或是中级程序员阶段徘徊, 就是你的不对了.

<->



// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.