以放松、扯淡的目光來(lái)看此文。這是一篇講“術(shù)”和“道”的文章。
一、序
哈哈,今天晚上做了一道題,雖然沒(méi)有做出來(lái),但做的過(guò)程中,引發(fā)了很多思考。
當(dāng)然最多的,還是關(guān)于思維方式的思考。
第一個(gè)事情,有時(shí)問(wèn)題的情景很重要。
先說(shuō)說(shuō)那道題,
假設(shè)一張?jiān)嚲?,上面?道4分題,8道5分題,8道7分題??偣?20分。
每題答對(duì)就得相應(yīng)的分?jǐn)?shù),打錯(cuò)0分。問(wèn)一個(gè)人卷面總分有多少種可能。
假如只用純數(shù)學(xué)來(lái)描述:
在m<=6,n<=8,k<=8的情況下,4m+5n+7k總共有多少可能?
雖然題沒(méi)答出來(lái),但是發(fā)現(xiàn)一個(gè)事情,如果一開(kāi)始直接給的是純數(shù)學(xué)問(wèn)題描述的話(huà),我就不會(huì)想到:竟然會(huì)有一種對(duì)稱(chēng)性在里面。
能答對(duì)42分,就有答對(duì)78分的情況,這是因?yàn)槟艿?2分的那些題我不答,其他的都答對(duì),自然會(huì)得到78分。
說(shuō)明一個(gè)問(wèn)題是啥呢?有很多抽象的東西,也許放到具體情境中就能理解了。讓我不由得想起一筆畫(huà)問(wèn)題。
說(shuō)一個(gè)圖形能否用一筆畫(huà)成,其中蘊(yùn)含了一個(gè)數(shù)學(xué)原理,即奇頂點(diǎn)(線(xiàn)段的交點(diǎn)連接的線(xiàn)段個(gè)數(shù))的個(gè)數(shù)為0或2,就能一筆畫(huà)成。
當(dāng)時(shí)學(xué)拓?fù)鋵W(xué)時(shí),就想為啥是0和2這兩個(gè)數(shù)字呢。后來(lái)想明白了,一筆畫(huà)個(gè)東西,可以想象成,你在走一個(gè)迷宮。
既然是迷宮,那么就有出口和入口。哈哈,2這個(gè)數(shù)字出來(lái)了。0的情況正是入口即出口。
原來(lái)如此!
記得高中時(shí),學(xué)判斷病句時(shí),有個(gè)例子:
“圍墻用的是紅磚砌的”。
此句子讀起來(lái)怪怪的,拿不準(zhǔn),所以我們可以用自己熟悉的東西來(lái)類(lèi)比,比如:
“代碼用的是js寫(xiě)的”。
果然很怪,應(yīng)該說(shuō)“代碼是用js寫(xiě)的”,因此要改成“圍墻是用紅磚砌的”。
這里說(shuō)了一個(gè)類(lèi)比的事情,然而很多事情都可以用類(lèi)比來(lái)解決。
最好的說(shuō)明方法是什么?
打比方、舉例子。
因此文章寫(xiě)的通俗易懂的原因就是,用的全是讀者熟悉的語(yǔ)言。
反過(guò)來(lái)說(shuō),一個(gè)會(huì)學(xué)習(xí)的人,肯定會(huì)舉一反N。
一個(gè)人的聰明程度怎么來(lái)刻畫(huà),是看他對(duì)任何兩個(gè)不同事物,找到其最大的相似程度。
說(shuō)有一道題,請(qǐng)寫(xiě)出接下來(lái)的數(shù)字是什么?
1、12、1、1、1、( )
此問(wèn)題是非常難的,其中最有提示信息的數(shù)字是12。由12你能想什么?
想到12生肖、12月份。能否想到鐘表呢?
此題的答案是2,刻畫(huà)老式臺(tái)鐘打點(diǎn)的個(gè)數(shù)。
我也是反思不得其解,看到答案的馬后炮。哈哈。
不過(guò),有一點(diǎn)很肯定,能在沒(méi)看答案情況下回答出來(lái)的,那肯定是聰明人。
說(shuō)到相似性這個(gè)問(wèn)題,不得不說(shuō)另一件事情:轉(zhuǎn)化問(wèn)題的能力。
二、善于轉(zhuǎn)化問(wèn)題的人是聰明人
先說(shuō)一個(gè)我特別崇拜的人,是誰(shuí)呢,計(jì)算機(jī)之父之一:馮諾依曼。
此人非常屌,基本上他插手的任何一個(gè)領(lǐng)域,那都有成就的,比如博弈論。
在我看來(lái),喬布斯在他面前就是個(gè)小學(xué)生。
之所以說(shuō)他,是因?yàn)槲乙闷鋷煾迪柌氐囊痪湓?huà):
有一個(gè)問(wèn)題你不知道怎么解決,說(shuō)明有個(gè)類(lèi)似相對(duì)簡(jiǎn)單的問(wèn)題你不知道怎么解決。
希爾伯特,也是個(gè)屌得飛起的人物,對(duì)于此人,學(xué)數(shù)學(xué)的同學(xué)肯定知道的。
他說(shuō)的這句話(huà),是有遞歸的意味在里面的。
用在我們前端,有個(gè)問(wèn)題你不知道怎么解決,經(jīng)驗(yàn)是一方面原因,另一方面是基礎(chǔ)不扎實(shí)。
舉個(gè)例子,有什么辦法迅速走出迷宮?
手機(jī)上的迷宮游戲,太過(guò)簡(jiǎn)單,因?yàn)槲叶湓?,本質(zhì)是一筆畫(huà)問(wèn)題。
解決方法,就是從入口開(kāi)始,手摸著墻迅速的跑下去。
再說(shuō)一道題,有這么樣的一個(gè)長(zhǎng)方體。
是一個(gè)一個(gè)正方體塊累積起來(lái)的,
長(zhǎng)方體的邊長(zhǎng)是2,4,6.
請(qǐng)問(wèn)體對(duì)角線(xiàn)會(huì)穿過(guò)幾個(gè)正方體塊?
此題是考察轉(zhuǎn)換能力的,
立體的不會(huì)做,那么平面呢?
2乘以4的長(zhǎng)方形,對(duì)角線(xiàn)會(huì)穿越幾個(gè)格子。
還是很難,再來(lái)看,有一條繩,我拿著刀平分兩份,然后假設(shè)繩子沒(méi)斷再平分四份,那么最好繩子分成了幾段?
基本問(wèn)題解決反推回去,就能解決。
由原先的對(duì)角線(xiàn)穿塊的問(wèn)題,轉(zhuǎn)化了,把對(duì)角線(xiàn)切成了多少段的問(wèn)題。
你想像一下,有一塊大豆腐,從三個(gè)方向(上、前、左)切開(kāi),體對(duì)角線(xiàn)切成多少段。
通過(guò)這個(gè)例子,想說(shuō)明轉(zhuǎn)化問(wèn)題的能力也分兩個(gè)方面。
第一、從量的角度考慮,把復(fù)雜的問(wèn)題,處理成簡(jiǎn)單的問(wèn)題。
比如問(wèn)你,兩人在圓形桌子上,輪流平鋪一元硬幣,誰(shuí)放不下了,誰(shuí)輸。請(qǐng)問(wèn)先放的贏還是后放的贏?
簡(jiǎn)化問(wèn)題,直接把桌子想象成硬幣的大小,你說(shuō)先放贏還是后放贏。
有一個(gè)小故事說(shuō)的明白,
物理大會(huì)上,一個(gè)哥們問(wèn)旁邊的人,
“他講的n維空間你明白嗎?”
“明白啊,他一說(shuō)n我就想象成3?!?br>
說(shuō)道n維空間,有個(gè)說(shuō)法對(duì)于4維空間的理解很有幫助,可見(jiàn)“聰明人”的思考方式:
“我們對(duì)于四維空間的理解,就像地面上的蟲(chóng)子看不到高爾夫球掉進(jìn)洞里,會(huì)覺(jué)得平白無(wú)故地消失了?!?/p>
同樣的理論可以,用在我們前端。
那些框架的作者,肯定不是第一次寫(xiě)框架,像我們想的那樣思路流云行水的敲出來(lái)的。
簡(jiǎn)單的問(wèn)題,基本的模塊保不準(zhǔn)人家自己敲了n便呢。就算沒(méi)敲過(guò),源碼至少?zèng)]少讀。
要想站在巨人的肩上,得首先爬上人家的肩膀頭。
第二、從質(zhì)的角度去考慮,找到抽象的本質(zhì),然后再去找同類(lèi)。
正如迷宮問(wèn)題,抽象是數(shù)學(xué)那個(gè)公式,其同類(lèi)是一筆畫(huà)問(wèn)題。
其同類(lèi)的使用方式,正好拿過(guò)來(lái)用。
用設(shè)計(jì)模式的話(huà)來(lái)說(shuō),面向接口編程、或者依賴(lài)倒置原則。
用絕世武功來(lái)說(shuō),那是化功大法。
我甚至把這個(gè)東西用在了興趣培養(yǎng)之上,
原先我以為我喜歡數(shù)學(xué),初高中物理化學(xué)的不上心。
后來(lái)我發(fā)現(xiàn)我喜歡的是邏輯。這下包含了很多事物,所以喜歡編程、喜歡魔方、喜歡臺(tái)球、喜歡看心理學(xué)書(shū)籍、甚至學(xué)了很多專(zhuān)業(yè)的專(zhuān)業(yè)基礎(chǔ)課。
再后來(lái)我告訴自己不僅喜歡邏輯,也對(duì)非邏輯的事情感興趣,聽(tīng)歷史、看新聞、關(guān)心國(guó)家大事。跟人扯淡。
艾瑪,就這一個(gè)例子,就能改變一個(gè)人那。
如果你喜歡籃球,別人問(wèn)你興趣愛(ài)好是什么時(shí),你不要說(shuō)籃球,而要說(shuō)運(yùn)動(dòng)?。?br>
三、逆向思維
最近看了《你不知道的js》,其里面感謝了TC39的所有人,
我發(fā)現(xiàn)我知道其中幾個(gè)人的名字。原因是,他們是很多書(shū)的作者。
逆向思考:通過(guò)這個(gè)列表去找其相關(guān)著作。
大伙不是想看大神的博客那么,那些人不正是大神嗎?
想起一道邏輯題,怎么用3升和5升的水桶量出4升水來(lái)?
逆向思考:4必須放在5里面,5得減1。1怎么來(lái)?3-2=1,2=5-3,問(wèn)題解決!
小時(shí)候我同學(xué)給我表演了一個(gè)魔術(shù):13張撲克牌A到K,從上面移動(dòng)一張放在底部,然后亮出最上面的那張,保證整個(gè)順序是A,2,3...K
艾瑪,當(dāng)時(shí)各種嘗試去擺在這個(gè)順序,最后好不容易擺了出來(lái)。記住順序,向老爸炫耀。
他看了說(shuō),3副撲克,我也能按你說(shuō)的順序擺出來(lái)!只要反著操作就行了!
一句話(huà)點(diǎn)醒夢(mèng)中人那,從此逆向思維深深的印在腦海。
再說(shuō)一個(gè)相關(guān)的事情,電視上講的破解騙子的手段,與其說(shuō)教會(huì)大家怎么防騙,不如說(shuō)教大家怎么去行騙。
逆向思維的應(yīng)用不只是算算題那樣簡(jiǎn)單的。
如果你能摸清作者的脈絡(luò),那么讀完后,會(huì)覺(jué)得:如果讓你來(lái)寫(xiě),也會(huì)寫(xiě)出同樣的故事。
四、有一個(gè)有時(shí)比是一個(gè)更重要
如果說(shuō)做程序員對(duì)我影響最大的東西,就是設(shè)計(jì)模式了。
其中一個(gè)原則就是合成復(fù)用原則。
化功大法,是抽出精髓為我所用。那么乾坤大挪移,就是借力打力。
你不需要成為活百度,你會(huì)用百度就行。
你不需要成為富二代,你可以嫁個(gè)有錢(qián)的老公,或者傍個(gè)干爹。
你不需要成為解決一切問(wèn)題的牛逼所在,你會(huì)提問(wèn)題就行了,或者找個(gè)大神。
你不需要到處投簡(jiǎn)歷,網(wǎng)上一扔即可。
所以此思維的方式,就是委托。
js的prototype其實(shí)就是一個(gè)委托機(jī)制,我這沒(méi)有,到干爹那找找,找到就當(dāng)是我的來(lái)用。恩哈!
我們?yōu)樯兑每蚣?,為啥要用jq,乾坤大挪移??!
為啥有中介的存在,委托??!
為啥項(xiàng)目經(jīng)理不需要干所有活!他可以委托其他人,自己負(fù)責(zé)調(diào)度就行了。
。。。
五、拳頭比刀劍更重要
一本小說(shuō)的主人公說(shuō),拳頭練好了,那才是真正自己的,借助道具算啥英雄。
因?yàn)榉▽毧傆胁辉谑掷锏臅r(shí)候。
所以我喜歡素顏的女生!
這個(gè)其實(shí)是第四條的反面。
你要成為活百度,知道很多東西。
你要奮斗成為富一代。
你要成為大神。
別人借你的雞下蛋,你要成為別人的嫁衣。
牛逼在這里,天天跟司機(jī)說(shuō)去這去那的,如哪天司機(jī)不在,自己也能開(kāi)車(chē)去跑。
知其然,知其所以然,知其不然,知其所以不然,這才是一個(gè)很高的境界。
很多高手都是創(chuàng)建別人手里的法寶的,多的不說(shuō)了。
六、水平思考
我們從小到大,邏輯思維訓(xùn)練得差不多了。
然而這種垂直的思考方式,很容易讓我們成為一個(gè)見(jiàn)到現(xiàn)象,就去評(píng)判的人。
本來(lái)你跟對(duì)方說(shuō)個(gè)事情,沒(méi)想到對(duì)方聽(tīng)完后,只會(huì)評(píng)價(jià)好壞。
反過(guò)來(lái)我們對(duì)世界的總總,要去換種角度想問(wèn)題,不去說(shuō)no或yes,對(duì)或錯(cuò),好或壞,真或假,有用或無(wú)用。。。
而要說(shuō)這很有意思,讓我聯(lián)想到其他事情,讓我產(chǎn)生了新的想法,提供我一個(gè)不熟悉的思路。。。
任何東西只是觸發(fā)想法的跳板!
指哪打哪變成了打哪指哪。
如果沒(méi)用這種思考方式:他怎么這么裝?。?/p>
用了水平思考后:我靠,原來(lái)還可以這樣。
又想起一個(gè)故事,說(shuō)
面對(duì)家里爸爸經(jīng)常打罵媽媽的現(xiàn)象,三個(gè)兒子,有不同的看法:
老大:長(zhǎng)大可不要結(jié)婚,真是墳?zāi)梗?/p>
老二:以后我要對(duì)媳婦好些。
老三:還可以這樣打老婆啊。
后記
寫(xiě)到這里,基本寫(xiě)完了,看起來(lái)有點(diǎn)虎頭蛇尾,太困了,邏輯不太清晰。
估計(jì)沒(méi)有今天的熬夜,此文是不會(huì)出的。
下面說(shuō)說(shuō)關(guān)于此文相關(guān)說(shuō)明,我喜歡寫(xiě)這種文章,不過(guò)一般都發(fā)布在qq空間里。
所以就有一個(gè)問(wèn)題,寫(xiě)在本站,合適不合適的問(wèn)題,畢竟這是一個(gè)技術(shù)網(wǎng)站。
假如我是大神級(jí)別的人物,把標(biāo)題換成《前端開(kāi)發(fā)的思考方式》,
并且去掉非前端的例子。那么也許就合適了。
后來(lái)覺(jué)得,是因?yàn)楸菊镜囊坏李},觸發(fā)了這篇文章的產(chǎn)生,所以還是放在了這里。
我把它歸類(lèi)于面試題中,只是因?yàn)槲闹刑岬搅撕芏噙壿嬵}。
任何觀點(diǎn),都會(huì)得到正反兩面的評(píng)價(jià)。
不過(guò)我希望讀者能像文章提到的水平思考那種思考方式,去看待此文,
不說(shuō)此文是好還是壞,關(guān)心是否觸發(fā)了你的思考是關(guān)鍵。
我從小到大,就堅(jiān)信,最好的知識(shí)是關(guān)于如何掌握學(xué)習(xí)方法的方法。
一樣?xùn)|西是“術(shù)”,我要掌握它的“道”,進(jìn)而要掌握各種“道”的“道”。
文中講的東西,沒(méi)多少完備性和正確性之說(shuō)。只是一晚上的思緒,純屬一家之言。
不過(guò)我可以推薦一些相關(guān)的書(shū)籍,也許你也對(duì)此感興趣。
《水平思考法》、
《創(chuàng)新思維:解決問(wèn)題的19個(gè)公式》、
《影響力》、
《思考,快與慢》、
《清醒思考的藝術(shù)》、
《黑天鵝》、
《萬(wàn)萬(wàn)沒(méi)想到:用理科生思維理解世界》
上面這些書(shū),都讀過(guò),當(dāng)然也有其他類(lèi)似的書(shū),沒(méi)列出來(lái)。
《黑天鵝》讀起來(lái)比較晦澀。建議至少讀一下《清醒思考的藝術(shù)》。
本文完。