欠人教訓的提問 & 發問

前言

身為一名工程師遇到問題並發問是一件非常常見的事情,但是許多人都會忽略所謂的「提問的智慧」,但是該如何提問的技巧又是一門學問,更不用說有些提問的方式真的很欠人教訓,甚至是翻白眼,所以就簡單來講一下該如何提問會比較洽當。

搜尋的技巧

在發問之前請務必先做一個動作,也就是 Google,只要你有先做這個動作基本上你是不會被人家幹譙

Google

絕大部分你想問的問題都可以在 Google 中找到,所以也有人戲稱現在的工程師是 Google 工程師(完全不反對),其實這並不是沒有原因的,現在是一個資訊大爆炸的時代,許多問題真的可以在 Google 找到,只是你可能不知道該如何搜尋而已。

當你問題找不到的時候,可以嘗試以下關鍵字搜尋的技巧調整關鍵字,或許你就可以找到你想要的答案

  • 調整關鍵字順序,有時候將關鍵字交換放就可以得到不同的結果,ex: RE:從零開始的學習生活 JS 變成 RE:從零開始的學習 JS 生活 (置入性行銷)。
  • 刪減關鍵字,ex:ThinkPHP 基礎學習 變成 ThinkPHP 基礎
  • 改用英文搜尋,許多工程師的知識在英文是比較多的,如果你英文跟我一樣不好,那麼我會建議你善用工具,也就是 Google 翻譯小姐,請多家善用身邊所擁有的工具將中文翻譯成英文。
  • 善用 site:特定網站網址 + 關鍵字,透過 site: 可以將問題聚焦在特定網站(我最常聚焦在 Stack Overflow)。
  • 關鍵字前後加上「"」,這樣查詢到的內容就會比較聚焦於你要的關鍵字,否則關鍵字有可能會被拆開搜尋,ex: 「"JavaScript"」。
  • 關鍵字加上「-」,可以排除特定的內容,ex:「PHP -基礎教學」。
  • 善用萬用關鍵字「*」,使用可以取代你不確定的關鍵字,ex:「PHP *路徑」。
  • 使用年份範圍來查詢「關鍵字 年.. 年」,ex:「it 邦幫忙 2016.. 2018」。

相信你若善用以上搜尋技巧,許多問題應該是可以不用發問詢問他人的,你也不用擔心自己發問的方式不正確甚至沒人回覆你搞得自己像邊緣人一樣(唉?)。

提問的開頭

許多新手工程師在提問的時候都會忽略的這個基本的重點,首先先來講講好的開頭,在問題串在開頭適當的帶入自己的經歷介紹是一個好的開始

1
2
各位好~
小弟我是一名剛入門約 XX 月的初學者,目前對於 CSS&HTML 有一點疑問想請教...

在提問之前的開頭適當地提出自己的學習經歷,是有助於幫助他人知道你是 什麼樣程度的人,這個開頭介紹將會影響你 將會得到什麼樣的解答,假使今天你發問時你並沒有特別告知你的學習經歷,單純只是說明你有疑問 ↓

1
2
各位好~
目前對於 CSS&HTML 有一點疑問想請教...

通常你會得到許多人給予的建議,但是你可能會發現一件事情

「有些人給的建議太難,甚至沒有範本、Example,只給你方向跟概念。」 (出張嘴寫 Code 概念。)

原因是為什麼?因為你並沒有告知他們你目前的程度到哪裡,所以這些人就會認為你的程度與他們的程度 是相同的,為了避免這個狀況發生,我會建議你 請務必要告知他人你的程度範圍在哪裡,這樣可以確保你的問題更快速更聚焦的得到你可以吸收的解答絕對不會是出一張嘴寫 Code 的概念

我們這邊先暫停小聊一下。

請你試著思考一下,我跟你是一個素未謀面的陌生人,或許你認識我,但我不認識此時此刻在閱讀這一篇文章的你,假使你沒有在開頭告知我你的暱稱、經歷以及程度,那當你問我問題時,我又該如何用什麼樣的角度去給你解答以及當下我又是否該寫一個 Example 給你參考呢?如果你想讓我出一張嘴寫 Code 也是可以的(誤)。

