一個(gè)平庸程序員的反思:你到底想干什么
譯文前天晚上,老婆和我偎在床上說(shuō)悄悄話,大致的意思是所有她的同學(xué)都有房子了,有些還當(dāng)上了管理人員,并帶著少許調(diào)侃說(shuō)我以后也就這樣了,1年10多萬(wàn),失業(yè)就會(huì)掉頭發(fā)。
我今年28,一個(gè)C++/Java程序員,跟大多數(shù)人一樣,天資平平,雖然愛(ài)學(xué)習(xí),但沒(méi)有上一個(gè)好大學(xué),工作這么幾年也沒(méi)有混上一個(gè)管理人員,有時(shí)候在自己看來(lái),稍稍有些可悲。因?yàn)楣俦疚坏臍埩?農(nóng)耕文化,在中國(guó)搞技術(shù)歷來(lái)就是一個(gè)吃力不討好的事情。搞技術(shù)意味著被人管,薪酬低,上升通道窄,所以好多技術(shù)人員包括優(yōu)秀的總是希望能在一段時(shí)間以后轉(zhuǎn)型,可是管理也是一門(mén)學(xué)問(wèn),控制社會(huì)關(guān)系不一定比控制計(jì)算機(jī)簡(jiǎn)單,所以彷徨且不時(shí)有受挫感。我也一樣,有時(shí)候一個(gè)人看書(shū)的人總會(huì)想自己的理想到底是什么?什么才會(huì)讓我覺(jué)得自己有存在價(jià)值?思來(lái)想去,我還是覺(jué)得自己是一個(gè)比較典型的程序員,喜歡寫(xiě)程序,喜歡調(diào)試,喜歡幫助別人,這些都能帶給我快樂(lè)。既然認(rèn)定了這條路線,就堅(jiān)定地走下去,但只是想做技術(shù)人員還不夠。
我有過(guò)一位法國(guó)同事,技術(shù)人員40來(lái)歲,做測(cè)試寫(xiě)文檔,放在中國(guó)來(lái)說(shuō)是典型的失敗。有次看了他寫(xiě)的詳細(xì)測(cè)試報(bào)告,我不敢相信Excel能做出這么NB的東西出來(lái),在我的贊揚(yáng)之下他臉上蕩漾著滿足感。聽(tīng)他說(shuō)自己做了十多年技術(shù)人員,覺(jué)得自己挺適合干這個(gè),非常坦然,我有一種樸素的感動(dòng)。這根我看到國(guó)內(nèi)程序員普遍焦慮不一樣(當(dāng)然有社會(huì)保障因素),那就是專(zhuān)注于自己喜歡的,一直干下去。在興趣和嚴(yán)格要求自己產(chǎn)出物的導(dǎo)引下,一個(gè)你認(rèn)為不起眼的小事情也會(huì)讓人感覺(jué)莫大的驚喜。歲月會(huì)讓我們老去,但興趣,專(zhuān)業(yè)的心態(tài)不會(huì)。我更希望在幫傳代的過(guò)程中,用樸素的,職業(yè)的技術(shù)情節(jié)影響新生代程序員,推動(dòng)行業(yè)的整體進(jìn)步。
你到底想干什么?這是一個(gè)問(wèn)題。我看到好多人工作幾年后還在今天groovy, 明天ruby,后天uml,然后是struts2,反正什么火跟什么。一天一天寶貴的時(shí)間再流逝,人也越來(lái)越焦慮,我不知道他們到底想要干什么,因?yàn)槠胀ㄈ耸呛茈y同時(shí)干好幾件事情的。或許他們認(rèn)為這些新鮮簡(jiǎn)單,學(xué)學(xué)就會(huì),但我認(rèn)為,不專(zhuān)業(yè)是技術(shù)人員***的敵人。很久前我面試過(guò)一個(gè)開(kāi)發(fā)人員,據(jù)說(shuō)對(duì)struts非常精通,我就問(wèn) 說(shuō)說(shuō)你怎么將jbpm集成到struts里面去,然后支支吾吾一大堆,貌似200+k的struts源代碼都沒(méi)有讀過(guò)(我試驗(yàn)過(guò),擴(kuò)展webActionContext, 引用jbpmcontext,增加線程保護(hù),擴(kuò)展struts bean映射jbpm var)。就如同學(xué)groovy,但不知道它是通過(guò)什么樣的語(yǔ)法翻譯出來(lái)的(parser generator);學(xué)ruby,不知怎樣用C增加系統(tǒng)關(guān)聯(lián)性,總在技術(shù)的外圍打轉(zhuǎn),這樣下去,焦慮就是一種必然了。我的想法就是抓住一種最感興趣的,把它搞透,不要害怕哪一天這個(gè)技術(shù)被淘汰了,計(jì)算機(jī)越往下關(guān)聯(lián)越大,周期越長(zhǎng)。即使有時(shí)候因?yàn)楣ぷ鞯男再|(zhì)讓我們?cè)谕鈬蜣D(zhuǎn),我們也應(yīng)該在興趣點(diǎn)上持續(xù)深入,專(zhuān)業(yè)一點(diǎn),更專(zhuān)業(yè)一點(diǎn),即可以探奇得到滿足感,也可以讓你時(shí)時(shí)充滿競(jìng)爭(zhēng)力,說(shuō)不定哪天就用上了。
計(jì)算機(jī)的基礎(chǔ)是編譯+操作系統(tǒng)+數(shù)學(xué),比如寫(xiě)一個(gè)高效的多線程程序,寫(xiě)一個(gè)調(diào)試器,寫(xiě)一個(gè)腳本語(yǔ)言。基礎(chǔ)的基礎(chǔ)是數(shù)學(xué),所以要想專(zhuān)業(yè)必須趁年輕能看進(jìn)去書(shū)的時(shí)候打好數(shù)學(xué)基礎(chǔ),即使不通透,也要知道概念。就拿我做的DSL的graphical editing來(lái)說(shuō),就包含解析幾何、線形代數(shù)、立體幾何、微積分、圖論(離散數(shù)學(xué))等學(xué)科,這還不包括DSL的Run/Debugger/Debuggee,Text Editing等。如果你做的工作感覺(jué)不到數(shù)學(xué)的存在,那很危險(xiǎn):)。曾經(jīng)有人說(shuō)“計(jì)算機(jī)是數(shù)學(xué)的藝術(shù)”,一點(diǎn)不假。
但總是有些笨人比如我,小老頭了還在看數(shù)值計(jì)算,概率等數(shù)學(xué)書(shū),看到ms, google的requirements都不敢投簡(jiǎn)歷,但沒(méi)關(guān)系,只要能夠按照自己定的目標(biāo)逐步靠近,不斷學(xué)習(xí),不斷挑戰(zhàn)自我,肯定會(huì)有收獲,無(wú)論物質(zhì)上還是心理上。即使最終沒(méi)有在IT史留下名字的一撇,人生也沒(méi)有白活,因?yàn)槲以谧约赫局耐恋厣险J(rèn)真地來(lái)過(guò)。
愛(ài)就努力的去做吧,愿每個(gè)程序員都能有堅(jiān)強(qiáng)的信念和一片屬于自己的天空!
【編輯推薦】