程序員,你會(huì)問(wèn)問(wèn)題嗎?
但是非常遺憾的是,這樣的好問(wèn)題卻是鳳毛麟角。我經(jīng)常會(huì)被一些莫名其妙的問(wèn)題搞的啼笑皆非,比如:
程序運(yùn)行過(guò)程中突然內(nèi)存溢出,該如何解決?
如何配置JVM的虛擬機(jī)參數(shù)?
程序部署到Linux上后,頁(yè)面出現(xiàn)中文亂碼,是不是中間件的配置出現(xiàn)問(wèn)題了?
集群節(jié)點(diǎn)不能自動(dòng)復(fù)制,如何解決?
最可氣是第四個(gè)問(wèn)題,經(jīng)過(guò)了解環(huán)境逐一排查,最后發(fā)現(xiàn)兩個(gè)節(jié)點(diǎn)根本就ping不通嘛,這種“異常”在現(xiàn)場(chǎng)該是多么容易發(fā)現(xiàn)啊!
當(dāng)然,類似的傻問(wèn)題我年輕的時(shí)候也問(wèn)過(guò),誰(shuí)會(huì)不犯錯(cuò)呢,真正讓我認(rèn)識(shí)到這一點(diǎn)的重要性,還是在工作中與國(guó)外程序員的郵件交流。在2005年期間,與國(guó)外程序員共同維護(hù)公司內(nèi)部的一個(gè)平臺(tái)級(jí)產(chǎn)品,郵件往來(lái)必不可少,慢慢的我發(fā)現(xiàn)國(guó)外的程序員提的問(wèn)題或報(bào)的bug都非常有規(guī)律,每個(gè)問(wèn)題或bug都有非常清晰的標(biāo)題,正文是環(huán)境描述,已經(jīng)采取了什么措施、結(jié)果,相關(guān)日志,Core dump,圖片等等,一般讀完郵件就能非常清楚的了解對(duì)方想要表達(dá)的意圖和希望你能提供的幫助,而且你也知道該做什么,如何回復(fù)等等。久而久之,自己也不好意思再去寫那些傻問(wèn)題了。
那么作為技術(shù)人員,如何去問(wèn)一個(gè)讓雙方都滿意的好問(wèn)題并最大程度的得到回復(fù)呢?這一點(diǎn)對(duì)提問(wèn)者重要,對(duì)被問(wèn)者同樣重要,大好人生,誰(shuí)也不愿意為一個(gè)爛問(wèn)題浪費(fèi)時(shí)間。
簡(jiǎn)單總結(jié)一下,如果你按照以下步驟進(jìn)行,提出的問(wèn)題一定會(huì)更靠譜一些,提出好的問(wèn)題是你提升的第一步,其實(shí)這個(gè)過(guò)程在提問(wèn)之前已經(jīng)開(kāi)始了:
遇到問(wèn)題不要急著問(wèn)別人,在時(shí)間允許的情況下看是否自己能夠解決,一方面鍛煉自己分析問(wèn)題和解決問(wèn)題的能力,另一方面,一旦問(wèn)題解決了,問(wèn)題就不是問(wèn)題,而是你的經(jīng)驗(yàn)和知識(shí)庫(kù)。況且現(xiàn)在互聯(lián)網(wǎng)有那么多的技術(shù)資料和各類問(wèn)答網(wǎng)站,想碰到一個(gè)別人沒(méi)碰到的問(wèn)題,已經(jīng)非常困難了,除非是內(nèi)部產(chǎn)品。
如果做了努力依然不能解決,或者客觀條件不允許你自己解決了,那么首先要選擇提問(wèn)對(duì)象,不管是社區(qū)還是公司同事,確保他是你所知道的最佳解決人選。
你需要一個(gè)好的標(biāo)題,用清晰的短句描述你遇到的問(wèn)題
至關(guān)重要的正文
(1)用清晰的語(yǔ)言描述你遇到的問(wèn)題
(2)提供軟件環(huán)境,包括操作系統(tǒng)、數(shù)據(jù)庫(kù)等相關(guān)軟件及其版本號(hào)
(3)問(wèn)題是否可以重現(xiàn),采用什么方式重現(xiàn)
(4)采用了什么措施解決問(wèn)題,最終結(jié)果(可提供日志、程序、截圖等描述)
(5)盡可能提供問(wèn)題相關(guān)的可分析文件,包括日志、截圖和Core dump等
(6)不要長(zhǎng)篇大論,簡(jiǎn)明扼要,描述主要問(wèn)題
最后,不要忘了說(shuō)請(qǐng)和謝謝,畢竟你需要?jiǎng)e人幫助你解決問(wèn)題,沒(méi)人欠你什么。
原文鏈接:http://www.cnblogs.com/chijianqiang/archive/2012/09/24/question.html
【編輯推薦】