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