我是如何解决问题的

这个题目很难写的。 每个人的思考问题的方式都不一样,即使同一个人对待不同问题或者同一个问题不同场景也会有不同的策略。 但是有没有通用的解决方案?

问题本来是抽象的, 一般的, 其答案也是一般的,不会对待特定问题直接给出答案,但是对于问题有指导作用, 废话一大篇。

Polya 在书中给出了一个解题框架。

1. 理解题目

  理解什么是未知量,什么是已知量,什么是条件。未知量代表什么? 能用符号或者图表示出来吗?

是否可以用自己的描述清楚? 从而理解问题是什么,对问题有一个总体的认识。   

2. 制定计划

对于如何解这道题目,给出一个思路或者规划,这是最有挑战的一部分。

对于题目,可以找出已知与未知之间的联系? 如何找,这是一个技术活。
Polya在书中给出了自己的一些间接,简单直观有用。  从自己已有熟悉的题目入手,熟悉的定量入手,或者曾经做过的某些类似的方面入手。

如果还找不到联系,尝试从另外的角度复述这个题目? 试着从定义入手?这道题目的更普遍化的题目是什么?
 更特殊的题目是什么? 能转换一道熟悉的题目? 题目已知条件可以 改改吗? 未知条件可以改改吗? 需要引入其他辅助的元素? 你用到所有的条件吗?
用到所有的数据吗?

    

3. 执行计划。

   
执行方案,保证每一步都正确。你能证明每一步是正确的吗?如果不一样,可以是计划出错还是执行问题?

4. 检查和反思。

检查题目的正确性。 题目的每一步解答是否正确? 结果是否容易验证? 特殊情况(特殊值)是否也成立?
一般情况是什么样子?

反思就是经验教训总结。题目是不是还有别的思路,别的解法,尝试看看。比较之间异同? 哪一个更好一些?更直观简单不出错?

这个题目有什么结论,可以为以后利用上? 这个题目的解答,分析,思路,有什么可以借鉴的? 这个题目的解答是否还可以优化?
是否可以替换掉冗余或者复杂的部分? (这就是举一反三, 如果读书的时候可以做到这一点,或许就接近学霸啦:) )

感觉Polya这个方案很容易推广到一般问题的解决框架。

1. 理解问题。
     什么是问题?
问题就是实际和期望之间的差距。

了解什么是期望, 目标,需求?能具体吗? 什么是现实情况? 中间的差距是什么? 有多大?

Beyond what you see。 了解问题的深层次原因。

问题不是凭空开的出来的。 问题是从哪里来的?为什么会有这个问题? 问题对应的场景是什么? 它的上下文是怎样?
定性是什么?定量又有什么?

利益分析, 问题从谁哪里来的? 问题没有解决谁会受益? 或者受害? 如果没有解决,谁会受害或者受益?

如果没有理解问题,就直接执行或者关注细节,如同没有看病没有诊断,直接开药。但是这一步往往会被不经意的忽略掉。

2. 制定计划。

寻找思路,制定规划。这个都是最关键的一部分,一个挑战。不同问题,其解不一样,很难有一个统一的思路。当然对于丰富多彩的世界,千奇百怪的问题,不可能有一个one-to-all
的银弹。对于这个时间点的自己,很难系统的给出一个方法了,或许是孜孜不倦的追求了。

总结自己常用的方法:

比如: 穷举与启发。 计算机中常用到的。穷举问题域所有可能肯定可以,但是耗时耗力成本高。启发可以快速解决,但是难度大。
比如家里东西不见,可以大扫除,一定容易找到;也可以根据判断再那里丢的,什么时候丢的?期间自己呆过那些地方? 一般很大概率可以找到。

比如: 对比。 对于修理东西,不管软件硬件这个方法都可以尝试。 一个好的,一个坏的。
二者之间一个一个比对,局部替换,总归可以可以找到问题。 比如修机器,比如配置文件出错了。

比如: 类比。 对于类似的问题,类似的问题自己是如何解决的? 某些属性是相似的,其他方面是不是也可以借鉴呢?

比如: 自治。 对于大问题,打碎。各个击破。 比如搭建一个环境。分块,分层解决。

比如: 抽象和特化。 对于问题的一般描述是什么?这个问题一般有什么思路? 对于这个问题的特殊情况,有什么借鉴的思路?

   尝试,反证法,没有任何头绪,可以反问是什么阻滞,妨碍了问题的解决。

尝试,迭代。 每次做一部分,增量完成。

其他模式:

模式1: 散弹聚焦。迭代

模式2: 黑盒白盒灰盒子(对比,类比)

模式3: GIAF(Google is a Friend)

模式4: RTFM (Read the f*nk manual)

模式5: 咨询他人。 身边有经验的或这方面专家,或者社区寻找帮助。

 对于一般那的技术问题,google is your
friend 或者 read the f*uk manual,get info from community。
可以解决大多数的问题,或者得到思路。 

3. 解决问题。

按照计划去执行。往往会有同计划不一样的地方? 实际情况和期望的不一样? 那么就应对这些变化? 或者有风险,应对风险。
(怎么和PMP一样呢?)

