這樣提問,大牛才會為你解答(提問的智慧)

yes的練級攻略發表於2021-01-19

在職場上、在生活中提問無處不在,有時我們扮演著提問者,有時我們扮演著回答者。

有些人可能覺得不就是提個問嘛?有啥難的?我很認真的告訴你,提問是一門技術活。

如何正確地提出問題,是一個至關重要的技能。

在寫公眾號之後,有很多同學會私信我,問我各種問題,作為過來人,我當然懂得那些初入行的程式設計師們的困惑,我也經歷過那個階段。

在入行初期,我也會問出一些讓人難以回答的問題,後來經過社會的毒打,我才漸漸地懂得提問的藝術。

今天我就想談談程式設計師們應該如何提問,有些觀點可能聽著有點刺耳,但這就是現實。

錯誤的提問

提的問題其實只要簡單的用下搜尋引擎就能得到答案。

比如有人問:什麼是區塊鏈?

很難嗎?身為程式設計師搜尋引擎都不會用?

還是你已經懶到需要別人把:

  1. 開啟搜尋引擎

  2. 輸入關鍵字

  3. 點選搜尋

  4. 點選答案

這幾步驟幫你做了,然後再發你連結,你直接點就行了?

再比如一些程式碼錯誤,搜尋引擎隨便一搜即可得知答案,比如:

前人栽樹後人乘涼,你偏不在那棵樹下待著,拉著別人讓他當場種樹。

我從來沒勸退過學程式設計的,看到這種的我要勸退你了。

搜尋引擎都不會用寫什麼程式碼?

你不適合寫程式碼,你沒有程式設計細胞,你適合做少爺。

所以提問之前至少要先自己搜搜吧?別遇到個問題就丟擲來,自己都不努力,不去嘗試,就想著飯來張口嗎?

還有工作上的一些事情,也需要提一提。

比如領導上週發了個程式碼規範手冊,內容很多,上百條。

然後你今天寫程式碼的時候忘了裡面一項具體的約束,但是你有點印象,這時候我建議你自己去拉下那個文件找一找,而不是去問同事。

你可能會覺得問下同事更快,但是你自己記不得不要期望別人能記得,公司檔案盤就在那裡,你自己下載,翻一下很快,能不打擾別人儘量不要打擾別人。

職場上養成這樣的習慣,同事間的關係會更加融洽。

就像小時候媽媽教的,自己的事情自己做。

提一些範圍過於大的問題。

比如有人問:如何才能學好程式設計?

我很能理解你想要努力成長奮鬥的熱血之心。

人人都想上進,人人都想成為別人家的孩子。

但是問題範圍過於大,怎樣才算是你心目中的學好程式設計?

是做出個網站就算了嗎?還是做出個有口皆碑的輪子?

是月薪達到 1W、2W、3W?

這類問題很模糊,而且隻言片語間是說不清的,這肯定是需要經過系統的研究,這估計得一個專欄才能講得清,這樣你讓人如何回答?

如果非得讓我給出一個答案,那我只能說努力學習?

我估計得到這答案你又不樂意了,說我在敷衍你。

再來個問題:mysql 如何調優?

我感覺你在面試我,我只能回答你:***********。

懂的掌聲!

問題冗長,錯別字連篇,一堆程式碼。

這類問題在我們程式設計師中還是比較常見。

因為我們碰到的問題經常是需要結合一大段程式碼,需要涉及具體業務邏輯。

然後一堆程式碼直接微信發過來,沒有任何排版,問題有好幾段話,直接一扔,坐著解答。

還有一些打了錯別字,語句不通,你聊天的時候打錯字可以理解,但是你現在是在提問,是請求別人幫你解答。

你需要為自己的提問負責,你的問題都說不清晰,回答者為什麼要耗費精力去解讀你的提問?

是有幾十套房整天想著如何收租,真的閒的蛋疼了嗎?

將心比心,別人向你提問的時候這樣一堆甩過來,程式碼一堆,問題都讀不通順,你有何感想?

所以上點心,這種問題,我貼個 RocketMQ issue template,參照這樣的格式,寫出來,然後發過來提問。

還有和業務強相關的問題,在你充分研究都束手無策之下,真心建議問下你 leader,放著 leader 不用幹嘛?外人理解你業務都得花很大精力。

