最近我一直在思考一個問題:就算懂很多道理,讀很多書,有很多見識,人這一生,就一定能過好嗎?
前幾天我一個好朋友打電話,他和我聊起最近一些苦惱,他最近接了一個電商項目,背景技術選型選了nodejs。我問他為啥要選nodejs,他說,nodejs很火,很多大公司的大牛都在用,還說nodejs是web領域拯救世界的語言。
結果,開發團隊開始學習,開發代碼,慢慢的就出現了很多問題,新手有些問題搞不定。同時也發現開發效率并不高,管理運維也十分艱難。
他現在非常苦惱,項目也停滞不前,要我幫他推薦專業的nodejs開發人員。這就是典型一個錯誤的跟風!
這個時候,我們需要質疑的态度,那就是批判性思維。
那麼批判性思維到底是什麼呢?怎麼做才算擁有呢?
結合我的了解和認知,我将從以下三個方面進行闡述,文筆拙劣,歡迎各位看官斧正!
01
我們需要這種能力:批判性思維
所謂批判性思維,其實就是對待外部的輸入,首先持一種懷疑的态度,過濾掉那些自己認為錯誤的東西之後,剩下的才是自己的。
作為程式員你肯定review過其它同僚代碼,review代碼不是讓你誇贊他代碼寫的有多好,而是需要幫助他找出他代碼的問題,有沒有符合編寫規範。
在review的過程中自己也能主動思考一些問題幫助自己認知錯誤,也可以找到新的學習方向和突破自己思維的限制。
可見,作為程式員擁有批判性思維的能力是多麼重要。不管你對程式設計語言有多精通,不管你寫過多少行代碼,如果你不能在工作當中采用批判性思維的話,你就不能做到高效地解決問題!
02
為什麼需要批判性思維?
網際網路資訊大爆炸的時代,我們每天充斥着各種資訊,但真假難辯。
比如看微信文章、使用開源代碼、使用新技術,今天看到這個新技術比較好,明天又看到另一個新技術更好,但技術實作方式不一樣,我們要怎樣辨識所使用的新技術确實符合要求?又怎麼通過資訊來做出自己的選擇呢?
就像我那位朋友,如果當初他對nodejs能再進一步了解,或者能跟團隊進行讨論:
為什麼選擇nodejs?它跟其它語言對比有什麼優缺點?團隊能否快速接受學習這種語言?
他對于别人傳遞的資訊雖然本着相信的态度,如果那位朋友能對此提出一些問題進行不斷的證明,那麼他應該不會出現這樣錯誤的跟風。
我不想根據錯誤的資訊作為影響自己的決定,那麼批判性思維可以助我們一臂之力。
03
怎麼鍛煉批判性思維
加拿大阿爾伯塔大學的教授Stephen P. Norris曾提出:批判性的思維方式不是與生俱來的,需要後天的塑造。
我們可以從3方面鍛煉批判思維,達到刻意練習的效果!
1
學會提問
每天我們都能從各種管道看到各種書籍,微信公衆号等,得到某種觀點結論,在可有沒有思考提出觀點的人是具有某種專家領域資格?或者他們是不是有權威的資訊來源?
那怎麼樣提問,提問也是有模式和方法的,WYH模型就是一套很好用的提問模式。
[what]:是什麼
他說了什麼,他說的是事實還是觀點,事實是可以被證明的,而觀點是表達情感、信念,是不需要證明的。
[why]:為什麼
說話的人,說這話的目的是什麼,他說話的有依據嗎,他是為了美化或醜化一些人或一些事。
[how]:怎麼做
他說的時候是開心,悲傷,氣憤,真心……是口頭說還是書面表達。
例如:你要學習一個新的技術,我們要知道新技術是什麼?為什麼要用新技術(優缺點)?以及在項目中怎麼用?順着這條思路去學習新技術,就很容易掌握這門新技術。
程式員不僅要學會百度,更要懂得提問!
2
換位思考
換位思考指的是站在他人的角度思考問題,從他人的前提、假設和觀點進行推理,進而真正地了解他人的觀點。
思維的同理心讓你能了解他人的思想、感受和情感,從他人的角度出發了解他人的觀點,能讓我們更公正地評判他們的觀點和信念。
技術是為産品服務的,而産品是要滿足市場需求的。是以技術歸根結底是為市場服務的,切莫舍本逐末。市場具體需要什麼産品、什麼功能,需要市場自己來告訴你,這不是在技術範疇裡能探索出來的。
很多時候,作為程式員從技術角度關注的問題,實際上使用者可能并不在意。你可能連續花了幾周的時間去增加一個微不足道的功能,而這個功能可能不是使用者所關注和需要的。你這時候必須站在使用者角度考慮,就是換位思考!
現在大家都在強調換位思考,可換位思考真的很難做到,很多人所謂的換位思考還是站在自己的立場上去為對方思考問題,這裡就不多叙述,想多了解可以閱讀趙周老師的《拆出你的溝通力》。
判斷一個程式員是否具備“換位思考”的能力有一個好方法,那就是看他怎樣向沒有技術背景的人解釋技術問題。
3
高效學習
我最近在看《學會提問》這本書,書中提到了兩種學習思維:海綿式思維和淘金式思維。
海綿式思維:
這種思維方式是被動的,不需要我們絞盡腦汁的苦思冥想,我們被動的吸收外部的資訊。但這樣我們對于林林總總的資訊很難做出真假判斷。
淘金式思維:
這種思維方式需要我們積極主動的參與進來,當接收到外部資訊時,我們随時準備好與之辯駁,這種情況下我們擁有掌控權,對于所接收到的資訊以提問的方式并從中思考如何做出辨識。
淘金式的思維就是能對于所得到的資訊能以互動的方式進行批判性的提問,能從衆多資訊中淘出金子,得到我們想要的資訊。
那麼我們怎麼讓自己具備淘金式學習的能力呢?
前哒哒技術vp教我一個好辦法“可以圍繞以下幾個問題來跟知識進行互動:“觀點是什麼?支撐它的理由或者論據分别是什麼?”、“證據的可靠性有多大,推斷中是否存在謬誤”、“是否有其他資訊被遺漏”。
然而我在學習開源架構的時,也用到這種方法,閱讀了開源架構源代碼之前,檢視該項目是否提供架構和設計文檔,然後就給自己提了一堆問題,很想了解的問題,接着下一步就是閱讀源碼把一個個問題給解決掉,在尋找答案的過程中,不知不覺就把這裡源碼翻了好幾遍,而且由于我是主動學習,學習的時候十分專注,效率非常高。
關于學習和讀書的一些技巧,大家可以去看看前哒哒技術vp寫的《一周讀7本書的秘密》和《成長必須避開的5個陷阱》。

總之,面對良莠不齊的資訊,批判性思維技能助我們一臂之力來辨識真假。尤其在這個資訊爆炸的時代,能夠冷靜的思考并作出正确的選擇,掌握批判性思維是重中之重。它能幫助我們更好的去認識這個世界,而不會再輕易被情緒所控制。做一個清醒思考的程式員。