|
十年程序員(一)
2012年,終于可以和人家說(shuō),我有十年工作經(jīng)驗(yàn)了。幸運(yùn)的是,十年后,我還在寫(xiě)代碼。
十年前,促使我選擇寫(xiě)程序作為一生追求的是我對(duì)寫(xiě)程序的好奇以及實(shí)現(xiàn)功能后的成就感,但那時(shí),在對(duì)自己未來(lái)充滿信心的同時(shí),內(nèi)心深處依然惴惴不安??M繞心頭的烏云是所謂30歲程序員的說(shuō)法。
那時(shí),很流行的一個(gè)論調(diào)是,程序員只能做到30歲。人到30歲之后,智力在下降,體力在下降,再加上家庭的瑣事,人很難再寫(xiě)程序了。
那時(shí)的自己尚年輕,沒(méi)有體會(huì)到30歲后的狀態(tài),很難知道這種說(shuō)法的真?zhèn)?,所以,?nèi)心里還是會(huì)有一絲絲恐懼。有時(shí),我會(huì)假想,29歲的最后一天我還能寫(xiě)程序,30歲生日一覺(jué)醒來(lái),我的編程能力便煙消云散了。
大概當(dāng)我有5年工作經(jīng)驗(yàn)時(shí),那個(gè)擾人的論調(diào)依舊,只是年齡上,從30歲變成了35歲。我暗自慶幸,我又可以多寫(xiě)五年程序了。也是那一年,我進(jìn)入了ThoughtWorks,在這里,我遇到了一群瘋狂熱愛(ài)代碼的人,我所能做的就是暗自打磨自己的編程技藝。
在ThoughtWorks幾乎五年了,這期間,我跨過(guò)了30歲的門(mén)檻。時(shí)至今日,我依然能寫(xiě)程序,我最擔(dān)心的事情沒(méi)有發(fā)生,而且,我寫(xiě)程序的能力似乎還在提升。相比于剛開(kāi)始寫(xiě)程序的小朋友,
- 我在動(dòng)手之前,就可以對(duì)自己要實(shí)現(xiàn)的內(nèi)容有個(gè)更好的理解。
- 我的解決方案會(huì)更簡(jiǎn)單,更容易理解。
- 我分解出的任務(wù)步驟更小,更容易實(shí)現(xiàn)。
- 我寫(xiě)程序時(shí)考慮的方面會(huì)更多
- 我會(huì)更多的考慮寫(xiě)出的程序?qū)τ谌值挠绊?/li>
在這期間,我也逐漸釋然。其實(shí),不是30歲能不能編程,而是那個(gè)時(shí)候,30歲的程序員本來(lái)就沒(méi)有多少,這也是我5年的時(shí)候,論調(diào)成了35歲,是因?yàn)檫@一代人已經(jīng)長(zhǎng)過(guò)了30。這不,今年就有人開(kāi)始討論一些40歲程序員的問(wèn)題了。
十年程序員(二)
隨著自己在ThoughtWorks經(jīng)歷的事越來(lái)越多,對(duì)這個(gè)曾暗自困擾我許久的問(wèn)題,我也有了新的思考:真正可怕的不是X歲后能不能編程,而是X歲后只能編程。
為數(shù)不少有工作經(jīng)驗(yàn)的人進(jìn)入到ThoughtWorks之后,會(huì)感覺(jué)很不適應(yīng),因?yàn)檫@里很多剛剛畢業(yè)工作一兩年的小朋友寫(xiě)程序都很厲害,他們自身在寫(xiě)程序的優(yōu)勢(shì)就不那么明顯了。結(jié)對(duì)的時(shí)候,他們不斷被這些小朋友們挑戰(zhàn),有些人就會(huì)很郁悶,因此離開(kāi)ThoughtWorks的例子也是有的。
單就純粹的代碼輸出能力而言,經(jīng)過(guò)一段時(shí)間的刻意練習(xí),人和人之間往往不會(huì)相差很多,相比較而言,在編寫(xiě)一段代碼時(shí),可以考慮到的方面,不同人會(huì)因?yàn)榻?jīng)驗(yàn)和視野差異極大。比如,要一個(gè)新手實(shí)現(xiàn)一個(gè)需求,他就會(huì)奔著代碼直沖過(guò)去,而一個(gè)有經(jīng)驗(yàn)的人,則會(huì)考慮許多方面,為什么要做這樣一個(gè)需求,實(shí)現(xiàn)這樣一個(gè)需求有哪些技術(shù)方案,實(shí)現(xiàn)這樣一個(gè)功能是不是會(huì)對(duì)現(xiàn)有架構(gòu)有什么影響,寫(xiě)這樣一段代碼是不是需要對(duì)現(xiàn)有代碼進(jìn)行某些重構(gòu),等等。
如果一個(gè)人具備的所謂工作經(jīng)驗(yàn),僅僅是所謂代碼輸出的經(jīng)驗(yàn),那他的實(shí)際價(jià)值就會(huì)大打折扣。
事實(shí)上,在ThoughtWorks的開(kāi)發(fā)團(tuán)隊(duì)里面,我們也是鼓勵(lì)一個(gè)人嘗試不同的東西,比如,有人可以幫助QA做測(cè)試,有人可以去嘗試去做業(yè)務(wù)分析,有人會(huì)在公司內(nèi)部做分享等等。做這些工作本身并不能讓我們的開(kāi)發(fā)技能得到大幅度提升,但這些不同的嘗試會(huì)讓人不同的看問(wèn)題的角度,如果我沒(méi)有了解過(guò)業(yè)務(wù)分析,我就不會(huì)考慮一個(gè)事情本身的價(jià)值,傾向于別人告訴我做什么,我就去做什么。如果沒(méi)有帶過(guò)團(tuán)隊(duì),我就不會(huì)考慮,怎么把一個(gè)設(shè)計(jì)做得簡(jiǎn)單,讓別人更好理解和接受。
道理說(shuō)白了很簡(jiǎn)單,一個(gè)人的價(jià)值取決于他有多大的不可替代性。如果一個(gè)人只能按照別人的要求寫(xiě)代碼,他的技能就是很容易替代的。
十年程序員(三)
經(jīng)驗(yàn)是什么?有一段時(shí)間,我一直在問(wèn)自己這個(gè)問(wèn)題。
許多所謂有著“相同工作經(jīng)驗(yàn)”的人,表現(xiàn)的差異卻極大。即便在ThoughtWorks,一同起步的畢業(yè)生,幾年下來(lái),個(gè)人的差距也是非常明顯的。有人已經(jīng)可以帶團(tuán)隊(duì)了,有人成為了技術(shù)專家,有人卻只能在團(tuán)隊(duì)里低著頭忙活著自己的一畝三分地。
面對(duì)一個(gè)問(wèn)題的時(shí)候,我所能想到的就是我的經(jīng)驗(yàn)。
我所能想到的,取決于我做過(guò)的事情。習(xí)慣于在舒適區(qū)練習(xí)的人,因?yàn)樽鲋举|(zhì)上類(lèi)似的東西,面對(duì)問(wèn)題時(shí),腦子里想到的東西只會(huì)局限在很窄的范圍內(nèi)。很多貌似工作了很多年的人,其實(shí),只是在不斷重復(fù)最初一兩年的事情而已,唯一的差別或許只在熟練程度而已。所以,工作經(jīng)驗(yàn)和工作年限是截然不同的兩個(gè)東西。
只有跳出自己的舒適區(qū),嘗試一些不同的東西,才會(huì)打開(kāi)一個(gè)人的思路,讓人得到真正意義上的提升。
ThoughtWorks的經(jīng)歷讓我開(kāi)始把目光投向代碼以外的許多東西,事實(shí)上,在ThoughtWorks里,凡是代碼寫(xiě)得好的人,幾乎都是具有多方面技能的:能寫(xiě)代碼,能設(shè)計(jì)架構(gòu),能分析業(yè)務(wù),能做測(cè)試,能帶團(tuán)隊(duì),能面試,能做咨詢,甚至能建設(shè)新辦公室。
正是因?yàn)槟茏龅氖虑楹芏?,所以,再坐回到?jì)算機(jī)面前寫(xiě)代碼時(shí),想到的就不僅僅是局部的一點(diǎn)點(diǎn)代碼,而擁有的是更好的大局觀:
- 我要知道Story的價(jià)值所在,保證我寫(xiě)的東西真正有意義。
- 我要多從各個(gè)角度考慮一下這個(gè)問(wèn)題,以免出現(xiàn)bug。
- 我要寫(xiě)出干凈的代碼,以便其他人更好維護(hù)。
- 我做出的設(shè)計(jì)要讓團(tuán)隊(duì)成員都能更容易的理解
- 我要讓團(tuán)隊(duì)成員更好的成長(zhǎng)
- 我要站在的客戶的角度思考這個(gè)問(wèn)題
- 我要在客戶面前更好的維護(hù)團(tuán)隊(duì)利益
- 我需要考慮整個(gè)辦公室人員的成長(zhǎng)
- ??
記得有人對(duì)我說(shuō),你做了很多有意思的事:從最早的Ruby on Rails交付項(xiàng)目,到后來(lái)的咨詢,再到現(xiàn)在基于DevOps on Cloud的持續(xù)交付。在我看來(lái),得到這些機(jī)會(huì),恰恰是因?yàn)槲揖邆淞俗龊芏嗍虑榈哪芰Α?/p>
能做的事情越來(lái)越多,路也就越來(lái)越寬,得到的機(jī)會(huì)也就越來(lái)越多,得到鍛煉也就越來(lái)越多,能力也就越來(lái)越強(qiáng),能做的事情也就越來(lái)越多。不知不覺(jué)中,一個(gè)人就會(huì)進(jìn)入到一個(gè)正向反饋循環(huán)中。
幸運(yùn)的是,十年來(lái),我一直在成長(zhǎng),不管是主動(dòng)還是被動(dòng)。
版權(quán)聲明:轉(zhuǎn)載時(shí)請(qǐng)以超鏈接形式標(biāo)明文章原始出處和作者信息及本聲明
http://dreamhead.blogbus.com/logs/188002525.html
it知識(shí)庫(kù):十年程序員,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。