高屋建瓴的理解很重要
做理工科,學(xué)習(xí)或者做項(xiàng)目,高屋建瓴的理解很重要。
我為此走了很多彎路,但是我去給別人講的時(shí)候,他們會(huì)不耐煩,我是喜歡去先理解,然后解決問題的人;大部分人是我要做什么,然后我要什么東西,然后我做出來(lái)。這是兩條路,后面這個(gè)在做項(xiàng)目方面會(huì)非???,但是往往對(duì)問題的理解會(huì)很淺,做出來(lái)的東西往往也是應(yīng)付指標(biāo)或者評(píng)獎(jiǎng)評(píng)優(yōu),但是在現(xiàn)代的項(xiàng)目節(jié)奏中,絕對(duì)是這樣做更適用,因?yàn)楝F(xiàn)在的時(shí)代變化很快,很多時(shí)候你前腳學(xué)的東西后腳就再用不上了,徹底消解了你去了解它“底層是什么樣的,到底做沒做靠譜”的意義。
但是如果是給人授課,或者做更接近一些數(shù)理底層的東西,還是要抓到本質(zhì)。我寫這篇文章其實(shí)主要是想列幾個(gè)例子。
-------
第一個(gè)例子:photoshop
我應(yīng)該是2010年的時(shí)候沒事做想學(xué)學(xué)photoshop,這個(gè)興趣的來(lái)源是因?yàn)橛?jì)算機(jī)老師教過(guò)個(gè)例子,然后就需要找視頻,當(dāng)時(shí)是youku還是土豆,找到了一個(gè)叫李濤的高手之路,大概9個(gè)多小時(shí),我很認(rèn)真看了大概好幾天,當(dāng)時(shí)我還很小,理解力不夠,所以經(jīng)常倒回去,看看了好幾天,好像學(xué)了photoshop,但實(shí)際是沒學(xué)會(huì)。
李源這個(gè)課講photoshop開始講一堆藝術(shù)上的東西,什么色彩、色調(diào)、像素,然后講軟件各個(gè)功能,然后做了個(gè)例子。其實(shí)作為教程沒太大問題,而且也介紹了一些原理,只不過(guò)沒有抓到本質(zhì),其它的很多ps教程只是給例子,還不如李源。
其實(shí)從我今天來(lái)看,photoshop是個(gè)傻瓜軟件,不太需要學(xué)。本質(zhì)是什么呢?photoshop就是對(duì)一個(gè)二維矩陣做數(shù)學(xué)操作。比如,RGB/CMYK/HSV這些其實(shí)就是顏色的坐標(biāo)系,同一個(gè)顏色在不同坐標(biāo)系下坐標(biāo)值不同,但圖像或物理現(xiàn)象本身不依賴于坐標(biāo)系,曲線其實(shí)就是不同坐標(biāo)值(一般是亮度)的柱狀分布圖;選區(qū)就是獲得透明度值為1和0的矩陣,這個(gè)矩陣叫mask,1的地方可以操作,0的地方不能,如果是羽化的選區(qū),就是透明度可以0-1之間;圖層就是把圖像按視覺前后關(guān)系分成前中后幾個(gè)矩陣,最后疊在一起,每個(gè)圖層上可以放一個(gè)物體,每個(gè)圖層上都可以加一個(gè)mask,規(guī)定操作的范圍;濾鏡就是加濾波器,調(diào)整曲線也可以看成是加濾波器。說(shuō)穿了就這么個(gè)東西。
就像女人的化妝一樣,你要把它看成若干圖層就很好解決了。第一層先上粉底,把臉本來(lái)的顏色蓋??;第二層在粉底上用腮紅等等,各種顏色去勾畫出明暗面,讓五官立體化;第三層是嘴巴部分,用口紅畫出嘴,可大可小,可深可淺;第四層眼睛周圍進(jìn)行操作,眼線、眼影、睫毛膏,達(dá)到放大眼睛的效果,畢竟眼睛是心靈的窗戶;其他層,比如發(fā)型等等。
這是認(rèn)知方面的,當(dāng)你有了這樣的認(rèn)知后,所謂的ps技術(shù)其實(shí)就是對(duì)哪個(gè)排列組合好見仁見智的事情了,就像你家里的家具這兩條這么擺,過(guò)兩天你可能想那么擺,在我眼里只要能達(dá)到目的,大差不差。
其實(shí)當(dāng)年看完李濤那個(gè)課,我自己總結(jié)出個(gè)學(xué)習(xí)方法,就是搞清楚一個(gè)軟件菜單欄中每個(gè)選項(xiàng)是做什么用的就能快速掌握這個(gè)軟件,菜單欄其實(shí)就是軟件功能的目錄。至于具體每個(gè)功能如何用,等你用到了再說(shuō)。
-------
第二個(gè)例子:某工業(yè)商軟和游戲
某工業(yè)商軟是很不好掌握的,當(dāng)你沒有理論知識(shí)的時(shí)候,對(duì)著文檔的用例去用軟件就是在面對(duì)一個(gè)黑箱。
我這里假設(shè)一個(gè)前提,假如我已經(jīng)有了對(duì)應(yīng)學(xué)科的理論知識(shí),這個(gè)時(shí)候其實(shí)軟件對(duì)我仍然是一個(gè)黑箱,即便算法你都知道。因?yàn)槿狈浖帉懙闹R(shí),我完全不知道我的邊界在哪里,即便這個(gè)軟件我很熟練了。很多時(shí)候我有一個(gè)需求,這個(gè)軟件能不能做我是不確定的。
后來(lái)當(dāng)我接觸一些游戲之后,我對(duì)工業(yè)商軟的理解才進(jìn)一步加深。
游戲設(shè)計(jì)上是這樣的,游戲面向三類人群,一類是普通用戶,一類是軟件廠商開發(fā)者,一類是MOD開發(fā)者。普通用戶不需要改動(dòng)設(shè)置,另外兩類人群對(duì)應(yīng)有兩套配置或腳本解析器,軟件中全部功能只開放給廠商去debug,然后部分功能可以選擇性開放給MOD開發(fā)者去開發(fā)MOD。工業(yè)軟件非常類似,mod開發(fā)者對(duì)應(yīng)于工業(yè)軟件的二次開發(fā)者。
因?yàn)殪o態(tài)語(yǔ)言編譯環(huán)境配置很復(fù)雜,而且軟件開發(fā)者并不想開源,所以二次開發(fā)的語(yǔ)言基本上都是動(dòng)態(tài)腳本語(yǔ)言,軟件開發(fā)者在軟件中寫一個(gè)parser,去讀取用戶寫的東西。
工業(yè)商業(yè)軟件 ==>?parser讀取?==> 用戶腳本
因?yàn)槟成誊浱峁┙o用戶的腳本語(yǔ)言在數(shù)學(xué)計(jì)算上有很大局限性,所以用戶腳本又需要去調(diào)用類似matlab這樣的軟件去進(jìn)行計(jì)算。
假如我當(dāng)年了解這些知識(shí),我可能要少走好幾個(gè)月的彎路。
-------
引申題外話
我當(dāng)初寫的批處理的做法是這樣的:先寫一個(gè)輸入數(shù)據(jù)文件,去后臺(tái)執(zhí)行商軟,商軟運(yùn)行我寫的前半段商軟腳本,讀取輸入數(shù)據(jù),商軟腳本輸出結(jié)果到中間結(jié)果文件,關(guān)閉商軟,我用matlab從文件讀取結(jié)果返回參數(shù),然后再打開商軟,執(zhí)行我的后半段商軟腳本,輸出結(jié)果到文件。
商軟關(guān)閉再打開其實(shí)是有時(shí)間損耗的,大概幾十秒,但算例要二十分鐘,能接受,省去幾十秒技術(shù)上可行性未知,實(shí)踐可能需要很久,沒必要鉆研。
我寫的商軟腳本里有算法,這個(gè)算法本身是創(chuàng)新,是專利和論文的核心,我當(dāng)年非常失策地沒有意識(shí)到這一點(diǎn),所以在項(xiàng)目結(jié)題PPT重點(diǎn)在介紹整個(gè)項(xiàng)目,沒有突出這個(gè)創(chuàng)新的部分。這個(gè)失策很大部分在于心態(tài)上我當(dāng)時(shí)認(rèn)識(shí)思路局限在演說(shuō)應(yīng)該講項(xiàng)目整體這樣宏觀的東西,其實(shí)我做的東西,宏觀的東西在其他領(lǐng)導(dǎo)眼中沒有價(jià)值,別人更關(guān)心微觀上你做了什么新東西。做項(xiàng)目,無(wú)論宏觀如何把控還是微觀如何實(shí)現(xiàn),當(dāng)然個(gè)人成長(zhǎng)上都是有價(jià)值的。技術(shù)上明白自己做了一個(gè)什么東西,但是搞不清楚自己該突出給別人講什么、寫什么,其實(shí)是在具體工作中是很常見的問題,你在意的東西未必別人在意。我經(jīng)歷過(guò)類似的挫折太多了,這些事也算是提升了工作情商。
-------
第三個(gè)例子:數(shù)學(xué)課
其實(shí)沒有第三個(gè)例子,第一個(gè)例子已經(jīng)表達(dá)清楚了我想說(shuō)的東西。
數(shù)學(xué)還是抓住數(shù)學(xué)史沿革的思路,從歐拉到高斯到黎曼,每一代人的想法、對(duì)后人的影響等等,蠻重要的。然后知道有哪些分支,每個(gè)分支又有哪些子分支,子分支有哪些算法,分別能解決什么問題,這樣遇到一個(gè)工程問題,就能快速定位自己應(yīng)該用什么工具做。如果遇到問題,只是從網(wǎng)上找?guī)灼撐恼f(shuō)這么做可行,那做項(xiàng)目經(jīng)常就會(huì)卡住。因?yàn)槿思覍懳恼碌娜耸悄X子有個(gè)工具箱,里面錘子、鉗子、扳手都知道是干嗎的,最后告訴你用扳手做。到你了,你看了教程買了把扳手,沒搞下去,就不知道是改良扳手呢?還是找其他工具?改良扳手麻煩,于是你買了錘子不行、買了鉗子不行,不知道該造輪子還是找輪子,虛耗了很多時(shí)間。簡(jiǎn)單來(lái)說(shuō),不確定問題到底有沒有辦法解決的時(shí)候不妨把問題放到更高的抽象層次或者其他的維度去看。寫到這里有點(diǎn)形而上了,到此為止吧。
數(shù)學(xué)史還是要聽國(guó)際頂尖的數(shù)學(xué)家的,因?yàn)橹挥许敿獾娜瞬拍芡瑫r(shí)講清楚發(fā)展脈絡(luò)和細(xì)節(jié),大陸由于各種原因,現(xiàn)在并沒有這樣的人,可以聽一下丘成桐的《近代幾何史》。大部分?jǐn)?shù)學(xué)史的書都在講一些比較淺的東西,跟兒童科普讀物一樣,毫無(wú)價(jià)值。
我很后悔上學(xué)期間沒有多旁聽?zhēng)组T數(shù)學(xué)課,我當(dāng)時(shí)是有意識(shí)的,大概完整旁聽了一門數(shù)學(xué)一們物理課,后面都對(duì)我對(duì)很多問題的理解產(chǎn)生了很大幫助。不過(guò)現(xiàn)在看來(lái)是遠(yuǎn)遠(yuǎn)不夠的,我應(yīng)該去蹭博士的泛函分析和隨機(jī)過(guò)程,然后多學(xué)一些幾何的課程,人總是有局限性的,當(dāng)下在意的東西可能未來(lái)進(jìn)入工作看毫無(wú)價(jià)值,比如績(jī)點(diǎn),比如獎(jiǎng)學(xué)金,比如榮譽(yù)。