如何用“認(rèn)知”和“人性”來做NB的程序員?
原創(chuàng)【51CTO.com原創(chuàng)稿件】不久前,在團(tuán)隊(duì)內(nèi)部和大家做了一次分享,內(nèi)容就是“用認(rèn)知和人性來提升自己的技術(shù)水平”,大家反響不錯(cuò),所以整理出來分享給大家。
最初我是想用“借優(yōu)秀的產(chǎn)品經(jīng)理思維來做最棒程序員”的這個(gè)標(biāo)題,但想想還是要有同理心,技術(shù)同學(xué)平時(shí)和產(chǎn)品同學(xué)已經(jīng)是相愛相殺了,就不刺激大家啦。
但是必須要說的是優(yōu)秀的產(chǎn)品經(jīng)理思維和優(yōu)秀的程序員思維確實(shí)是殊途同歸的,兩者是相通的,就是來自認(rèn)知和人性。
這里我不會過多去梳理認(rèn)知和人性的概念,后面會用很多例子來說明,保證通俗易懂,只想先提兩個(gè)概念:
- 對人性的理解能幫助提升認(rèn)知。
- 狹義的技術(shù)是指 Java、PHP、Android、Spring、Vue 等的掌握和實(shí)踐,它們只是幫助你提升認(rèn)知的工具,卻絕不等同于認(rèn)知。
下面我來逐一舉例說明。
例子 1:技術(shù)選型
問題:今年開始慢慢火的一個(gè)移動端跨平臺技術(shù)是 Google 發(fā)布的"Flutter",如果你作為一名移動端的開發(fā)人員來評估這門技術(shù)是否值得選型作為公司產(chǎn)品的語言框架,你怎么能保證評估不會看走眼?
認(rèn)知:Flutter 強(qiáng)化了跨平臺的生產(chǎn)效率,且性能比前端框架更好。
解釋:很多同學(xué)會想,怎么第一句感覺就像廢話一樣,人家官方文檔也是這么寫的,這叫什么認(rèn)知。
別急,所謂的認(rèn)知,就是能夠提煉成外人看上去貌似一句很普通的話,但只有經(jīng)過深度思考的你才知道它真正的價(jià)值。
在 Flutter 沒有出現(xiàn)前,我存在一個(gè)認(rèn)知偏差,我認(rèn)為客戶端一定會被前端諸如 React,Vue 這樣的技術(shù)取代。因?yàn)樗鼈兗瓤梢钥缙脚_,也可以隨時(shí)更新,符合互聯(lián)網(wǎng)快速變化的節(jié)奏。
但我的認(rèn)知存在一個(gè)非常嚴(yán)重的漏洞,那就是跨平臺和隨時(shí)更新在客戶端技術(shù)里的占比各應(yīng)該是多少?哪個(gè)更重要?
經(jīng)過分析思考,以我們公司當(dāng)前用戶量的發(fā)展階段,提升跨平臺的生產(chǎn)效率且不損失太多性能更重要,所謂的運(yùn)營快速需求變化有時(shí)候可以通過事先想清楚,而降低頻率。
Flutter 帶來的生產(chǎn)效率提升,不僅僅是一個(gè)開發(fā)可以同時(shí)產(chǎn)出 Android 和 iOS 兩端應(yīng)用。
更在于產(chǎn)品經(jīng)理以后只需要和一個(gè)開發(fā)溝通需求細(xì)節(jié),不會再擔(dān)心出現(xiàn) Android 和 iOS 功能細(xì)節(jié)實(shí)現(xiàn)偏差的問題了。
由于有了這樣的認(rèn)知,雖然 Flutter 作為新技術(shù),還有需要完善的地方。但這不是主要問題,我們愿意為它去冒險(xiǎn),在我們的產(chǎn)品里去盡快實(shí)踐。
人性:最后多說一句,為什么 Google 先做了 Kotlin 后又做了 Flutter 呢?
我的認(rèn)知是:大公司兩個(gè)部門做重復(fù)輪子很正常,互相競爭,看誰更好。
一個(gè)想試探性取代 Java 以避免被 Oracle 捏住命脈(如果接受的人多,將來把底層的 JVM 再抽掉),一個(gè)野心更大希望統(tǒng)一所有平臺,不同部門的想法而已。
大家不要把 Google 的布局想得那么純粹技術(shù)化,大家都是人嘛。人脫離不了:競爭,征服,自保的人性。
例子 2:查線上問題
問題:覺得查線上問題很痛苦,壓力很大,查得也不快怎么辦?
認(rèn)知:①查線上問題是成本最小的,鍛煉邏輯思維的方式,相比寫代碼更有效率。 ②查問題要看本質(zhì),抓住案發(fā)第一現(xiàn)場。
解釋:很多同學(xué)碰到線上問題的時(shí)候,都很痛苦,因?yàn)橐影嗔说⒄`我學(xué)習(xí)技術(shù)的時(shí)間,所以有時(shí)查問題態(tài)度也不積極。
這個(gè)認(rèn)知是非常錯(cuò)誤的,大家平時(shí)都會認(rèn)可優(yōu)秀程序員的核心特質(zhì)看的是思維邏輯,而不是用哪個(gè)語言哪個(gè)技術(shù)。那如果是思維邏輯優(yōu)先,寫代碼就能比查線上問題更能提升嗎?
顯然不是,大家知道我們在寫代碼時(shí),往往要花費(fèi)很多時(shí)間在編寫冗余代碼(如 get、set 代碼,配置文件),普通的 crud 邏輯,編譯,部署等這些非核心點(diǎn)上,它們并不能幫助我們提升思維(動手寫代碼前的思考才是最核心的)。
但是查線上問題就不一樣了,你不需要寫任何代碼,但是需要在很短時(shí)間內(nèi),讓自己理清思路,按正確的步驟去查出代碼的核心問題,底層系統(tǒng)的核心問題。
你需要對系統(tǒng)很了解,對業(yè)務(wù)邏輯很了解,對代碼細(xì)節(jié)很了解,這真是一個(gè)幾乎沒有任何冗余步驟,但是卻能快速提升嚴(yán)謹(jǐn)思維的好方式! 怎么讓查問題更有效率?
其實(shí)很簡單,我們?nèi)绻梃b名偵探柯南的想法,那就是“抓住案發(fā)第一現(xiàn)場”。
舉兩個(gè)例子,對于 Java 這樣的靜態(tài)語言,查詢線上日志的方法是非常重要的。很多同學(xué)發(fā)現(xiàn)某個(gè)請求出問題了,就去看當(dāng)次請求的日志,這種方式不一定準(zhǔn)確。
因?yàn)閷τ陟o態(tài)語言,它的案發(fā)第一現(xiàn)場可能已經(jīng)不是當(dāng)次請求了,很有可能是首次發(fā)生這個(gè)問題的時(shí)候,或者服務(wù)器剛剛啟動的時(shí)候(靜態(tài)語言的”緩存”特色)。
當(dāng)你發(fā)現(xiàn)上層的業(yè)務(wù)系統(tǒng)發(fā)生了 MySQL 死鎖的報(bào)錯(cuò),就不要太糾結(jié)于上層業(yè)務(wù)系統(tǒng)的日志了。應(yīng)該去看 MySQL 的 Binlog,抓住這個(gè)案發(fā)第一現(xiàn)場,看看到底發(fā)生了什么。
不知道怎么解決線上問題,99% 是因?yàn)檫B案發(fā)第一現(xiàn)場都沒找到,等你找到了,基本也有解決方法了。
人性:每個(gè)人都喜歡做省力的事情,喜歡的事情。但是人往往有偏見,根本沒有想明白查線上問題的價(jià)值,就認(rèn)為這是一個(gè)很 Low 的事,是不可取的。對自己不了解的,未知的事物,應(yīng)該敬畏和學(xué)習(xí)。
例子 3:技術(shù)面試
問題:很多同學(xué)的技術(shù)經(jīng)驗(yàn)已經(jīng)很扎實(shí)了,也能寫出很穩(wěn)定的代碼,但是作為技術(shù)面試官,為什么老是會看走眼呢?
認(rèn)知:對應(yīng)聘者而言,能否獨(dú)立解決問題是能通過面試的及格線,應(yīng)聘者專業(yè)技術(shù)的掌握程度只決定 Offer 薪資的高低。
解釋:是不是覺得又來歪論啦?嗯,繼續(xù)解釋一番。首先問你,你為什么要招人,我相信很多人都會這么說:當(dāng)然是找你來幫我干活啊,我現(xiàn)在天天干到 11 點(diǎn),累死了,急需人幫忙啊。
恩,所以你很清楚,這個(gè)人是要能獨(dú)立解決問題的,能幫你分擔(dān)的,不是來了還要你天天在那里盯著的。
但是我們看到很多同學(xué)的內(nèi)心認(rèn)知是混亂的,雖然他能看懂這句話,但是在面試的時(shí)候他會這么做:準(zhǔn)備 10 個(gè)左右他擅長的技術(shù)細(xì)節(jié)問題,一個(gè)個(gè)問,應(yīng)聘者只能答出 5 個(gè),廢柴,不送。
答出 7 個(gè),嗯,可以進(jìn)來。答出 10 個(gè),還說了 1 個(gè)我不知道的,好牛逼,絕不能讓他看出來我比他弱,否則進(jìn)來后還怎么帶他。
但是這個(gè)和你之前痛恨的應(yīng)試教育又有什么區(qū)別呢?這種招聘方式有很大的風(fēng)險(xiǎn),招進(jìn)來的人是研究手機(jī)屏幕從幾樓摔下去不會碎,而不是研究讓屏幕顯示更清晰的人。
正確的方式應(yīng)該是:讓他講一個(gè)之前投入度比較高的項(xiàng)目,描述下自己是怎么獨(dú)立去解決問題的。
對每一個(gè)點(diǎn)的描述,只要你覺得還不能體現(xiàn)他“獨(dú)立解決問題”的能力,那就繼續(xù)扒皮深問,直到他竭盡全力,被你”逼到墻角”。
特別優(yōu)秀的人被逼到墻角后,具備現(xiàn)場把墻砸掉的能力,這樣的人是死也不能放過的,具體什么意思大家可以去體會思考。
之前我們曾經(jīng)面試過一個(gè)性能測試工程師,從技術(shù)細(xì)節(jié)看對性能測試的工具和方法是比較了解的。
在項(xiàng)目描述中我們問了他一個(gè)問題:你之前通過性能壓測發(fā)現(xiàn)的服務(wù)端問題,有去了解過發(fā)生的原因嗎?
他給的答復(fù)是:因?yàn)槲覀兪峭馄?,制度比較明確,開發(fā)也是另外一個(gè)部門,所以我沒有去了解。
不好意思,這個(gè)回答基本體現(xiàn)了沒有獨(dú)立解決問題的能力乃至意識。碰到一堵很小的墻,他都沒有辦法獨(dú)立解決,好奇和學(xué)習(xí)的欲望也很弱。
他在技術(shù)細(xì)節(jié)上的積累只是因?yàn)榭戳藥妆緯?,用了幾次工具,這些都只是為了應(yīng)付面試和不懂的領(lǐng)導(dǎo),根本沒有深入實(shí)踐,他未來的瓶頸一定非常大。
只要能夠獨(dú)立解決問題,就一定能通過面試,有些技術(shù)不了解,最多就是被砍點(diǎn)薪資而已。
在這一點(diǎn)上,10 年工作經(jīng)驗(yàn)的同學(xué)還真未必比得上 2-3 年工作經(jīng)驗(yàn)的同學(xué),如果沒有獨(dú)立解決問題的能力,那只是多累積了一些所謂的專業(yè)經(jīng)驗(yàn),但還是無法解決問題。
很多大公司喜歡校招優(yōu)秀的畢業(yè)生,也是這個(gè)原因,雖然這些學(xué)生還沒有實(shí)際工作過,但已經(jīng)具備了很強(qiáng)的獨(dú)立解決問題能力。
我們曾經(jīng)招過一名同濟(jì)大學(xué)的測試實(shí)習(xí)生,有一次她獨(dú)立組織了部門的團(tuán)建活動,搞得井井有條,方方面面都考慮到了,這樣的同學(xué)做好技術(shù)只是時(shí)間問題。:)
人性:應(yīng)聘者的人性有哪些呢?懶:影響?yīng)毩⒔鉀Q問題的意識。要面子:比如剛剛舉的例子,拿公司制度掩蓋自己無法獨(dú)立解決問題的現(xiàn)狀。(并且他自己是意識不到的,因?yàn)樗麅?nèi)心的認(rèn)知是混亂的) 盲目自信又不自信:對自己做的熟的東西盲目自信,對沒接觸過的技術(shù)很不自信。
例子 4:最嚴(yán)重的線上故障
問題:到底是什么原因,會導(dǎo)致嚴(yán)重的線上故障呢?是我們團(tuán)隊(duì)的技術(shù)水平不高,還是流程問題才造成了如此嚴(yán)重的故障呢?
認(rèn)知:個(gè)體的過失很難造成嚴(yán)重的線上故障。真正的原因是:集體性的認(rèn)知出錯(cuò)。
解釋:在現(xiàn)代微服務(wù)的架構(gòu)下,各服務(wù)之間的解耦性已經(jīng)做得非常好了,總體來說出現(xiàn)全面嚴(yán)重問題的概率已經(jīng)降得非常多了。就像一個(gè)國家一樣,不怕局部的腐敗,怕的是整個(gè)鏈條的腐敗。
舉個(gè)例子,如果一個(gè)系統(tǒng)上線前,需要在數(shù)據(jù)庫里配置一個(gè)關(guān)鍵的參數(shù),如果不配置會導(dǎo)致很多請求處理錯(cuò)誤。
但是開發(fā)同學(xué)發(fā)生了錯(cuò)誤的認(rèn)知,潛意識里認(rèn)為配置不是寫代碼=配置沒有寫代碼技術(shù)含量高=配置沒有寫代碼重要,最后把它忘了。
測試同學(xué)認(rèn)為測試配置不是測試新寫的代碼=優(yōu)先測試新寫的代碼,再測試配置=測試代碼比測試配置更重要,最后把它也忘了。
那這基本上是救不回來了,上線后一定會發(fā)生嚴(yán)重的問題,每個(gè)鏈條的檢查機(jī)制都失靈了。堅(jiān)決預(yù)防集體性的認(rèn)知出錯(cuò),就可以避免很多嚴(yán)重的問題。
集體性的認(rèn)知出錯(cuò)往往是從一些小現(xiàn)象開始的,比如我們的團(tuán)隊(duì)曾經(jīng)發(fā)生過一次正常的項(xiàng)目延期,原因是周五到了,沒有完成測試,為了避免倉促上線出問題,所以延期一天發(fā)布。
其實(shí)到這里都是非常正常的,但是當(dāng)測試同學(xué)在釘釘群里發(fā)出這個(gè)原因的時(shí)候,有一些同學(xué)發(fā)出了大拇指的表情。
注意,這個(gè)時(shí)候大家是沒有犯錯(cuò)的,但是認(rèn)知已經(jīng)出現(xiàn)了偏差,變成了“以后就算測不完,只要說項(xiàng)目風(fēng)險(xiǎn),就可以延期”。
群里很多同學(xué)都看著,一旦這個(gè)集體性的認(rèn)知偏差形成,未來項(xiàng)目的延期就會越來越多。
所以需要立刻出來說一句:因?yàn)轱L(fēng)險(xiǎn)項(xiàng)目暫時(shí)不上可以,但是延期的原因要總結(jié)反思。
通過這樣一句讓大家心里不太舒服的話,盡快把集體性認(rèn)知偏差扭轉(zhuǎn)過來。
馬云說過”小事要大做”,就是這個(gè)道理,不大做,等發(fā)生大事的時(shí)候就來不及了。
人性:盲目自信:對自己做的領(lǐng)域有天然的偏見,哪個(gè)重要,哪個(gè)不重要。隨大流:別人也這么做了,應(yīng)該不會錯(cuò),還省力,我也這么做。懶:默守所謂的安全方案,其實(shí)在那個(gè)場景下已經(jīng)不安全了,但是內(nèi)心認(rèn)知出現(xiàn)偏差,懶得去破局改進(jìn)。
例子 5:如何看待代碼邏輯復(fù)用
問題:對于代碼邏輯的復(fù)用,大家的看法往往不一樣,有些同學(xué)認(rèn)為只要是有公共性的代碼都該不斷抽出通用函數(shù)復(fù)用。有些則認(rèn)為對重要的通用邏輯才該復(fù)用,過度復(fù)用反而增加成本。
認(rèn)知:能力該復(fù)用,業(yè)務(wù)不該復(fù)用。分久必合,合久必分。
解釋:這里提出了兩個(gè)認(rèn)知,我們來分別解釋下。能力該復(fù)用,業(yè)務(wù)不該復(fù)用,這個(gè)很好理解。
能力是指對這個(gè)系統(tǒng)有價(jià)值的功能,會長期存在且擴(kuò)展下去的。而業(yè)務(wù)是一個(gè)泛指,既可以表示單一的產(chǎn)品需求,也可以表示某個(gè)局部的功能。
比如你的應(yīng)用里接入了一個(gè)支付寶支付,對支付這個(gè)事情我們判斷下來是一個(gè)基礎(chǔ)核心能力,且將來很有可能也要接入微信支付,所以應(yīng)該抽出公共的函數(shù)。
再比如對于客戶端的登錄頁面和注冊頁面,雖然渲染邏輯 90% 是一樣的,但是不應(yīng)該復(fù)用,因?yàn)樗鼈兪菃我还δ埽皇悄芰?,貿(mào)然復(fù)用反而帶來了很大的風(fēng)險(xiǎn)。
分久必合,合久必分,這個(gè)的理解就很有意思了。大家都知道,這句話的出處來自三國演義,說的是一個(gè)國家分裂久了就會合并,合并久了也會分裂,其實(shí)對代碼邏輯的復(fù)用也是如此。
大家在合并抽出公共函數(shù)時(shí),會發(fā)現(xiàn)有 10%-20% 的邏輯不是那么順眼,總感覺暫時(shí)放在里面是可以的,但將來可能會拆出來。
那么在寫公共函數(shù)時(shí),就要特別注意這部分邏輯。它雖然暫時(shí)在函數(shù)里,但是需要做到和上下文相對隔離,甚至還可以加入明顯的換行和 TO DO,為下一次的拆做好準(zhǔn)備。
而在拆出一些獨(dú)立邏輯的時(shí)候,也要思考這些邏輯可能和其他的哪些邏輯有機(jī)會是合起來的,那么盡量放在一個(gè)類里,一個(gè)包里,為后續(xù)的合做好準(zhǔn)備。
人性:不要刻舟求劍,妄圖用一套規(guī)則來應(yīng)對外部復(fù)雜變化的世界,要因地制宜,實(shí)事求是,學(xué)會變通。
例子 6:開源的意義
問題:為什么現(xiàn)在很多中國的互聯(lián)網(wǎng)公司開始重視開源的宣傳了?
認(rèn)知:開源直接決定了公司的成本收入,以及人才儲備。
解釋:是不是要崩潰了,開源無償寫代碼,然后免費(fèi)給別人用,不是在消耗公司成本嗎?
別急,還記得馬云說過的一句話嗎,“免費(fèi)的才是最貴的”。嗯,這個(gè)道理同樣適用于開源。
今天中國很多的互聯(lián)網(wǎng)公司已經(jīng)非常明白了,甭管你的開源技術(shù)到底好不好用,宣傳一定要大,一定要讓大家參與進(jìn)來。帶來的好處太多了,因?yàn)橛昧四愕拈_源消息隊(duì)列,之后就會用你的云計(jì)算平臺。
因?yàn)槌绦騿T都很懶,開發(fā)環(huán)境和線上保持一套嘛,你后面一定能賺大錢。因?yàn)殚_源項(xiàng)目非常知名,讓你公司的技術(shù)形象立刻高大起來(先不管這個(gè)項(xiàng)目到底創(chuàng)造了多少有價(jià)值的產(chǎn)品),每年校招的優(yōu)質(zhì)學(xué)生資源盡收囊中,其他公司要搶人,只能花更多的錢。
而每年中國優(yōu)秀的畢業(yè)生就那么多,早就供需失衡,誰搶到了大部分,那之后在技術(shù)上一定能保持絕對優(yōu)勢。
最后萬一公司財(cái)報(bào)不好看了,不好意思開始收授權(quán)費(fèi),就像 Google 收 Android 的費(fèi)用一樣。
不作惡只是口號,開源帶來了無比巨大的利益,不能賺錢,誰開源?!現(xiàn)在微軟也懂了這個(gè)道理,成為了開源社區(qū)的標(biāo)桿,但在早期的鮑爾默時(shí)代可是出現(xiàn)了認(rèn)知偏差呢。
人性:開源者的人性:追求利益,喜歡聲譽(yù)。 接受開源的人:渴望進(jìn)步,賺便宜,崇拜權(quán)威。
提升認(rèn)知的四個(gè)關(guān)鍵點(diǎn)
內(nèi)心簡單
內(nèi)心越簡單的人,將來能到達(dá)的境界就越高。大家千萬不要誤解了,我說的不是思想淺薄,而是內(nèi)心簡單純粹要像少年一樣。
一個(gè)很好的例子,郭靖,用世俗的眼光來看他天資不高,開始學(xué)什么都慢。但是他有一個(gè)很大的優(yōu)點(diǎn),就是想法簡單,無私心,持之以恒。
報(bào)家仇,報(bào)國仇,保護(hù)好他愛的人,不會去想是不是別人騙了他,他多做一點(diǎn)是不是虧了。
20 歲就達(dá)到五絕水平,最后終于融合“降龍十八掌”、“九陰真經(jīng)”和“左右互搏”三大蓋世武功為一體,武林尊為“天下第一俠士”。
內(nèi)心越簡單,就越不會花費(fèi)額外的精力在一些無關(guān)緊要的事上面。隨著時(shí)間的推移,你的認(rèn)知水平就一定能提升得更快。
不要去想今天你學(xué)的語言明天是否還流行,先利用當(dāng)前語言訓(xùn)練好你的思維模式。
不要去想我作為測試給開發(fā)指出太多問題后,開發(fā)會不會不爽,做為測試你的核心是保證產(chǎn)品質(zhì)量。
不要去想今天我?guī)徒M內(nèi)的開發(fā)分擔(dān)了額外的代碼編寫,我是不是虧了,這些付出一定會在將來某個(gè)時(shí)候兌現(xiàn),因?yàn)槟惚人麄冇懈嗟拇a實(shí)踐。
相信跨界的力量
iPod+手機(jī)誕生了 iPhone,手機(jī)+錢包誕生了支付寶,C,Python+Java 誕生了 Go,人類的創(chuàng)新其實(shí)都是來自于跨界的結(jié)合。
很多時(shí)候大家去看一個(gè)技術(shù)大神,會認(rèn)為他一定是看了很多專業(yè)的書,看了很多牛逼開源項(xiàng)目的代碼,寫了很多項(xiàng)目才達(dá)到現(xiàn)在的這個(gè)水平。
然后又看到別人的興趣愛好:音樂,滑雪,畫畫,牛逼,大神就是大神,做好技術(shù)的同時(shí)還能“兼顧”這些興趣。
這個(gè)認(rèn)知完全錯(cuò)了好嗎,我告訴你,寫代碼看書固然很重要,但如果他沒有這些興趣,他在技術(shù)上可能根本達(dá)不到今天的程度。
一個(gè)有畫畫功底的人,理解向量,理解數(shù)據(jù)的 PCA 分析就是快好嗎。一個(gè)財(cái)務(wù)出身的人,寫支付系統(tǒng)的代碼就是不容易出錯(cuò)好嗎。
人類的大腦從來都是一個(gè)網(wǎng)狀的,互相關(guān)聯(lián)的知識圖譜,根本不存在靠”單一事物”修煉成功的好嗎。
千萬不要成為技術(shù)上的孔乙己,天天學(xué)各種 API 的寫法,和學(xué)習(xí)茴香豆的茴字有幾種寫法沒有任何區(qū)別。
在方案想不出來的時(shí)候,在代碼水平感覺到瓶頸的時(shí)候,在看不懂一些專業(yè)書籍的時(shí)候,一定要跳出來,和自己的興趣結(jié)合,和自己經(jīng)歷結(jié)合,和自己的生活結(jié)合,這樣才能突破瓶頸,提升到更上一層的認(rèn)知。
相信更高認(rèn)知人的指引
科幻神作三體里,外星人看地球人就像紙片一樣,在三體人的眼中,地球人是二維的,而不是三維的。
回到現(xiàn)實(shí)中,高認(rèn)知的人看低認(rèn)知的人也是一樣的,不是低認(rèn)知的人不夠努力,而是你的知識圖譜里比高認(rèn)知的人少了一些維度。
所以不管你怎么努力,你會發(fā)現(xiàn)仍舊無法超過他,他還比你輕松,學(xué)霸給大家留下的陰影就是這么來的。
在實(shí)際工作中,你的 Leader,你的架構(gòu)師只要不是水貨,往往他們的認(rèn)知就是比你高的。
一旦你覺得這個(gè)人的本性是靠譜的,你就該無條件去相信他給你的建議和指引。
因?yàn)樗芸吹皆谀隳莻€(gè)維度上感受不到的東西,照他的話去實(shí)踐幾次,你才有機(jī)會到達(dá)他那個(gè)維度,才能升級認(rèn)知。
不過在現(xiàn)實(shí)情況中,我們往往看到很多 Leader 和架構(gòu)給下面的同學(xué)苦口婆心說了很多,但是他們不理解,反而更叛逆。
這份痛苦我懂,你是拼了命想拉他到你那個(gè)維度,但是他還年輕著呢。
持之以恒地實(shí)踐
人就是一個(gè)如此奇妙,如此復(fù)雜的生物,不管你看多少書,看多少源碼,寫多少 Demo,你不真刀真槍地去實(shí)踐,去寫代碼,這些知識無論如何都無法進(jìn)入你大腦的知識圖譜。
它們永遠(yuǎn)只能是“狹義上的知識”,而不是“有價(jià)值的認(rèn)知”。相信大家人生中都有過類似的經(jīng)歷了,越是辛苦的實(shí)踐,越是堅(jiān)持,你最后的收獲一定越大。
簡單來說,認(rèn)知不通過持之以恒的實(shí)踐是不可能升級的。還有一點(diǎn)我必須要強(qiáng)調(diào),實(shí)踐應(yīng)該盡量和公司的項(xiàng)目去結(jié)合,而不是依靠于自己寫 Demo。
這里面有一個(gè)很大的誤區(qū),自己私下寫 Demo 經(jīng)常是沒有“明確,高壓的”目標(biāo)的(人性總是偏懶的),這種實(shí)踐往往很難提升認(rèn)知。
而公司的項(xiàng)目往往不同,會提出"支持多少用戶訪問",“為什么你每次開發(fā)都不能更快一點(diǎn)”(核心挑戰(zhàn)的是你架構(gòu)的擴(kuò)展能力),“為什么這個(gè)功能這么卡”(性能優(yōu)化)。
這些“明確的,高壓的”目標(biāo)能督促你去拼命提升自己的認(rèn)知(只是寫 Demo 是很難給自己設(shè)下這些障礙的,是反人性的)。
當(dāng)然從結(jié)果來看,又是公司的壓榨剝削啦,讓我們回憶一下前面說的,如果你覺得這個(gè)公司是靠譜的,那就讓我們的“內(nèi)心簡單一點(diǎn)”,持之以恒地實(shí)踐升級認(rèn)知吧。
總結(jié)
最后總結(jié)一下,現(xiàn)在已經(jīng)不是一個(gè)單純比拼知識量的時(shí)代,而是比拼認(rèn)知高低的時(shí)代。
作為程序員我們并不特殊,和市場,財(cái)務(wù),產(chǎn)品,運(yùn)營的這些同學(xué)一樣,核心看的是認(rèn)知,并不存在誰比誰困難,誰比誰辛苦的這種淺層比較。
而我們學(xué)習(xí)的那些語言,框架,工具,和我們大學(xué)時(shí)期學(xué)習(xí)的微積分,高等物理沒有區(qū)別,都只是幫助我們不斷訓(xùn)練提升認(rèn)知的實(shí)踐工具,而不是認(rèn)知本身。
讓我們不要再局限于程序員狹義技術(shù)的范疇內(nèi),把提升自己的認(rèn)知作為最重要的目標(biāo),我們要努力做到“既是程序員,也不是程序員”。
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請注明原文作者和出處為51CTO.com】