读万卷书,行万里路。 没有实践压根不知道计划的好坏?
就是在牛逼的理论没有检验,只是停留在口头。遗憾白搭

4. 检查,经验教训总结。

对于问题本身是否解决了? 么有解决,从新迭代一次。

解决了,经验总结,那些做的好? 可以保留借鉴。 那些做的不好的? 值得提高。

对于问题本身解决了,有哪些可以值得发扬广大,乘胜追击,扩大战果? 那些可以优化? 那些可以更好?
二度定律(见到的规律都是另外一个定律的一种特殊情况)

对于解决问题的思路, 有什么可以借鉴的? 有什么可以学习的? 有什么和以前的不一样?

其实如同生活里面的走路。 去哪里? 怎么走? 走过去? 如果走歪了走偏了,如何发现和纠正?
走完后,给下一次走路经验教训总结。

解决问题依赖的因素。

1. 态度和动力。

   问题不能回避,否者同样的问题会出现。 根据自己的生活经验,这个我坚信。

2. 知识储备

巧妇不能无米之炊。比如没有计算机知识,去fix 一个bug? 没有医学知识,去看病?

3. 心智

逻辑推理,如何提问,独立思考。

4.  个性

自信与坚韧。

对应无其不有的世界,这个方法对于不同的领域有着不同的变种,但是感觉有着某种类似:

比如1: 如何fix bug?

1. 重现问题。

2. 定位问题。

3. Fix bug。

4. 回归测试。

前两点就是理解问题,第三点就是制定计划,解决问题。 第四点就是经验教训总结。

比如2:如何PMP中的一般项目管理。

项目启动章程,计划(计划说明说3个基准),执行,监控(计划与实际比较,采取措施纠正),结束(经验教训总结)。

一切皆项目,这个也可以看做解决问题的一个一般框架。

项目章程对于理解问题; 项目的计划对应于解决问题的计划,这个同样也是难点; 执行与监控,这个与问题执行也一样的,PMP更将强调变化。
结束与反思,经验教训总结。

按照对于问题的定义,项目也是一个大问题。但是和问题解决思路是一样的。

比如3: IT中敏捷,scrum

Planing meeting1 ---需求的定义--->对应于理解问题----》对应于项目管理的章程

Planing meeting2---任务分解,估算时间,分配给具体的人-----》对于项目管理的计划阶段-----》解决问题

daily Meeting-------执行任务报告状态和风险管理---->项目管理的执行和监控

review meeting----- 对于执行的结果,是否满足需要----》项目产品的经验教训

retrospective meeting----对于执行的过程中的反思---》经验教训

迭代iterate -------对应于增量开发。

比如4:戴明环。

计划,执行,测量,处理

也就是定义问题、制定计划、执行、反馈处理==》再次迭代

比如5:胡适的“ 大胆假设,小心求证” ==》 对应计划和执行,迭代。

比如6: 自己最近自己解决的一个问题安装R环境:

比如7:最近公司软件质量问题。 开会说是bug比较多,但是么有 任何对于此问题的深刻理解,就直接给处方。忽略掉第一步。

应该怎么做?

软件质量有问题? 具体是什么样的情况啊?

是用户不会使用? 还是可用性比较差? 还是实施没有实施好? 还是用户业务有变化?
是bug数量太多,support的速度跟不上?还是新feature,support 的知识没更新?

是测试覆盖率跟不上? 还是测试时间不够?还是测试技能不够? 还是测试对于用户如何使用软件不清楚?还是测试对于领域知识不够?
还是build‘不稳定?

是开发的质量不好?历史原因,代码维护不太好? team 之间沟通不够? 还是技能不够?还是第三方依赖或者外部依赖不对? 还是开发节奏太快,开发赶时间?
还是开发流程太复杂?还是设计太难?

还是解决方案太差,没有抓住用户问题?

还是发布速度太快,其他方面没有跟的上而导致的?

还是大家的态度问题?是因为协作,沟通问题?还是对于产品不看好?激励不到位?

这些bug分类吗,2/8原则找到最主要的?

对于问题没有理解,期望找出好的办法,有针对性的办法?
如果生病不去诊断,蒙着眼睛抓药。这样企图康复的概率有多大?

对于人生,也一样,如果没有目标? 那一切也无从谈起.

我是如何解决问题的

时间: 2024-10-29 19:10:29

我是如何解决问题的的相关文章

我是平民:一个平民怎样投资房产致富

我反问:"房价是不是没有跌7你没有告诉我你要买房,否则我会让你再等两个月." 后来房价上涨速度非常之快.其实不到半年,他的房价涨幅已经超过了税款的额度. 我看透明售房系统 又如透明售房系统.杭州向上海学习,于2004年下半年启动了透明售房系统,推动新建楼盘的公平销售.挤走房产投机者.一般人看来,这个系统必定给消费者以公平的机会,但是实际上并不完全是这样的. 我一直关注下沙的小户型房产.2005年元旦.下沙的"十六街区"即将开盘,我收到房产公司的邀请专门去听了他们的楼

Python 自动刷博客浏览量