leader 不是拿來供著的,是拿來用的。

正確的提問

自己要先想清楚細節,精簡問題。

問題不要張口就來,你遇到問題你真的努力思考過了嗎?

你真的理清資料的來龍去脈的嗎?

你真的自己打斷點一步一步除錯過了嗎?

還是你只看到,呀,這個服務報錯了,怎麼回事?

於是問旁邊的老哥,我這呼叫怎麼報錯了,你幫我看看?

我以前就是這樣的,因為我是真的不懂,束手無策,那時斷點都打不利索。

隨便出點問題就睜眼瞎。

這時候就需要反思下自己,去學習,讓知識武裝自己。

再說回來,如果你仔細思考過你可能會發現問題被你解決了。

有時候就是缺少前後的梳理,你就集中在某個點,一直想一直想,抓破腦袋也想不出來。

這時候就可以通過為了要正確的提問反推一下自己,因為正確的提問需要提煉問題,需要清楚裡面的細節,所以迫使你自己從頭開始理,往往到最後問題就被你自己解決了。

就算還有疑問,那問題也相當精簡和準確,面對回答者的反問,你能很清晰地把流程說清楚,提高解決問題的效率。

所以自己先摸清細節,精簡問題,既能鍛鍊自己的問題排查能力,提煉能力,還能更好地提問,百利而無一害。

不要覺得替你解決問題理所當然,要珍惜每一次提問。

我其實是一個不喜歡提問的人,我覺得會麻煩別人,除非自己真的解決不了我才會發問。

奈何能力有限,所以我還是會經常問別人問題,我也有提問得不到回覆的時候,我會氣憤,憑什麼不回答我的問題。

人之常情,我很能理解編輯了一段話之後得不到任何回應的感受。

但是反過來想想人家可能在趕專案?

人家可能每天凌晨兩點到家?我又沒給人錢,人家有什麼義務和責任來回答我的問題?

所以要接收這個現實,也沒什麼好抱怨的,他不是你爸媽,他也很忙,理解一下。

所以有人回答你的提問時你要珍惜,在提問之前你要思考這個問題這樣問好不好,是不是模稜兩可?

別人抽出時間回答你的問題,你能做的就是縮短別人回答的時間,最高境界就是能提出一些有價值的問題,讓雙方都得到收益。

還有,保持尊重,不要用向你提問是給你面子一樣的語氣說話,蜜汁自信?

儘量自己先思考得出幾個可能性,或者說幾個方案。

提問之後說出自己的理解,至少證明你努力思考過。

畢竟你自己是當事人,你熟悉自己的問題場景,所以可以說說幾個大方向,或者備選方案。

我隨便舉個例子,比如:我現在要做些日誌的處理,訊息佇列用哪個好?

把這種問題換成:我現在要做些日誌的處理,訊息佇列是用 Kafka 、RocketMQ 還是 RabbitMQ?

這樣問題就更加具體,這裡就有個選擇題好過簡答題的說法。

比如你向領導提問,讓他做決定。

提問 A:領導,最近業績有點下滑,我這裡有兩個方案,A方案需要XXXX,B方案需要XXXX,您覺得哪個比較好?

提問 B:領導,最近業績有點下滑,我該怎麼辦?

你是領導,你喜歡哪個?

毋庸置疑,在考試的時候我就喜歡做選擇題,而不是簡答題。

領導招你是要你想給方案,而不是給你想方案。

最後

這篇文章的目的不是出於諷刺,而是希望大家都能正確的提問。

正確的提問不僅能提高個人對問題的分析能力、提煉能力,還能提高解決問題的效率。

這樣,你好我好大家好,才是真的好。

別做伸手黨,有些問題真的是需要自己鑽研才能成長,別人告訴你的和你自己研究出來的不一樣。

還有強調一下,這篇文章不是讓我們不要提問,而是正確的提問。

然後再推薦看一篇文章,《How-To-Ask-Questions-The-Smart-Way》,專門寫給我們程式設計人士看的。

英文版地址:http://www.catb.org/~esr/faqs/smart-questions.html

中文版地址:https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md

歡迎關注我的公眾號【yes的練級攻略】,更多硬核文章等你來讀。


我是 yes,從一點點到億點點,歡迎在看、轉發、留言,我們下篇見。

相關文章