最後如果你真的是一名新手工程師甚至是剛轉職的人,問題串中適當地附上你 Google 了哪些資料以及告知你的程度,通常來講願意回覆你問題的人就會比較友善一點,畢竟你已經嘗試自己去尋找過解答,但真的還是不懂才會提起勇氣發問,基本上你是不會遇到所謂的ㄐㄅ人(消音失敗)。

謹慎選擇的發問地點

假使你跟我一樣是一名前端工程師(如果你是其他領域的也可以參考,因為我只是拿我自己做範本舉例。),而你今天有一些前端的問題想詢問,但你卻在 PHP 社團以及論壇發問,那麼你的問題就有 90% 的機率被忽略甚至是被 Bad 掉,其中 10% 呢?大概就是「連自己該在哪裡發問都不清楚是 87 嗎?」、「請自己乖乖到前端社群發問好嗎?」,如果你是屬於有被虐傾向那麼我也是可以接受。

所以發問之前請務必把握兩個重點

  • 請不要在與你主題不符合的地方發表問題,ex:Python 問題跑去 Ruby 社群。
  • 請注意你準備發表問題的社群人們是屬於哪一種等級的人,ex:新手問題跑去黑客社群。

通常我很常看到有人在新手社群問進階問題,你在一個充滿新手的地方詢問中高階問題,相信你的問題被忽略的機率估計是 87% 高,剩下的解答機率可能就是本身深潛在此的大神們好心替你解答,所以基本上你是幾乎等不到人解答的。

我記得我某次逛論壇就有看到有人在 React 論壇詢問 Vue 問題(這不是欠教訓嗎?)。

你可以透過一些狀況來觀察這個人在這個地方發問恰不恰當,以 Facebook 社群來講,這個人若在錯誤的地方發表問題通常會有幾個狀況

  • 表情數量少。
  • 無人給答案。
  • 問題很快就沉落谷底。
  • 下面一推幹譙文

所以謹慎的選擇發問的地點是有助加快你的問題快速地被解答。

發問前的一些調整

在發問之前你必須先調整自己的心態,你必須清楚明白一件事情你不能要求所有人都一定要回覆你的問題甚至是問題能夠被立刻、即時並迅速地解決,就像我前面講的「我跟你是一個素未謀面的陌生人」,那麼我有什麼義務要浪費自己的時間回覆你呢?畢竟幫你解答的這段時間我可以去打一下刺客教條(咦?)。

這邊也列出一些發問時也要注意幾個重點。

問題不要有錯字

拜託!問題內容中有錯字是一件蠢到不能在蠢的事情,假使你今天希望別人能夠幫你解答你的問題,但你的問題內容卻滿滿的錯字、火星文以及注音文不等,這不就代表著「我邊看你問題還要幫你糾正國字?」,此時我可能還會替你的國文老師感到難過。

1
這個問提我...
1
這ㄍ問提偶..

如果你真的犯了這個蠢到爆炸的錯誤,相信你的討論串底下應該絕大部分都是 「建議你先回去讀國文」、「你國文老師替你感到難過」、「等你修正錯字我在來回你」、「我懷疑我的國字沒學」等等,通常你只要不是太誇張的錯字基本上不會有人這樣回你的。

明確的問題以及開頭

許多人在發問的開頭都很喜歡加上「#求解」、「#救命」、「#我不會」、「#我不懂」還是「#在線等」,如果讓我看到這幾個字眼,我大概就會直接下意識忽略你的問題,因為這幾個字都是 禁忌,非必要的開頭是無法讓人家想幫助你,只會讓人家覺得很智障

明確的開頭可以讓人家快速地進入你的問題狀況中,若是使用以上這些禁忌字眼,許多前輩真的都會果斷 忽略