哈哈,今天的话题有点那什么了哈.咱们应该秉承学习技术的角度来看,那么就开始今天的话题吧. 思路来源 今天很偶然的一个机会,听到别人在谈论现在的"刷量"行为,于是就激发了我的好奇心.然后看了下requests模块正好对我有用,就写了一个简单的测试用例.神奇的发现这一招竟然是管用的.那还等什么,开刷咯. 前奏 思路很简单,就是一个发送请求的实现,就可以了.代码如下: headers = { 'referer':'http://blog.csdn.net/', 'User-Agent':'M

聊聊成为大神路上的过程(决定伟大水平和一般水平的关键因素,既不是天赋,也不是经验,而是[刻意练习]的程度,要多看别人的代码)

每个人都在成为大神的路上,只不过有的人在走,而有的人在跑. 写在前面的话 在开始正文之前我先跟大家分享一个我身边的例子.我有两个朋友,A和B.B从高一开始打dota,A从高二开始,到高中毕业的时候,A已经是一个 2100分的大神级别的人物,而B只有1200分而已.为什么A打的时间比B短,而水平却比B高呢?是天赋?是智商?似乎都不是. 我对两个人还是比较了解的,虽然同样是打dota,但是A和B之间有着很大差别的.A除了像B一样打dota之外,会看一些成名已久的大神的教学视 频,会看自己打dota的

<转>如何改变讨好型人格 | 你根本不需要讨好任何人

在我过去二十多年的生命里一直是一个“讨好者”. 我总是活在别人对我的期待中,我总是不停的追逐着别人对我的认可,我总是像个卑微的奴才一样去满足别人的需求. 但就和大多数的“讨好者”一样,我们越是寻求别人的认可,越是讨好别人,就越是会被别人不当一回事,越是会被别人看不起,越是会觉得自己一文不值. 在几年前我就已经意识到,做一个“讨好者”是对自己最大的伤害,也是对自我价值.对自己的生命最大的践踏. 我们没有必要去讨好任何人,我们凭什么要对别人低声下气,我们何必为了别人而活着?我们为什么就不能高傲的理直

Presenting view controllers on detached view controllers is discouraged <CallViewController: 0x14676e240>.

今天在优化app时,发现程序出现这种警告:“ Presenting view controllers on detached view controllers is discouraged <CallViewController: 0x14676e240>. ” 首先说明一下,我是在判断无网络时,要弹出一个提示框时出现的这个问题 在网上查资料时,又说是当前控制器已present一个视图,再present一个视图时,就会出现这个错误.但是在我的项目中当前页面根本就没有第二个present了,因此

程序员成长过程

源自:伯乐在线/PleaseCallMeCoder 每个人都在成为大神的路上,只不过有的人在走,而有的人在跑. 写在前面的话 在开始正文之前我先跟大家分享一个我身边的例子.我有两个朋友,A和B.B从高一开始打dota,A从高二开始,到高中毕业的时候,A已经是一个 2100分的大神级别的人物,而B只有1200分而已.为什么A打的时间比B短,而水平却比B高呢?是天赋?是智商?似乎都不是. 我对两个人还是比较了解的,虽然同样是打dota,但是A和B之间有着很大差别的.A除了像B一样打dota之外,会看

与领导薪酬谈判记

本人从事IT工作.一直高标准要求自己的.那就是努力学习,努力工作,坚持不懈.到最后,成了很资深的工作人员了,得到整个单位人的尊重.当然,我也没骄傲,还有继续努力着. 最近竟然发现薪酬出现了严重不公平问题.我一惯不太注意这个的.最近忽然发现的,而且发现这种事已经持续一年的时间了. 于是去找领导谈判.大头竟然叫了管薪酬的两个人等着我.去了以后,开始了一场唇枪舌箭的谈判.我的大脑也是高速运转,以下是部分内容: 你看这个合同,这其中我干大部分的活,而他们只干一小部分,实际上是我养了两个人. 领导:这个,

谈谈程序员解决问题的能力

谈谈程序员解决问题的能力 解决问题的能力,程序员立业之本. 一般写文章我不会特意去写,而是有感而发的时候刚好又有时间我就会去写写文字.本想推些技术文章的,但写技术文章又很耗时,写得太浅显又没有技术含量,写多了恐怕大家也没耐心去看(不就是懒么,给自己找这么多借口).公众号这么多,你又能看的了多少呢?小巫这个公众号不会像某些网红那样每天都想破脑袋去写文章,也不期望这个公众号能给我带来什么,毕竟以我的尿性我让我每天写鸡汤文我自己都会恶心.好了,进入今天这篇文章的主题,跟大家谈谈程序员解决问题的能力.

对“善于提问,主动解决问题”的程序员的吐槽

凡事都问并不意味着好学,也不是善于交流,更不是主动解决问题.在发问之前没有经过思考的,没有尝试通过百度.谷歌去独立解决的,都是对被问者时间和精力无耻的索取.所以当我拒绝回答你的问题,而是委婉的让你去问度娘时,我的意思是“你是三岁小孩儿啊,这样的事都来烦我!”.而对那些将此作为优点,标榜为”善于提问,主动解决问题“而大加赞赏的领导来说,我只能呵呵了. ——我是在谈管理