作為程式設計師,技術能力固然很重要,但平時除了提升技術能力也別忽略了其它方面的能力。你可以寫一輩子程式碼,但你不能一輩子只寫程式碼。當你的技術能力足以使你在公司站穩腳跟時,你可以停下來鍛鍊自己的管理能力,比如職場中很重要的:解決問題的能力。而結構化思維是解決問題的萬能公式,而且結構化思維是可以訓練的。
掌握了結構化思維,將使你能夠快速完成方案,能夠有條不紊地處理各種複雜問題,能夠有效地安排好學習與工作,能夠快速掌握新崗位所需的知識。從而獲得老闆的賞識,獲得客戶的青睞,獲得更多的發展機會,終將先人一步走向人生巔峰。
好了,上面都是吹牛的話,下面我們步入正題。
結構化思維可以簡單定義為:
“結構化思維”就是通過提出若干小問題來構建一個大問題的答案。
一個國家每年有多少衛生紙在銷售?有多少公里的火車軌道?每天早上九點四十五分站著、坐著和躺著的人比例是多少?
在求職面試中,你可能會被問到上面這樣的類似腦筋急轉彎的問題。你可能會想,問這種通過百度或谷歌五秒鐘就能找到答案的問題有什麼意義?這就是為了考驗你的結構化思維能力,考驗解決問題的能力。
假設在一場面試中,有兩個面試者,問他們所在的樓有多高。一個人憑自己的感覺猜了一個答案,猜的答案非常接近。另一個人走到外面用腳步大概量了一下大樓影子,然後和自己的影子進行比較得到大樓的一個大概高度,但得到的數字不如前一個準確。如果你是面試官,你會選誰?我想你會選第二個面試者,因為他知道如何運用思維去解決問題。
通過練習推理,把大問題拆解成若干小問題,再從小問題的答案構建大問題的答案,就會形成結構化思維習慣。有了結構化思維,你就會有條不紊地將問題逐個擊破,逐個解決,而不至於出現憂慮、慌張、無頭緒。
任何人都可以通過練習提高自己的結構化思維。最好的途徑就是問自己一些“沒有意義”的問題,那些你不容易在網上找到答案的問題。
比如你在某市的某個區中心看見一家餐館,你就可以花幾分鐘來思考每年會多少顧客去這家餐館。以此為例,具體怎麼做呢?可以這樣進行。
一、首先,假設餐館所在的城市有 300 萬人口,再假設有三分之一的人口住市區,也就是 100 萬。數字準不準確不重要,重要的是做一個假設可以讓你進一步分解這個問題,然後找到突破口開始迭代。
二、然後,假設全市區有 10 個區,每個區是 10 萬人。如果一個人每天午餐和晚餐都在外面吃,那就是每週出去吃 14 頓飯。在大城市,對於大多數未婚青年來說,一週 10 次並不誇張。對有有家庭的人或許就沒有那麼多,還有一些人根本不在外面吃飯。所以,保守的平均數是每週 3 次。那就是在這個區,每週有 30 萬人次在餐館裡吃飯。
三、接著,一個區假設有大概有 100 家餐館。如果平均分配的話,每家餐館就有 3000 份飯菜。
四、我們再來校對一下。這家餐館能不能每週接待 3000 人?這家餐館每天營業 12 小時,一週 7 天。那就是 84 個小時。這個餐館能容納 25 人,而且上菜很快,平均 5 分鐘內就能上菜。在 100% 的容量下,他們每小時可以提供 125 份飯菜,也就是每週 10500 份飯菜。即使這個地方只有 30%的時間是滿員,每週服務 3000 名顧客也是可以做到的。
五、最後,假設餐館每年有兩個星期因假期或節假日而關閉。以 50 周計算,每年就有 15 萬名顧客。
這裡從大的數字開始,然後轉到小的數字,但你也可以反著來,也可以從兩端開始。建議是,你知道哪個數字就從哪個數字開始。比如上面的例子中,如果你不知道餐館所在區有多少人口,你就可以繼續往更大的範圍——城市找突破口。你不知道具體的數字不要緊,你可以先假設一個數字。
最後得到的答案是 100% 準確的嗎?肯定不是準確的。是在差不多的數量級上嗎?可能是吧。這都不重要,重要的是,你可以僅僅根據自己有限的經驗,可以從推斷中學習,去解決實際生活中的問題。比如對於這家餐館來說,通過這種結構化的思維去分析,我們就可以找到餐館經營潛在的問題,最後找到可能解決這些問題的辦法。
結構化思維看似是在套用固定的模式,但其實也是一種創造性思維。它是在規則模式的範圍內,讓你的思維可以自由地在看起來沒有關聯的物件上漫遊,並在此基礎上把各物件逐個聯絡起來。
經常做類似上述的練習,你就可以提高解決問題的能力,這會讓你受益終生。記住,我們需要時常思考,但我們要知道如何思考。
不是生活變得越來越容易了,而是我們變得越來越強大了。生活的本質就是不斷解決新的問題,當你知道如何思考時,它賦予你的能力,會讓你的生活變得容易些。