關於提問,你有沒有碰到過這種情況,有人拿著乙個問題跑來,大概交代了一下他想解決的場景,然後描述了他的思路,然後這中間碰到乙個障礙,就問你怎麼解決這個障礙。
面對這類具體的障礙問題,我經常很難回答。因為即使是同乙個場景,不同人會有不同的思路,而也許我的思路就不會有這樣的障礙。比如:你想去乙個十公里外的地方,對方也許會問你怎麼套馬鞍的問題,這時你就很困擾,因為你的思路是坐車或開車啊。這就是乙個針對技術人員面對同一場景問題,所能選取的不同技術方案可能處在不同的時代背景下的模擬。
所以,關於怎麼提問我覺著本身就是乙個好問題。
在國內的技術社群比如:csdn 或 segmentfault 都有技術問答社群。我跑上去瀏覽過幾次,基本上每個問題的瀏覽量寥寥十幾二十,回答更是少的可憐。上面的問題大部分都是類似下面兩種模式:
某某可以是一種具體的技術或框架,這兩種提問模式代表了兩個方向,都讓人無法回答。第一種太模糊而無法回答,而第二種則太龐大則不願回答。
如果你能繞過這兩個提問的大坑,提出乙個具體的問題,那麼算是前進了一大步。但具體問題也有乙個陷阱,就是前面套馬鞍那個例子。也許有人回答了你怎麼正確的套馬鞍,但你依然可能走在落後的道路上。所以就具體問題提問,除了問及手段,還最好跟上你的目的和你就此目是怎樣提出的手段,然後才走到了這一步的障礙,讓你不得不在此提問。
具體的問題是關於「術」的問題,一般都是解答題。表達清楚你的解答目的,也許你的困擾在高手那裡根本就不存在。你只是走了乙個彎路而已,這樣不僅繞過了障礙,還獲得了一條近路,是最有意義的提問。
而另有一類具體問題,叫做答案藏在問題中,屬於無法提問的問題。說得比較抽象,我舉個例子:曾經碰到過乙個線上問題,系統間隙性出現超時,只有重啟能解決。而且出現的很無規律性,不和什麼流量之類成正比,就是莫名其妙偶然出現,然後不能恢復,只好重啟。曾經困擾了很久這個問題,但這類問題雖然很具體,但你只有乙個現象,你甚至找不到乙個好方式來描述這個問題。
如果我就把上面這段描述的關鍵現象,偶現超時並結合使用的具體技術,如:jvm配置、開源框架配置和業務場景一起丟擲來問人,你覺得有人能回答嗎?這類就屬於答案藏在問題中的問題,唯一的辦法只能是找和你一起共事的同事從各人不同的思維角度去分析、抽絲剝繭。當你能找出提問的方式,基本答案也就出來了。
當我定位到上面現象的根源是服務執行緒池的配置有誤,結合在某些慢業務場景下會引發連鎖超時。這時的問題是怎麼配置服務執行緒池才最合理,這個問題本身就簡單到完全無需再問了,自然就有了答案。
《大教堂與集市》的作者 eric steven raymond 曾就如何提技術問題寫過一篇影響頗大的文章 how to ask questions the smart way
,距今已經十多年了,修訂了十多次(見下圖的修訂歷史),翻譯成了十多個國家的文字,我覺得值得好好讀讀。
這篇與其說是文章,不如說是乙個關於如何提技術問題的提問指南,而且把寫文件當作寫**的模式,不斷提交新的 fix 和 feature,並提供完整的修訂歷史,這就是我所推崇的方式和口味:「像寫**一樣寫文件(規範),像寫文件一樣寫**(可讀)。」
具體提問之術的指南,大家可以去仔細閱讀 eric 的文章,最後歸納下其關於提問之術的基本理念:
術語解析:
rtfm: read the ****ing manual
stfw: search the ****ing web
關於「道」的問題基本都是選擇題,比之於「術」更抽象的選擇題。這類問題反而很少有人提,沒人提多半是思考的人也少,隨波逐流的多,但這類問題實際要更重要的多。
李笑來老師最近在得到專欄的一篇文章《什麼決定命運》提到:
選擇決定命運,什麼來決定選擇?價值觀。價值觀這個概念就比較抽象了,所以我們還是舉乙個比較具體的例子來說明。吳軍博士也在他的得到專欄裡寫了好幾篇關於巴菲特的投資理念的文章,其中有一條是:巴菲特不做空。長期以來巴菲特都秉持乙個投資原則,永遠不做空自己的國家。這就是在投資這件事上巴菲特的價值觀所做出的選擇。
去年有一部很著名的講 2008 年美國金融危機的電影《大空頭》,裡面布拉德·皮特飾演一位聲望很高的退休銀行家,兩個初出茅廬的年輕投資者找上他幫忙參與到貸款違約保險市場中。當跟著布拉德·皮特賣空的兩位年輕人高興的手舞足蹈(他們馬上就要賺一大筆錢)時,布拉德·皮特嚴肅的對他們說:
你們知道你們剛剛做了什麼嗎?我們在對賭美國經濟。這是另乙個關於投資價值觀的生動例子。是的,我們完成了交易,我們做到了(年輕人高興之情溢於言表)。
這意味著什麼,意味著什麼,你們清楚嗎?(連說兩遍)
假如我們是對的,人們就會失去房子,失去工作,失去退休金,失去撫卹金。
別在我面前為此而跳舞。
大部分問題都是從乙個選擇題開始,才是解答題,而很多時候我們都忽略了選擇題,因為圍繞你的環境裡通常有乙個預設選擇,這就是隨波逐流。而預設選擇一般都不是好選擇。
關於提問之道就是給自己的選擇題,這類問題可以提出來,正如李笑來在文中所說:「聽聽大多數人的話,參考少數人的意見,最終自己做決定。」這類問題的回答者只有自己,也只能是自己。無法逃避,逃避是一種不選擇,但實際也是一種選擇。
在自己的成長路上,其實我碰到過好多問題,所有的問題都是我們的困惑。遺憾的一點是,我沒能把這些問題記錄下來。在工作的前五年我並沒有開始寫部落格的習慣,所以也就沒能記錄下這些問題或困惑,以及我是如何跨越這些障礙的,如今再來回憶,只剩下些零星的片斷。
所以,這就是為什麼一開始就要養成寫作記錄的習慣呢。有人說我沒東西可寫、沒有積累也寫不出什麼來,而且文筆也不好。這是乙個誤區,至少你可以從記錄問題和解決問題開始寫起,不斷去積累並留下一些東西。比如,對於程式設計師,你總會碰到各種問題,那麼我就把這些問題按一種模式記錄下來也可以,比如像下面這樣:
give give give, and sometimes you will receive.這就是我所認同的傳遞價值和提公升價值的好方式。持續給予,終有所獲。
…所有的成長過程都是從提出乙個問題開始,並找到了答案,最後融入自身的價值觀,完成下一次更好的選擇,周而復始。
從技術到管理的問題
案例1 技術到管理如何起步 小范從開發人員轉pm,有理論沒有實踐。入職新公司的職位是pm,但每件事無從下手,不知道該幹什麼,心裡害怕,但一想不去做會就會越來越害怕,想請教上司,上級也忙著開會。想有好的開端但又不知該如何去做。首先要了解技術與管理的區別,技術是對事,一件事做好就行,但是管理是對人和專案...
從問題到程式
面對乙個問題,你必須要先找到解決這個問題的方法,然後才有可能寫出相應的程式。寫程式前先構想好程式的結構。1.沒有想好解決方案,不要急於動手寫程式。2.有了解決方案以後,可以按照 先粗後細 先抽象後具體 的辦法,先有程式的輪廓,如有必要可以借助 建模工具 畫一些圖,而後再動手寫程式 3.寫程式時,可以...
程式設計改變人生 從出租司機到SAP CTO
我們根據網上更多資料,還原christian gheorghe的人生故事。gheorghe是羅馬尼亞人,1966年出生。1984年就讀於布加勒斯特大學機械工程系,獲得了碩士學位。他在校期間還輔修了電腦科學。所以他並不完全算自學成才,也不是什麼典型的屌絲。1 當然,他的程式設計是高中時從玩同學sinc...