在編程界混,你要學會如何正確地問問題
程序員在工作中會遇到形形色色的問題,提問題是一種能力,如何問問題是一門學問,小編在這裡分享一些感受和方法。
問題類型和提問技巧一、有「標準」答案或明確定義
這類問題就不要問了,自己找答案。
例如:
考研都考什麼?計算機軟體資格水平考試都考什麼?
這種就是屬於有「標準」答案,自己去找考試大綱就可以。
sprintf 參數都是什麼意思?
這種就是屬於 有明確定義的,可以通過手冊、書本、搜索獲取答案。
二、無標準( 「思考」型、「實踐」型、「排查」型、「經驗」型)
1. 「思考」型
一些演算法題或者需要提供解決方案的。
例如:
如何實現一個隨機播放音樂,要求能夠方便查看上一首播放的是什麼,方便交換即將播放的歌曲順序?
這種問題一般要注意:
先搜索,一般常見的演算法或問題,別人可能遇到過,已經分享出來了。
問的時候注意先提供自己的思路,如果是需要提供解決方案的,那麼要把環境問題同時說明清楚。
最好是到開放型的地方,比如論壇、QQ群等諮詢討論,多個人討論,方便開拓思維。
2. 「實踐」型
例如:
學校那些編程實踐作業或試題,就是那一類提問題的人甚至都不理解問題是什麼,就只要答案的,而且還需要解決問題的人寫代碼。
針對這類問題的建議,就是怎麼樣把題目細化,轉換成思考型問題,然後按照思考型問題提問。如果沒有的話,除了親朋好友基本上沒人能幫忙解決,誰有空編寫一大堆代碼然後把文件給你,為了達到目的或許付費請人幫忙是可行的。
3. 「排查」型
這類問題很多,例如代碼或伺服器出現問題。
舉個例子:
程序部署到Linux上後,頁面出現中文亂碼,是不是中間件的配置出現問題了?
伺服器負載、內存、CPU沒問題,遠程SSH鏈接也正常,但是網頁打開很慢,可能是什麼出問題了?
這種問題一般要注意:
找找Web伺服器日誌、系統日誌的錯誤信息,或者程序報錯信息。先通過錯誤信息搜索,別人可能遇到過,已經分享出來了。
問題描述清楚,把環境同時說明清楚。
這類問題,經常需要斷點調試、各種測試才能最終定位問題。先嘗試在論壇或QQ群問,大家會提供的都是一些經驗想法,去嘗試下,如果還是解決不了,那麼只能就是針對性找朋友幫忙解決,甚至需要授權登錄伺服器或者遠程連接到你的電腦,所以這種可信任的朋友就看你能不能找得到。「朋友」是一種資源,平時注意積累。
4. 「經驗」型
這類問題,我遇到最多。典型的就是問職業規劃,專業選擇。能不能學會,如何學習,該不該考研?還有就是問經驗,比如各類考試經驗。
這類問題,可以選擇跟導師、師兄師姐、職場前輩或者網路上相關領域牛人諮詢。
問的時候,把自己的情況和背景信息介紹清楚。
這類問題不要經常問,大概搞清楚後,做完選擇就開始認真去學習。問多了整天就浪費時間做選擇、學習方法、總結經驗的,其實對真正學習知識幫助有限。
比如有些人整體就在問到底學習Java用哪一本書好,有的說這本不好。其實如果有人推薦了一本書,你就先看,等看一部分自己就有感覺了,實在看不下去再換,如果看得下去就先不要換了,認真去學習才是最重要的。
問問題其它注意事項
1、不要問調查式問題,特別是向陌生網路朋友提問問題,應該先自報一下自己的情況和背景,切忌調查式的提問。別一上來就開始調查:你是學什麼的?你做哪方面開發?你在北京嗎?…
2、不要先問:「在嗎 ?」 或者很粗糙的問題,應該直接把問題具體化。
因為你不確定對方什麼時候會回復,如果你發這種消息過去,對方看到可能直接忽略不回復或者根據粗糙的問題給一點建議,或者回復一個:在啊。然後對方回復的時候,你又不在線或者沒辦法馬上跟對方聊上,那麼對方還在等你的下一步消息,你半天以後才回復,來回幾次,對方就會覺得你很煩。
我最煩的問題是:問了一個在嗎,然後回復過去之後,對方就不見人影,等了半天才突然上來,然後又來了一個很粗糙的問題 或者 調查式問題:你做哪方面開發?真想罵過去,你妹的,你誰啊?我又不認識你,你能不能先自我介紹一下,然後直接描述清楚問題。
3、周全準備問題。根據上述問題分類,描述清楚問題的背景、環境等信息以及你的理解和思考。
提問題是一種智慧,每個人都應該學會問問題。
班班學院學習改變命運
GIF/1928K


TAG:班班學院 |