其實(shí)這個(gè)問題已經(jīng)被無數(shù)的人列舉過喷好、討論過翔横、吐槽過。但似乎很多人梗搅,特別是初學(xué)者/職業(yè)的入門者總是在問渣問題禾唁,而且自我感覺良好。如果非得要在大學(xué)加一門課的話无切,我特別希望就是“如何避免問渣問題“荡短。并且特別希望它成為必修課之一。
當(dāng)然哆键,有些人問問題其實(shí)并不是在問問題掘托,而可能是在諷刺、挖坑(知乎里特別流行)或者秀逼格籍嘹。我不是很擅長這些闪盔,所以本文不在這些領(lǐng)域班門弄斧弯院。
避免問愚蠢的問題
在提問之前,思考下這個(gè)問題是不是非常的愚蠢泪掀。盡管所有人(包括我)在內(nèi)都愚蠢過抽兆,并且每個(gè)人也并不是會(huì)通曉所有領(lǐng)域。但是問的問題過度弱智族淮,只會(huì)使得潛在的回答者覺得浪費(fèi)智商。
比如
spring的服務(wù)端口怎么配置?
常用工具的文檔都是公開的凭涂,非常容易找到祝辣。在問之前只要在搜索引擎敲兩下即可找到。也許你會(huì)說某個(gè)不存在的網(wǎng)站無法訪問切油。但Baidu雖然不太好用孕荠,但也并非完全用不了攻谁。除此之外稚伍,還有Bing,Stack Overflow戚宦,知乎个曙,微信公眾號等可以隨時(shí)查。有時(shí)問題的討論比問題的答案還要精彩受楼。值得去細(xì)細(xì)閱讀垦搬,摘抄筆記。也許20年前互聯(lián)網(wǎng)尚不發(fā)達(dá)艳汽,很難找到相關(guān)資料河狐。但是在201X年米绕,不計(jì)其數(shù)網(wǎng)站,眾多的大V不遺余力的解決各種問題馋艺,并且分享在網(wǎng)上义郑。一般性常見問題只要肯找,幾乎不可能找不到的雏赦。
當(dāng)然劫笙,如果一不小心“蠢問”了幾次芙扎,被恥笑了,也不用灰心喪氣填大。吸取經(jīng)驗(yàn)戒洼,下次再在提問前做好功課,慢慢提升就好允华。怕的是一直不思進(jìn)取圈浇,那么神仙也救不了。就算是在一個(gè)付費(fèi)的機(jī)構(gòu)靴寂,頻繁地向付費(fèi)的老師提蠢問題磷蜀,最終也會(huì)得到敷衍的回答而已。
特別值得留意的是有一種特別情況百炬。提問者自己的理解與其他人的理解差距太大褐隆,以至于自己感覺問題提出來會(huì)很蠢。但是提問者自己真的非常不明白剖踊。這時(shí)一定要將理解的矛盾點(diǎn)在問題突出出來庶弃。比如
好多人都說nodejs的性能非常高。但是據(jù)我所知nodejs是個(gè)單線程的東西德澈。單線程的東西怎么會(huì)跑的比多線程的東西更快呢歇攻?
這樣一下子就讓其他人理解,提問者是不太懂的“并發(fā)“的模型相關(guān)的概念和一些最佳實(shí)踐梆造。這樣的問題其實(shí)一點(diǎn)都不蠢掉伏。
但如果改成
單線程比多線程跑得還快?
估計(jì)就不會(huì)有人理澳窑。
避免問過于寬泛宏大的問題
我經(jīng)常被問這種問題
分布式系統(tǒng)怎么樣斧散?
java和python哪個(gè)好?
3年經(jīng)驗(yàn)?zāi)苣枚嗌傩匠辏?
在我看來摊聋,這些問題與下面的問題差不多
四川菜好吃嗎鸡捐?(我TM怎么知道你喜不喜歡吃?四川菜那么多種麻裁,火鍋箍镜、串串、燒白……)
買什么車好煎源?(你預(yù)算多少吧亍?你到底喜歡轎車還是SUV笆窒歇僧?卡車算車嗎?……)
出國好玩還是去海南好玩?(你能先給個(gè)“玩”的定義嗎诈悍?沒準(zhǔn)廣東某城市更好玩祸轮。)
提出這類問題,多半源自于思維的懶侥钳。也許你在買個(gè)東西時(shí)也會(huì)這么問适袜,對方銷售會(huì)玩命追問你,但這是有利益驅(qū)動(dòng)的舷夺。但是到了求教回答的時(shí)候苦酱,這種問題只能引起無盡的沉默。沒人知道提問者想干嘛给猾?如果真的要比較準(zhǔn)確的回答疫萤,就得通篇大論數(shù)小時(shí)才能說清楚。敢問哪位有這樣的閑工夫耙册?
過于寬泛的問題有一個(gè)特例,就是“彎彎繞問題”毫捣。
避免問彎彎繞的問題
很多人喜歡這樣問題详拙。
用人用過/熟悉XXXX嗎?
如果有人回答”使用過/接觸過“蔓同,才會(huì)繼續(xù)問真正的問題饶辙。
我用XXXX,這樣這樣配置了斑粱,結(jié)果出了那樣那樣的結(jié)果弃揽。為什么呢?
這么做在我看來大可不必则北。都要問問題了矿微,還要省敲字的功夫嗎?如果第一個(gè)問題沒人答尚揣,就不打算敲第二個(gè)涌矢,真正的問題嗎?對此快骗,我的建議是:如果你很確認(rèn)這個(gè)群/論壇娜庇,沒人懂你要問的,那就別問了方篮;如果可能會(huì)有人懂名秀,就直接上真問題。
此外藕溅,提問者也要為回答者著想一下匕得。如果是這樣
問: 用過/熟悉XXXX嗎?
答: 我曾經(jīng)用過
問: XXXX巾表,這樣這樣配置了耗跛,結(jié)果出了那樣那樣的結(jié)果裕照。為什么呢?
答: (不是很懂這么細(xì)節(jié)的地方调塌,是說不會(huì)還是就不理了呢晋南?思考中……)
這的確會(huì)搞的回答者小郁悶,然后“吸取教訓(xùn)”再也不理這種問題羔砾。如果回答者一上來就能判定自己可不可以回答负间,那么事情簡單直接的多。
避免問需要長篇大論才能把提問點(diǎn)說清楚的問題
另一個(gè)極端姜凄≌#“你不是說我問蠢問題嗎,我就把細(xì)節(jié)都說出來“态秧。
我用編程框架A董虱,版本B,在操作系統(tǒng)C的版本D上開發(fā)申鱼。
下面是我的三個(gè)源代碼愤诱。源文件X描述了模型1,Y文件描述了模型2捐友。還有一個(gè)Z文件是這倆的配置文件淫半。
----
源文件X
源文件X
源文件X
-----
源文件Y
源文件Y
源文件Y
-----
源文件Z
源文件Z
源文件Z
-----
那么當(dāng)我采用復(fù)現(xiàn)步驟a,b,c后,期望得到結(jié)果P匣砖;結(jié)果我看到了結(jié)果Q
請問為什么科吭?
這樣的結(jié)構(gòu)其實(shí)挺好的,只不過不是在問問題猴鲫,而是作為QE在向團(tuán)隊(duì)開發(fā)成員提Bug对人。
一般人看到這種到兩三行的時(shí)候就已經(jīng)吐了,更不要說回答拂共。
其實(shí)在問問題之前规伐,相信提問者自己都有一點(diǎn)點(diǎn)猜想。這樣就可以簡化問題匣缘。比如先把問題的關(guān)鍵點(diǎn)用1~2行文字寫一下(相當(dāng)于一個(gè)摘要)猖闪,然后再提供必要的細(xì)節(jié)。
又或者把代碼中的關(guān)鍵部分提取出來肌厨,寫一個(gè)幾行的小程序說明問題培慌,忽略那些不必要的步驟。這樣其他人更容易辨識(shí)出問題的所在柑爸。
也許為了解決一個(gè)問題回答者可能需要提問者補(bǔ)充更多的細(xì)節(jié)吵护。但是這些細(xì)節(jié)是雙方都覺得必要才提供出來的。一上來就扔出來嚇人非常不人道。
什么樣的問題是好問題
上面說了這么多不要問什么樣的問題馅而。那么什么樣的問題是好問題呢祥诽?簡單羅列一些。凡事沒有絕對瓮恭,大家看看就好:
- 簡潔的說明了問題的要點(diǎn)雄坪。用兩三行文字描述即可。如果要提供很多細(xì)節(jié)屯蹦,要點(diǎn)需要提到問題的最前面维哈。
- 給出問題的簡單的上下文。比如業(yè)務(wù)場景登澜,技術(shù)場景等阔挠。但不要說得太復(fù)雜。
- 給出了問問題之前的一些準(zhǔn)備工作脑蠕。比如查了什么地方是怎樣說的购撼。必要的復(fù)現(xiàn)步驟大概有哪些。但是必要時(shí)才給出谴仙。
- 語文要過關(guān)迂求。提問的文字寫完后,最好稍微自己看一下狞甚,去掉一些容易產(chǎn)生誤解的錯(cuò)字(比如因?yàn)槠匆舸虺鰜淼耐粼~锁摔;是/否這種邏輯詞是否寫反了等)廓旬。如果你是用英文在Stack Overflow之類的地方提問哼审,最好也要好好檢查拼寫語法,必要時(shí)用word的檢查功能矯正一下孕豹,避免被老外吐槽涩盾。
總之一句話,將心比心励背。如果你問的問題春霍,別人用來你問你自己,你愿意回答叶眉,那么就是個(gè)說得過去的好問題址儒。如果覺得本文還有點(diǎn)參考價(jià)值,不妨在問下個(gè)問題之前檢查一下衅疙,看看是不是回答的問題多了一些莲趣,內(nèi)容豐富了一些。