加载中…
个人资料
华育国际
华育国际
  • 博客等级:
  • 博客积分:0
  • 博客访问:19,734
  • 关注人气:16
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

华育国际|从技术到人生, 程序员之路!

(2017-01-04 15:33:19)

  关于提问,你有没有碰到过这种情况,有人拿着一个问题跑来,大概交代了一下他想解决的场景,然后描述了他的思路,然后这中间碰到一个障碍,就问你怎么解决这个障碍。

  面对这类具体的障碍问题,我经常很难回答。因为即使是同一个场景,不同人会有不同的思路,而也许我的思路就不会有这样的障碍。比如:你想去一个十公里外的地方,对方也许会问你怎么套马鞍的问题,这时你就很困扰,因为你的思路是坐车或开车啊。这就是一个针对技术人员面对同一场景问题,所能选取的不同技术方案可能处在不同的时代背景下的类比。

  所以,关于怎么提问我觉着本身就是一个好问题。

  在国内的技术社区比如:CSDN 或 SegmentFault 都有技术问答社区。我跑上去浏览过几次,基本上每个问题的浏览量寥寥十几二十,回答更是少的可怜。上面的问题大部分都是类似下面两种模式:某某出错了,怎么办?

  如何针对某某封装一个库?

  某某可以是一种具体的技术或框架,这两种提问模式代表了两个方向,都让人无法回答。第一种太模糊而无法回答,而第二种则太庞大则不愿回答。

  如果你能绕过这两个提问的大坑,提出一个具体的问题,那么算是前进了一大步。但具体问题也有一个陷阱,就是前面套马鞍那个例子。也许有人回答了你怎么正确的套马鞍,但你依然可能走在落后的道路上。所以就具体问题提问,除了问及手段,还最好跟上你的目的和你就此目是怎样提出的手段,然后才走到了这一步的障碍,让你不得不在此提问。

  具体的问题是关于「术」的问题,一般都是解答题。表达清楚你的解答目的,也许你的困扰在高手那里根本就不存在。你只是走了一个弯路而已,这样不仅绕过了障碍,还获得了一条近路,是最有意义的提问。

  而另有一类具体问题,叫做答案藏在问题中,属于无法提问的问题。说得比较抽象,我举个例子:曾经碰到过一个线上问题,系统间隙性出现超时,只有重启能解决。而且出现的很无规律性,不和什么流量之类成正比,就是莫名其妙偶然出现,然后不能恢复,只好重启。曾经困扰了很久这个问题,但这类问题虽然很具体,但你只有一个现象,你甚至找不到一个好方式来描述这个问题。

  如果我就把上面这段描述的关键现象,偶现超时并结合使用的具体技术,如:JVM配置、开源框架配置和业务场景一起抛出来问人,你觉得有人能回答吗?这类就属于答案藏在问题中的问题,唯一的办法只能是找和你一起共事的同事从各人不同的思维角度去分析、抽丝剥茧。当你能找出提问的方式,基本答案也就出来了。

  当我定位到上面现象的根源是服务线程池的配置有误,结合在某些慢业务场景下会引发连锁超时。这时的问题是怎么配置服务线程池才最合理,这个问题本身就简单到完全无需再问了,自然就有了答案。

  这篇与其说是文章,不如说是一个关于如何提技术问题的提问指南,而且把写文档当作写代码的模式,不断提交新的 Fix 和 Feature,并提供完整的修订历史,这就是我所推崇的方式和口味:“像写代码一样写文档(规范),像写文档一样写代码(可读)。”

  具体提问之术的指南,大家可以去仔细阅读 Eric 的文章,最后归纳下其关于提问之术的基本理念:

  草率的问题,只能得到一个草率的答案。

  你得到的答案的好坏取决于提问的方式和开发答案的难度。

  只索取而不愿思考和付出的提问者,要么什么也得不到,要么只会得到 RTFM或 STFW。

  关于「道」的问题基本都是选择题,比之于「术」更抽象的选择题。这类问题反而很少有人提,没人提多半是思考的人也少,随波逐流的多,但这类问题实际要更重要的多。

  这是另一个关于投资价值观的生动例子。

  大部分问题都是从一个选择题开始,才是解答题,而很多时候我们都忽略了选择题,因为围绕你的环境里通常有一个默认选择,这就是随波逐流。而默认选择一般都不是好选择。

  关于提问之道就是给自己的选择题,这类问题可以提出来,正如李笑来在文中所说:“听听大多数人的话,参考少数人的意见,最终自己做决定。”这类问题的回答者只有自己,也只能是自己。无法逃避,逃避是一种不选择,但实际也是一种选择。

  惑

  在自己的成长路上,其实我碰到过好多问题,所有的问题都是我们的困惑。遗憾的一点是,我没能把这些问题记录下来。在工作的前五年我并没有开始写博客的习惯,所以也就没能记录下这些问题或困惑,以及我是如何跨越这些障碍的,如今再来回忆,只剩下些零星的片断。

  所以,这就是为什么一开始就要养成写作记录的习惯呢。有人说我没东西可写、没有积累也写不出什么来,而且文笔也不好。这是一个误区,至少你可以从记录问题和解决问题开始写起,不断去积累并留下一些东西。比如,对于程序员,你总会碰到各种问题,那么我就把这些问题按一种模式记录下来也可以,比如像下面这样:

  问题的上下文

  问题的具体描述

  问题的解决思考和思路

  问题的解决方案和具体技术或办法

  问题解决后留下的思考或其他延伸的疑问

  提到了除了积累价值,也要传递价值。这篇文章发出去后,有人评论说:“就是除了会做,还要会吹嘛?”,很多程序员对此评论表示赞同。其实自吹自擂乃下策,更好的方式是:“Share what you learn(分享你所学到的)”。可以是一个问题、一个观点或一个认识,任何你学到的东西。

  这就是我所认同的传递价值和提升价值的好方式。...

  所有的成长过程都是从提出一个问题开始,并找到了答案,最后融入自身的价值观,完成下一次更好的选择,周而复始。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有