以我自己來講,我也非常討厭看到這幾個字眼,原因很簡單,我看問題就是要直接知道你「程度在哪」、「問題在哪」,絕對不是看你在那邊亂哀嚎一通,而且不明確的開頭無法有助於你的問題被搜尋。

清楚描述你的邏輯以及過程

除了上面提到的「#求解」、「#救命」、「#我不會」、「#我不懂」以及「#在線等」等字眼,不可以出現在問題內容中之外,你也必須清楚 詳細的描述你的程式碼邏輯,如果你不清楚的話,我會這樣建議您

  • 提供原始碼
  • 覺得有問題的檔案以及行數
  • 你預期結果會出現什麼
  • 但實際結果是什麼
  • 你已經嘗試過哪些以及搜尋過哪些資料

除了這些之外的內容「通通不要有」,在 提問的智慧 中就有提到多餘且無意義的提問句是會其他人認為你是在藐視他。

以下擷取提問的智慧。

避免用無意義的話結束提問,例如有人能幫我嗎?或者這有答案嗎?。
首先:如果你對問題的描述不是很好,這樣問更是畫蛇添足。
其次:由於這樣問是畫蛇添足,黑客們會很厭煩你──而且通常會用邏輯上正確,但毫無意義的回答來表示他們的蔑視, 例如:沒錯,有人能幫你或者不,沒答案。
一般來說,避免用 是或否、對或錯、有或沒有類型的問句,除非你想得到是或否類型的回答。

即使很急也不應提到很急

這也是我非常常見的狀況

1
關於這個問題我很急...

基本上我看到這些很急,我就會選擇忽略,因為你必須明白一件事情「這是你自己的問題並不是我的問題,我沒有義務當下立刻幫你解決」。

另外你也真的不用講到什麼「#在線等」,如果我看到的話,我真的會讓你在線等。

禮多人不怪,禮多人答覆快

你越是有禮貌基本上你就不會遇到什麼奇怪的人甚至一些謾罵。

但是許多人在問題得到解答後都不會去主動感謝他人,這是一件非常嚴重的事情,你必須清楚知道一件事情,大家都是免費花時間替你解答解惑,甚至為了找出一套你可以理解的話語以及撰寫 Example 來讓你可以吸收而花了不少時間,而你在得到解答後,你卻不願回一句「謝謝你/妳」、「謝謝你的幫助」、「謝謝解惑~」並附上你解答得過程,那麼下一次當你發問時,你會發現你的問題會完全沒有人願意回覆,甚至問題與第一次發問相比,你的問題的回覆會變得非常慢。

免費的最貴。

把握時間

發問時盡可能要去把握任何一點一滴的時間,你必須清楚一件事情,每一位陌生人他們都有自己的時間規劃,他們替你解答的過程中,原本的時間規劃可能是洗澡、吃飯或者是陪伴家人等,但他們為了替你解答而犧牲這些時間,你要知道他們這樣子的犧牲或許會引來家庭革命(我認真的,不信可以看這一篇。)。

所以他們不可能是屬於你的專屬老師甚至隨時隨地教你寫程式,如果你讓問題來回兩三次之後才讓對方明白你的問題狀況,那麼你極有可能必須花上數十小時甚至數天才能夠得到答案,所以請盡可能的一次性將問題寫好並送出,問題越詳細越好。

通常來講我最常遇到這樣子發送給我

1
Ray 我有點問題。

接下來我發現這個問題的時候已經過了兩三天,此時我一定會回覆「你有什麼問題?」,接下來你又花了兩三天才注意到我的回覆,那麼等到我幫你解決問題的時候,大概已經快一個月了,所以當你請求他人給予解答甚至幫助時,請一次性且完整詳細的告知,除非你真的時間多到爆炸,甚至可以跟哆啦 x 夢一樣拿出時間暫停道具,那我就真的沒話說了(誤)。

延伸閱讀

最後這邊推薦幾個延伸閱讀,其中我非常推薦此時此刻閱讀的你去閱讀底下的文章,因為這些都是很常見且很容易被忽略的基本,最後希望這一篇分享對你會有幫助。

0%