[![hackmd-github-sync-badge](https://hackmd.io/x-6s2VH3Q5mACkGpPQm4ww/badge)](https://hackmd.io/x-6s2VH3Q5mACkGpPQm4ww) ###### tags: `2023鐵人賽` `qiita` `提問方法` # [2023 15th鐵人賽] Day27 - [常有的事] 克服「遇到問題卡住時,請立刻提問」的方法 > 原文連結:[[あるある]「詰まったら、すぐに質問してください」の克服法 - Qiita](https://qiita.com/dev-tatsuya/items/bca386bc47322f22072a) 倒數三天!不知不覺也來到第二十七天,終於快看到終點了似乎有點感概XD 接下來這篇文章,是打從自己在[轉職學習程式](https://heidi-coding.medium.com/%E8%BD%89%E8%81%B7%E5%89%8D%E7%AB%AF%E5%B7%A5%E7%A8%8B%E5%B8%AB-lidemy-%E7%B5%90%E6%A5%AD%E5%BF%83%E5%BE%97%E8%88%87%E6%B1%82%E8%81%B7%E7%B8%BD%E7%B5%90-980644eb4f74)的階段,直到現在第二份工作,有時仍是備感困擾的問題。因為不善於提問,或是希望先自己做好功課,等到萬不得已才找人求救,殊不知中間已經浪費太多時間,放在工作上也很有可能因此耽誤進度。 但是呢,這些過程其實是能夠訓練的,本文中提供面對問題時,應該如何善用「提問模板」訓練思考,並且著重於「輸出導向的輸入」,透過這些過程,將有助於改善語言表達能力,並有效提升學習的效果。 那麼,以下正文開始。 --- [toc] ## 前言 **「當遇到問題卡住時,請立刻提問!」** 你是否曾經被上司、PM 或資深工程師這樣告誡過? 通常這種建議可能會針對初學者,但你是否曾經有以下的經驗呢? 1. 遇到不懂的問題! 2. 因為被告誡要「立刻」提問,所以毫不猶豫馬上提問… 3. ( ゚д゚) < **「難道你不會試著自己查一下嗎?」[^1]** 遭到了拒絕!!!噹(´・ω・`) (明明被要求馬上提問的⋯⋯(´;ω;`)) 還是應該自己查嗎?嗯嗯⋯⋯ 1. 遇到不懂的問題! 2. 即使自己思考和查找已經到極限,還是不懂… 3. (數小時後)小心翼翼地提問… 4. ( ゚д゚) < **「一開始可能會遇到無法解決的問題,所以別猶豫,馬上提問吧!」** 被重擊!!!噹(´・ω・`) **「到底該怎麼辦啊啊啊啊啊啊啊啊啊啊啊啊啊啊!!!!!!!!」** --- 在這篇文章中,我將分享一種克服這種困境的方法。 相信正確的方法有非常多種,因此如果有其他克服方法,也歡迎分享出來! ## 克服方法 我認為克服的方法有 3 個步驟(逆向思考)。 1. 建立問題模板,填寫後再提問 2. 強調語言表達 3. 注重以輸出為前提的輸入 ### 建立問題模板,填寫後再提問 首先,我會建立一種稱為「問題模板」的東西,並填寫後再提問。 「問題模板」是在想要提問時,用來引導思考的範本。 為什麼會想要創建這個模板呢?因為剛進公司工作的我,即使想要提問,但多數情況都是模糊不清,無法理清思緒,提出具體化問題。 因此,我建立了一個模板,試著視覺化所提出的問題,和自己的思考進行連結。 儘管稱之為「問題模板」,但實際上非常簡單。 以下是問題模板的範例: ```jsx // 日文版 1. 〜がわかりません。 2. 具体的には、〜です。 3. 私は〜と考えました。 4. なぜなら〜です。 // 中文版 1. 我不瞭解~。 2. 具體來說,這是~。 3. 我的想法是~。 4. 原因是~。 ``` **簡單!** 1. 首先是寫下結論。 我不懂這個!!!像這樣,讓提問者和回答者都一目瞭然! 2. 接著,提供詳細說明,以及**具體地**描述遇到問題的經過。 即使某些程式碼或操作對自己來說是顯而易見的,但對別人來說可能是第一次見到,因此建議盡可能提供詳細的訊息。 就算寫得比自己想得還要詳細,讀者可能瞬間就能夠讀懂。 3. 然後,陳述自己的觀點,即使是錯的也沒關係。 重要的是傳達給對方「我已經思考過了」這件事。 如果不知道答案,透過自己的方式嘗試並寫下來。 4. 最後,提供支持該觀點的客觀證據。 如果缺乏這一點,觀點就僅止於預測或猜想。 對於程式設計師來說,尤其不喜歡模糊不清的想法⋯⋯(猜測) --- 如果能用語言表達以上四點,就可以提問!這是我給自己定下的規則。 建立好提問的目標,即可迅速且毫不猶豫地提出問題,而不會陷入迷茫。 如此一來, ( ゚д゚) < 「**難道你不會試著自己查一下嗎?**」 ( ゚д゚) < **「一開始可能會遇到無法解決的問題,所以別猶豫,馬上提問吧!」** 就能擺脫被夾在這中間的過去了! ! ! . . . 儘管如此,即使能夠在腦中思考自己的想法,要將文本內容實際用語言傳達給他人並不容易。(我也是這樣) ## 強調語言表達 我對語言表達的定義是「將腦中的想法記錄下來」。 (準確來說,除了文本內容,還包括口頭等詞語,但在這裡將限制其含義。) 就我而言,起初甚至從未聽過「語言表達」這個詞彙。 一直以來,比起發郵件我更喜歡打電話。 我認為直接說出來即可,如果是在 Slack 等的通訊工具上出現意見不一致,可透過通話來解決。如此除了節省時間,也能透過互動減少認知差異的可能性。 然而,日常中我們經常使用的是 Slack 等透過文本進行的交流。舉例來說,與合作夥伴或遠程工作的同事,彼此之間的互動、會議記錄、任務管理工具等。 實際上,對語言表達的認知,是自從我開始向遠端資深工程師和合作夥伴,提出針對規格和技術方面的問題時開始的。 某一天,我向一位遠端工程師提出一個技術問題。 當然,是按照問題模板來提問。 但得到的回答卻是「我不明白你的意思」。 噢,這裡我沒有傳達好。 因為對方理解不足的可能性為零,完全是因為我沒有解釋清楚。 這是我第一次遇到「記錄腦中的想法是如此困難」的情況。 現在的我,比以前更善於語言表達。 我認為,雖然這可能比起直接溝通,需要花費更多時間,但卻具有更多的優勢! 具體而言: - 可以獲得更深入的理解 - 增加自信和確信 - 可以得到反饋 - 可以看到自己的變化 - 作為記錄留下來 那麼,該如何提高語言表達能力? 當然,思考方式也很重要,但更關鍵的是**提高輸入的質量**。 ### 注重以輸出為前提的輸入 提高輸入的質量意味著什麼? 是否已經清楚瞭解定義是什麼?瞭解基本的基礎?這些就是關鍵。 在語言表達時,我經常遇到在「術語」方面的問題。 例如對於某個詞語 A',其抽象的單詞是 A 嗎?還是 B 呢? 再來,該如何提高輸入的質量呢? 以下提供的範例將有助於理解: - 如果在工作中發現需要某項技術的知識,那麼閱讀相關的技術書籍或網站,將會提供非常高質量的輸入吧? - 如果計劃在某次會議上作為演講者登台,將會透過思考來提高輸入的質量吧? - 如果決定撰寫 qiita 文章或技術部落格時,因為不希望提供錯誤的知識,將會研究需要的所有資訊吧? 為什麼呢? 因為必須**輸出**。 想要提高輸入的質量,必須以輸出為前提進行輸入! 透過這些例子也可以瞭解到,與獨自學習程式語言相比,在工作中累積實務經驗的學習方式將會更有效率。 ## 總結 當遇到問題卡住時,應該先填寫問題模板再提問! 透過提高輸入的質量,提高語言表達能力,將有助於更快提出問題! 為了實現這一點,必須始終以輸出為前提! ## 最後 這是我第一次撰寫 How-to 文章,結果變成類似自我啟發的內容⋯⋯ 因為這是一篇個人散文,請別在意這點。 **後記(2019.10.03)** 收到了許多反饋,並且深切感受到 Qiita 的卓越之處\(^o^)/ 謝謝大家! [^1]: 敝公司從未說過 or 被告知過這樣的事。公司的政策之一是「初學者應該**學習如何查找資料**」。