個人發覺有一些邦友對"提問",會有一些技巧上的迷失.
這篇陳皓的文章,很傳神的描述.
因為是簡體字的,也許有些邦友看不習慣,以下會貼出轉的.
原文鍊結在此:http://coolshell.cn/articles/10804.html#more-10804
X-Y Problem
對於X-Y Problem的意思如下:
1)有人想解決問題X
2)他覺得Y可能是解決X問題的方法
3)但是他不知道Y應該怎么做
4)於是他去問別人Y應該怎么做?
簡而言之,沒有去問怎么解決問題X,而是去問解決方案Y應該怎么去實現和操作。於是乎:
1)熱心的人們幫助并告訴這個人Y應該怎么搞,但是大家都覺得Y這個方案有點怪異。
2)在經過大量地討論和浪費了大量的時間后,熱心的人終於明白了原始的問題X是怎么一回事。
3)於是大家都發現,Y根本就不是用來解決X的合適的方案。
X-Y Problem最大的嚴重的問題就是:在一個根本錯誤的方向上浪費他人大量的時間和精力!
示例
舉個兩個例子:
Q) 我怎么用Shell取得一個字符串的后3位字符?
A1) 如果這個字符的變量是$foo,你可以這樣來 echo ${foo:-3}
A2) 為什么你要取后3位?你想干什么?
Q) 其實我就想取文件的擴展名
A1) 我靠,原來你要干這事,那我的方法不對,文件的擴展名并不保證一定有3位啊。
A1) 如果你的文件必然有擴展名的話,你可以這來樣來:echo ${foo##*.}
再來一個示例:
Q)問一下大家,我如何得到一個文件的大小
A1) size = ls -l $file | awk ‘{print $5}’
Q) 哦,要是這個文件名是個目錄呢?
A2) 用du吧
A3) 不好意思,你到底是要文件的大小還是目錄的大小?你到底要干什么?
Q) 我想把一個目錄下的每個文件的每個塊(第一個塊有512個字節)拿出來做md5,并且計算他們的大小 ……
A1) 哦,你可以使用dd吧。
A2) dd不行吧。
A3) 你用md5來計算這些塊的目的是什么?你究竟想干什么啊?
Q) 其實,我想寫一個網盤,對於小文件就直接傳輸了,對於大文件我想分塊做增量同步。
A2) 用rsync啊,你妹!
另外還有三個例子:
你試圖做X,并想到了用Y方案。所以你去問別人Y,但根本不提X。於是,你可以會錯過本來可能有更好更適合的方案,除非你告訴大家X是什么。
有些人問怎么做Y,但其它他想做的是X。他問怎么做Y是因為他覺得Y是最好搞定X的方法。 於是大家不斷地回答“試試這個,試試那個”來幫助他,而他總是在說“這個有問題,那個有問題,因為……”。基本不同的情況,其它的方案可能會更好。
X-Y Problem又叫“過早下結論”:提問者其實并不非常清楚想要解決的X問題,他猜測用Y可以搞定,於是他問大家如何實現Y。
本以為是老調重彈
沒想到文章的日期還蠻新的
X-Y Problem 的另一個極端是「雙手一攤」型
就是「我的問題是 X,請問怎麼解決?」
這類問題在 iT 邦幫忙也常看到
如何取得一個比較好的平衡點
發問者和回答者多站在對方的角度想一點
都是可以努力的方向
寫著寫著
結論怎麼有點像八股作文
最近在找X網站招募兵到Y空間,這個因該叫做雲端離線下載
chingfeng提到:
招募兵
是騎兵還是步兵...
混搭兵種!