程序员应对问题之道

长腿爸爸 2011-07-16 12:16:48

当遇到问题时,也就是离开舒适区的时候,我们一开始会感到不自在,或者感觉压力很大,甚至会感觉崩溃。这时我们就需要调整对问题的看法,并学会去如何解决问题。本篇与大家分享一下解决问题相关的一些内容。
优秀的人是擅长解决问题的,只有勇敢面对问题,才能发现我们潜能,唤醒我们问题解决的能力慧。面对问题的最好办法就是:对问题负责,勇敢地面对问题,开动脑筋解决问题。

问题域分析
________________________________________________________________________
1. 是共性问题还是个性问题? 问题分析第一步是确定我们遇到的问题是共性问题还是个性问题。我们遇到的很多问题其实都是别人已经遇到的问题,这时可以站在别人的肩膀上去快速设计方案和解决它。例如开发中的设计模式就是处理软件设计中遇到的设计问题而出来的一系列指导开发的应用设计方案。如果是全新问题,则会比共性问题难度大,但是更有挑战性,我们也可以介绍不同专业下的一些工具和方法来逐步制定解决方案,对于不确定结果的情况下,可以采用提出假设、快速验证的方式去寻找解决问题的方案。
2. 最好的信息来源是什么? 理解问题和提出解决方案都需要很多信息支撑,找到一些好的信息源可以很好的节省自己的时间,我们可以通过同事、朋友或者blog、网站、论坛等寻找有用信息来帮助决策和执行。在对信息收集、学习时,我们需要明确当前知道什么,不知道什么,以及下一步需要知道什么?
3. 问题相关的热点(hot spots)是什么? 通过信息收集以及对问题的了解,我们在框定问题后,可以用更好的方式来把问题和任务分组到不同的热点。通过热点,我们可以更好的收集、组织和提炼更多有用的信息。例如敏捷个人的热点如下:


4. 当前主要的问题什么? 对于问题陈述之后,我们需要通过多问几个"为什么"来发现表象后面的根问题。这也是我们在产品开发中做用户需求分析时必须要做的。在确定问题之后,有可能我们同时需要解决多个问题,即使是一个问题,由根问题也会蔓延出更多细问题,这时我们需要对待解决的问题根据当前上下文去划分优先级,找出主要问题。只有找对主要问题才能更快、更准确的去解决它。

5. 可能解决方案是什么? 如果是已经出现过的问题,我们首要做的就是分析一下以前是如何解决这个问题的。这时不应只限制于自己的经验,可以看看其他人是否解决过、或者在其他领域是否有类似问题解决的方法。 已有的方案也并不一定可以解决我们的问题,因为方案都是基于一定的上下文环境而制定的。这时我们需要找到隐藏在方案背后的"为什么"和"什么时候"来分析一下是否和自己当前环境一样。
6. 可以协调哪些资源来更好的解决这些问题? 当对问题和方案都有足够信息时,有时会发现自己并不是最适合解决这个问题的人,单靠自己并不能有效的解决这些问题,这时候我们就需要去寻找并协调外部资源一起来解决它。
7. 试验结果怎么样? 问题、方案和资源都明确之后就是马上去试验验证不同的解决方案,这时可能需要在监控下不断地调整方案,最终决策一种方案并很好的解决这个问题。

...全文
122 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2011-07-16
  • 打赏
  • 举报
回复
呵呵,虽说此文通俗易懂。但是在IT落后的中国,还是具有推广的价值。
长腿爸爸 2011-07-16
  • 打赏
  • 举报
回复
最近看的一篇文章分享给大家!!!
seven4634 2011-07-16
  • 打赏
  • 举报
回复
看看啊 路过啊
  • 打赏
  • 举报
回复
这时我想起了以前流行过的一篇文章《提问的艺术》,这篇文章写的也算是全面了,可是它处处是从具体事例的侧面来入手写问题,所以一点也不显得好像一个行政人员写的文章似地,而是非常有趣、非常专业的技术人事写的,即通俗又有很多只有专业技术人员才能说出来的术语,即全面又有很多具体的解决问题的办法。这种文章风格,我喜欢。

  • 打赏
  • 举报
回复
回到正题,说到招聘程序员,你要招聘那种各方面都貌似很会做人的程序员么?这种人最多只有平均水平。其实有点缺点、有些偏执的程序员,稍加引导才能成为优秀的程序员。
  • 打赏
  • 举报
回复
没有多少技术含量的文章很容易写得通俗易懂,因为这种东西千篇一律东拼西凑,所以这种东西一般都讲究个“全面”。

难得的是那种又有技术含量而又通俗易懂的,这种文章不需要“全面”,只要有一两点可操作性强的内容就能让人感到真正有效。
  • 打赏
  • 举报
回复
是的,看看每年考公务员的人数就知道这个帖子推广的必要了
话说除了那些有个性和当老板的,谁不想进国企啊
ohkuy 2011-07-16
  • 打赏
  • 举报
回复
我现在遇到问题先百度,
不行再闭关
  本书从hadoop的缘起开始,由浅入深,结合理论和实践,全方位地介绍hado叩这一高性能处理海量数据集的理想工具。全书共14章,3个附录,涉及的主题包括:haddoop简介:mapreduce简介:hadoop分布式文件系统;hadoop的i/o、mapreduce应用程序开发;mapreduce的工作机制:mapreduce的类型和格式;mapreduce的特性:如何安装hadoop集群,如何管理hadoop;pig简介:hbase简介:zookeeper简介,最后还提供了丰富的案例分析。   本书是hadoop权威参考,程序员可从中探索如何分析海量数据集,管理员可以从中了解如何安装与运行hadoop集群。   什么是谷歌帝国的基石?mapreduce算法是也!apache hadoop架构作为mapreduce算法的一种开源应用,是应对海量数据的理想工具。项目负责人tomwhite透过本书详细阐述了如何使用hadoop构建可靠、可伸缩的分布式系统,程序员可从中探索如何分析海量数据集,管理员可以从中了解如何安装和运行hadoop集群。   本书结合丰富的案例来展示如何用hadoop解决特殊问题,它将帮助您:    ·使用hadoop分布式文件系统(hdfs)来存储海量数据集,   通过mapreduce对这些数据集运行分布式计算    ·熟悉hadoop的数据和ilo构件,用于压缩、数据集成、序列化和持久处理    ·洞悉编~mapreduce实际应用时的常见陷阱和高级特性    ·设计、构建和管理一个专用的hadoop集群或在云上运行hadoop    ·使用高级查询语言pig来处理大规模数据    ·利用hadoop数据库hbase来保存和处理结构化/半结构化数据    ·学会使用zookeeper来构建分布式系统   如果您拥有海量数据,无论是gb级还是pb级,hadoop都将是您的完美解决方案。

7,765

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