1. 程序员是如何写出让自己满意的代码的 怎样评定一名软件开发人员?这是一个颇为奇怪的问题 。
现在已经有了很多的理论和形式来做这件事 , 人力资源部门也试着帮你管理和反省自己的行为 。然而 , 怎样才是一个伟大的软件开发人员 , 在今天 , 你该怎样发展你的职业生涯?以下是我评定团队中软件开发人员的“军规” 。
按照这些技巧和规则 , 你可以改善你的现状 , 由一个优秀的程序员 , 成为一名伟大的程序员 。1、时间花在写精彩的代码上 这里说的不是数量 , 而是质量 。
对此 , 一种歪曲是:要数量 , 也要质量 。你也许会很多次的遇到以下的两种情境: 情境A:你有一个发疯似的能写代码的程序员 , 事情似乎在进展中……然后 , Bug开始不断出现 , 你们也不知道为什么 , 好像永远补不完 。
补完十个 , 又出来五个 , 现在你手里的 , 就是一大堆代码…… 情境B:你现在有一个看起来很聪明的程序员 , 你面试他的时候 , 他似乎无所不知 , 能把理论说的头头是道 。然而 , 你留给他三个任务 , 三个星期以后 , 他还在做一些三天就该干完的事 。
这下该你困惑了 , 他这么聪明 , 他知道generics(详见备注) , 多线程的一切事情 , 甚至还能给祖母级的人讲解什么是指针 , 让老太太兴奋的想去编程 。可是——怎么什么都没完成? 于是 , 在梦境中——你写出了堪称伟大的代码 , ——伟大的代码是伟大的程序员写出来的 , 他睿智 , 明白代码的真正品质所在 。
写代码就像托尼?霍克在玩滑板一样自然优美 , 看上去就令人愉快 。这些程序员以让你眼花的速度搞定一切 , 他们知道每个问题应该处理多长时间 , 也不会追捧寻觅所谓的世界最好解决方案 , 弄很多线程很多层来写一个简单的游戏 。
他们写的程序没有Bug , 因为写的时候自己测试过了 , 在睡觉时也在写代码说的就是这样的人 。这些程序员太宝贵了 。
2、阐明问题 可以明确的是:即使有问题暂时处理不了 , 还有成百上千的方法去解决 。有些人反应很迅速 , 很快就能提出多种解决方案 。
然而 , 一个伟大的程序员应该在做出行动以前清晰阐明问题——创建文档或用白板表达出来 。他们写邮件给项目的管理者 , 这样表述:“我想和你说说我是怎么理解这个问题的 , 我们能这样处理吗?”然后他们就会动手给你多种方案 。
对 , 这些人明白自己看问题和阐明立场的方式 , 而这理解方式大概不会是问题创建者所想要被理解的 。请牢记这就是关键所在 。
一名伟大的程序员在尝试解决问题以前 , 一定要完全的理解它 。你百分百搞明白了吗?没有?百分之九十九?——回去再多问些问题 , 确保百分之百理解清楚了 。
3、怎样着手解决问题 那一搞明白了问题 , 就开始动手写代码?错!一个伟大的程序员应该按照规划 , 开始思考面临的多种选择 , 基于问题开始考虑最好的解决方案 。我觉的这像一场国际象棋比赛 。
你知道每个棋可以怎么走 , 知道所有的游戏规则 。但是你会马上走棋吗?不 , 你要审时度势 , 制订计划 , 紧盯对手 , 分析其通常的做法 。