在這個(gè)節點(diǎn)講講我對職業(yè)發(fā)展路徑的理解,另外就是理一理腦子里的一些思路,過(guò)段時(shí)間再看此文又可能是另一番理解。很多路從后往前看的時(shí)候總會(huì )有遺憾,要是當初怎么怎么樣就會(huì )怎么怎么樣?再完美也會(huì )有缺憾,因為人是不知足的。后悔也沒(méi)用。有一句話(huà)叫做:早知如此,又何必當初。命運有些是自己可以掌握的,有些可能需要運氣和機會(huì )。
先說(shuō)說(shuō)路徑可達這個(gè)詞吧?這個(gè)詞我曾經(jīng)說(shuō)過(guò)一次,我看很多人會(huì )覺(jué)得他的路看不到未來(lái),有些人就可以清晰的看到他的方向。這句話(huà)怎么理解。比如說(shuō)你現在所做的工作過(guò)兩年會(huì )不會(huì )有所改變。如果答案是否定的,那么說(shuō)明現在的工作是沒(méi)有上升通道的,就需要改變。當然安于現狀不思進(jìn)取是另外一回事。時(shí)刻反思自己所走的路,然后迅速調整,可能會(huì )少走很多彎路,畢竟時(shí)間不可逆。
我很多時(shí)候都會(huì )想我五年后在哪里,做什么?大部分人對于這個(gè)都會(huì )很模糊。因為時(shí)間跨度太大。五年時(shí)間相當于整個(gè)生命長(cháng)河其實(shí)很短,但在職業(yè)規劃中確是很長(cháng)的段,也沒(méi)有誰(shuí)會(huì )把五年做為一整段來(lái)規劃。從時(shí)間規劃來(lái)講肯定會(huì )用到時(shí)間的切分。很多宏觀(guān)的東西只有落地到一件件事上才是有效的,才算得上完整的規劃。每天都在想我五年后做架構師,做項目經(jīng)理。這樣除了浪費時(shí)間之外沒(méi)有任何好處。但是話(huà)又說(shuō)回來(lái)人是有惰性的,人對于這種限制的東西有天然的排斥感,執行起來(lái)非常痛苦,即使開(kāi)始執行起來(lái)很有激情,過(guò)不了幾個(gè)月,所有的計劃都縮水了。至少我是有這種感覺(jué),所以我的計劃永遠都無(wú)效,這同時(shí)也導致了很多事情的浪費和盲目性。也導致學(xué)習變成一個(gè)一個(gè)孤立的點(diǎn),完全沒(méi)有串連性。因為你是想到學(xué)什么學(xué)什么,而不是計劃著(zhù)學(xué),一段時(shí)間后可能會(huì )有一些積累,但是永遠深度不夠,這是我大部分時(shí)候的感受。沒(méi)有計劃是很要命的事。如果一個(gè)人能很好的管理時(shí)間那么必成大牛。好學(xué)生好在哪里,排除智商的因素外,就是時(shí)間管理和善于思考。我覺(jué)得我本身最大的問(wèn)題:時(shí)間管理,自律性,溝通能力。這三塊是我覺(jué)得自己最缺乏一定程度上是致命的,很大程度上會(huì )決定我未來(lái)的所發(fā)展的高度。
在程序員中一直有個(gè)討論就是將來(lái)要做項目經(jīng)理還是做架構師。這兩條路的側重點(diǎn)不一樣,所以積累的東西也可能不同。項目經(jīng)理更強調綜合能力,比如說(shuō)協(xié)調能力,溝通能力等一系列偏管理的能力。而架構師可能更專(zhuān)注于技術(shù)本身。兩條路有重疊,但是更多的是區別。有些項目經(jīng)理可能就不會(huì )寫(xiě)代碼。但是同樣可以帶好一個(gè)項目,一個(gè)團隊。
我曾經(jīng)也問(wèn)自己要是以后這兩條路走哪條,其實(shí)都可以嘗試一下。比如說(shuō)給一個(gè)項目讓我帶帶,我能否把它帶好,其實(shí)需要機會(huì ),同時(shí)也需要自己去爭取這樣的機會(huì ),所以我的答案就是兩條路都可以走走。很多人認為項目經(jīng)理是一個(gè)職位,我倒覺(jué)得是動(dòng)態(tài)的,這個(gè)項目中你做PM,另外一個(gè)項目中可能又是開(kāi)發(fā)。所以不永遠是PM,也不永遠是開(kāi)發(fā)。
就自己本身的發(fā)展而言,專(zhuān)注于技術(shù)可能是一條更加明智的路。管理這個(gè)東西總的說(shuō)有點(diǎn)虛無(wú)飄渺,各都有各的一套理論,完全無(wú)法評估。但是技術(shù)是可測量的,通過(guò)一定的努力技術(shù)水平都會(huì )有定的躍升。記得在《肖申克的救贖》里面說(shuō)到地質(zhì)的形成只需要兩個(gè)條件:壓力和時(shí)間。其實(shí)對于學(xué)技術(shù)也是一樣的。只要肯學(xué)一定會(huì )達到某個(gè)水平。到大牛級別的確實(shí)需要一些悟性和天分。
我記得以前總有人問(wèn)我你最擅長(cháng)的領(lǐng)域是什么?這個(gè)問(wèn)題一問(wèn)我就懵了,因為我從來(lái)就沒(méi)想過(guò)這個(gè)問(wèn)題?赡鼙旧磉沒(méi)到分領(lǐng)域的級別。還處于一種“原始積累”階段。技術(shù)學(xué)到一定的時(shí)候是分領(lǐng)域的。領(lǐng)域之間會(huì )有一些交叉。
我所知道的大方向是“高性能,大數據量,移到平臺“。這是我給Java這所分的三個(gè)方向。其實(shí)我上面所說(shuō)的三個(gè)方向不一定是同一個(gè)維度。但是我認為寫(xiě)Java的如果沒(méi)有沾上這三個(gè)方向中的一個(gè),一定沒(méi)有前途。高性能和大數據量的處理需要比較多的技術(shù)儲備。很多人說(shuō)寫(xiě)個(gè)Java就是CRUD(嚴格來(lái)講,對于計算機本身所有的操作都是CRUD)?墒窃诟咝阅芮闆r下所涉及的問(wèn)題一下成指數級增長(cháng)。各種“水平擴展”,“服務(wù)化”,“容災”,”緩存”等各種牛B的詞匯就來(lái)了,你寫(xiě)一般的CRUD最多也就知道個(gè)SSH,這是不一樣的。比如說(shuō)做大數據量的處理一定會(huì )知道Hadoop,然后就是云計算,云存儲。反正什么牛B什么來(lái)。移動(dòng)平臺和上面我所說(shuō)的維度不一樣,因為移動(dòng)平臺相對應的是PC平臺。但是由于移動(dòng)平臺的發(fā)展時(shí)間很短。所以能搭上這趟快車(chē)也有不錯的發(fā)展。要是早些年(2012年以前)進(jìn)入移動(dòng)平臺的開(kāi)發(fā),現在同水平的程序員工資肯定更高。這是平臺發(fā)展所帶來(lái)的紅利。雖然兩年前我預見(jiàn)到了移動(dòng)平臺的無(wú)可限量,但是那時(shí)候就像一個(gè)一無(wú)所有的人,還管它什么移動(dòng)平臺還是PC平臺,能寫(xiě)代碼做項目就OK。以至于我學(xué)了一個(gè)月的Android就偃旗息鼓。這里其實(shí)又驗證了我的幾個(gè)缺點(diǎn)。
不管怎么樣技術(shù)的底層都是一樣的,這就是為什么算法和數據結構是永恒不衰的。很多人說(shuō)算法和數據結構無(wú)用那就是無(wú)知的表現。這個(gè)無(wú)知就像在討論讀大學(xué)有沒(méi)有用一樣。
我為什么覺(jué)得自己應該走架構師這條路,這和我職業(yè)終極目標是契合的。這里先說(shuō)一下架構師做什么?架構師負責整個(gè)項目甚至整個(gè)系統的構架(這一句話(huà)等于廢話(huà))。一般型的項目可能這個(gè)設計PM就做掉了。但是系統復雜度上升的時(shí)候,會(huì )涉及到系統之間的交互,還有技術(shù)的可行性和整個(gè)設計的方案,主要是從宏觀(guān)上來(lái)講。這個(gè)時(shí)候架構師就出場(chǎng)了。另外的工作就是承擔一定的培養新人的工作。所以架構師都需要具備比較好的口才,很多人都說(shuō)程序員不會(huì )說(shuō)話(huà),錯了,那是低端的,到了高端的程序員口才都極好,一點(diǎn)都不比做銷(xiāo)售的差。這后面會(huì )發(fā)現有一個(gè)發(fā)展方向就是“講師”,還可以寫(xiě)書(shū),其實(shí)這些都可能是一些“副產(chǎn)品”。技術(shù)到一定的境界很多事情到都是水到渠成。
架構師寫(xiě)代碼嗎?當然寫(xiě)。他們肯定不會(huì )寫(xiě)那些簡(jiǎn)單的代碼,他們一般寫(xiě)什么代碼?框架,一般來(lái)講優(yōu)秀的框架都是一個(gè)人或者極少人寫(xiě)出來(lái)的。比如說(shuō)Linux的核心就是一個(gè)人寫(xiě)出來(lái)的。好的代碼絕不是人堆出來(lái)的。你給100個(gè)初級程序員也整不出一個(gè)Struts來(lái)。這里會(huì )衍生出另外一條路,就是開(kāi)源框架,很多牛人都是開(kāi)源社區的愛(ài)好者。都或多或少的參與了一些開(kāi)源項目。甚至把自己寫(xiě)的一些東西開(kāi)源出來(lái)。程序員發(fā)展到后面其實(shí)是“知識分子”。一般來(lái)講能做到這個(gè)級別那是相當厲害的了,這當然不是普通人能做到的。
上面所說(shuō)的是條路徑,能走到哪一步有機遇,從長(cháng)遠來(lái)講都是自己可以規劃的。如果機會(huì )好可能少個(gè)幾年,機會(huì )不好可能多個(gè)幾年。理論上來(lái)講這條路對于每個(gè)程序員講都是可達的。所以事在為人,騷年,加油吧!