生活中沒有“車走直路”的捷徑,我們都是小兵小卒,只能一步一格。沙場上小兵是沖在最前,也是最基礎(chǔ)的那個(gè),生活中,大多數(shù)人都是這樣的小兵。只有在營地苦練兵法,熟讀兵書,才能在沙場上戰(zhàn)至最后,感受“八百里分麾下炙,五十弦翻塞外聲”的豪情萬丈。
偉人也不是生來偉大
我問一個(gè)程序員朋友,你的夢想是什么?他說:“我要成為偉大的程序員。”
“Richard Matthew Stallman、Linus Torvalds、Ken Thompson、Dennis Ritchie、Tim Berners-Lee……這些程序設(shè)計(jì)里程碑上殿堂級的人物,我要像他們一樣,用代碼詮釋我看到的世界。有人說,偉大的程序員是天生的,程序員是需要天賦的。但偉人也不是生而偉大的,偉大的程序員也經(jīng)歷過三天想不出代碼的窘境。每次遇到問題,我就想偉人和我也有共同點(diǎn)——就是曾被問題難住,他想三天,我想三十天,我的付出是他的十倍,以后的成就也是十倍。”
程序員不是刻板印象中不茍言笑的格子控,他們也不乏幽默感。
程序設(shè)計(jì)=算法+數(shù)據(jù)結(jié)構(gòu)+計(jì)算機(jī)語言
我問另一個(gè)程序員朋友,如何看待你的職業(yè)?他說:“我是一個(gè)翻譯家,電腦它聽不懂人類的語言,我翻譯給它聽。”
蓋房子如果不把地基打好,樓蓋的越高,就越危險(xiǎn)。編程也是一個(gè)蓋房子的過程,用算法、數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)語言建起一座高樓。算法就是房子的設(shè)計(jì)圖,數(shù)據(jù)結(jié)構(gòu)是按照設(shè)計(jì)圖建造的骨架,計(jì)算機(jī)語言是用來蓋房子的工具。但如果基礎(chǔ)不扎實(shí),最后會(huì)潰于蟻穴,比如沒有豐富的詞匯量和嚴(yán)謹(jǐn)?shù)恼Z法邏輯,你不會(huì)是一個(gè)好的翻譯家。
程序員不是刻板印象中不修邊幅的理工男,他們更認(rèn)真嚴(yán)謹(jǐn)。
一盤象棋的距離
上文中提到的兩位朋友,是來自于云南天之游科技股份有限公司的培訓(xùn)生。中國象棋是他們來到天之游的首個(gè)任務(wù),從培訓(xùn)部到研發(fā)部,隔著一盤象棋的距離。
為什么要選象棋游戲作為進(jìn)門的試金石呢?
天之游程序總監(jiān)說,最簡單的東西往往最能看出一個(gè)人的水平和潛力,扎實(shí)的基本功和編程思想會(huì)從中體現(xiàn)出來;最簡單的東西最能磨煉一個(gè)人的耐心和創(chuàng)造力,個(gè)人的品質(zhì)會(huì)從中彰顯出來。象棋看似簡單的游戲中,處處體現(xiàn)著數(shù)據(jù)結(jié)構(gòu)與算法優(yōu)化的精髓。
從理論性的學(xué)習(xí)到實(shí)踐性的操作,中間有必須克服的困難,但只要腳踏實(shí)地,終會(huì)跨過這盤象棋的距離。
楚河漢界,隔著兩個(gè)不同的世界。大象走一步的距離遠(yuǎn)于小卒,但終越不過楚河;小卒一次只進(jìn)一格,但穩(wěn)扎穩(wěn)打不被“吃掉”卻可以越過雷池。因?yàn)樾∽湟徊揭桓竦姆较蛑荒芟蚯埃瑳]有退路。