想轉(zhuǎn)型的都是那些不甘于現(xiàn)狀的,我就是其中之一。
我是2005年畢業(yè),從畢業(yè)前的實(shí)習(xí)開(kāi)始,做CAD二次開(kāi)發(fā),電氣設(shè)計(jì)軟件。
2006年轉(zhuǎn)做無(wú)紙辦公軟件,那個(gè)年代無(wú)紙辦公流行,C++更是主流,感覺(jué)也算有前途。
2008年轉(zhuǎn)做Open Office的開(kāi)發(fā),維護(hù)世界級(jí)的產(chǎn)品會(huì)產(chǎn)生一種自豪感,Open Office本身代碼體量也的確非常大。
2010年轉(zhuǎn)做安全類的產(chǎn)品,從一個(gè)模塊級(jí)負(fù)責(zé)人,核心程序員,到架構(gòu)師,再到負(fù)責(zé)整體產(chǎn)品線的負(fù)責(zé)人,經(jīng)歷了4年時(shí)間。
在我的職業(yè)生涯中時(shí)不時(shí)就會(huì)產(chǎn)生一種莫名的危機(jī)感,經(jīng)常會(huì)問(wèn)自己,自己掌握的技術(shù)夠深嗎、是主流的技術(shù)嗎、未來(lái)的職業(yè)發(fā)展又在哪里?
2006年一個(gè)同事跳槽去了一家大型企業(yè),走的時(shí)候跟我們說(shuō),做二次開(kāi)發(fā)沒(méi)有前途,出去面試會(huì)被人看不起。但是我發(fā)現(xiàn),在具體編碼的過(guò)程中,很多經(jīng)驗(yàn)豐富的程序員甚至不能把一個(gè)對(duì)話框程序?qū)懙暮芷粒粋€(gè)對(duì)話框類的實(shí)現(xiàn)將界面與邏輯混在一起,沒(méi)有太多解耦的思想在里面。后來(lái)的工作中悟出一個(gè)道理,沒(méi)有小角色,只有小演員,只有把現(xiàn)在的事情做好,才能有未來(lái)。
2008年我在一個(gè)不滿意的環(huán)境中,苦苦的尋找下一步的方向,從坐落在小區(qū)里的公司一直面試到了微軟和IBM這個(gè)級(jí)別的公司里。被挫了很多次,也積累了很多面試的經(jīng)驗(yàn)。其間有一家做搜索引擎的公司我沒(méi)去成,我的理由只是因?yàn)楣べY沒(méi)有任何提高。其實(shí)大家跳槽的時(shí)候都說(shuō)是為了職業(yè)發(fā)展,結(jié)果往往是哪里給的條件好就去哪里,而在一般意義上看,高工資與好公司一般都是成正比的。當(dāng)然偶爾也有例外,比如這里提到的做搜索的公司,如果當(dāng)初在08的時(shí)候就選擇做搜索引擎,也許后面的故事會(huì)很不同。
2010年我擁有了工作5年的工作經(jīng)驗(yàn),我發(fā)現(xiàn)一般工作到5年以后才會(huì)遇到一些真正的好機(jī)會(huì)。跳槽去了一家剛剛在創(chuàng)業(yè)板上市不久的公司,做一些安全類的產(chǎn)品。從這一刻開(kāi)始,由于業(yè)務(wù)的快速發(fā)展和領(lǐng)導(dǎo)的信任,我開(kāi)始擁有了一些能夠獨(dú)當(dāng)一面的能力與鍛煉機(jī)會(huì)。除了編寫一些從無(wú)到有的模塊,我開(kāi)始關(guān)注架構(gòu)的設(shè)計(jì),團(tuán)隊(duì)培養(yǎng),產(chǎn)品管理等一系列更宏觀的問(wèn)題。
回到原來(lái)的問(wèn)題,我們?yōu)槭裁匆D(zhuǎn)型,原因總結(jié)如下:
1. 大多數(shù)的程序員職業(yè)起點(diǎn)都偏低,很多人甚至只能從外包做起;
2. 大多數(shù)的程序員做不上主流產(chǎn)品,主流技術(shù),所掌握的都是一些較為落后的技能,靠體力掙錢,而不是靠智力;
3. 很多公司不能給員工穩(wěn)定的成長(zhǎng)預(yù)期,過(guò)了某一個(gè)發(fā)展階段雙方很難找到共贏點(diǎn);
4. 世界發(fā)展太快,當(dāng)我們還在懵懂之時(shí)外面世界已經(jīng)經(jīng)歷了從互聯(lián)網(wǎng),云計(jì)算,移動(dòng)互聯(lián)網(wǎng),大數(shù)據(jù),人工智能,一波又一波的產(chǎn)業(yè)升級(jí)。而我們一波都沒(méi)趕上。
于是我們要轉(zhuǎn)型。2011年當(dāng)我看到hadoop權(quán)威指南這本書的時(shí)候,我感覺(jué)大數(shù)據(jù)一起會(huì)流行起來(lái),而且大數(shù)據(jù)未來(lái)會(huì)在各行各業(yè)遍地開(kāi)花。
可是,留給學(xué)習(xí)的時(shí)間真的很少,工作忙碌,下班要顧家。只好擠時(shí)間學(xué)習(xí),在上班的路上,坐公交車、坐地鐵,給小孩洗衣服,可以帶著耳機(jī)聽(tīng)視頻,成了唯一的學(xué)習(xí)方式。聽(tīng)視頻雖然不能學(xué)到太多技術(shù)精髓,但也可以了解不少技術(shù),開(kāi)闊眼界。
2014年底,我轉(zhuǎn)型做一些也數(shù)據(jù)相關(guān)的工作,做數(shù)據(jù)清洗,分析,建模,治理。我總結(jié)一下轉(zhuǎn)型要做的一些事情以及要學(xué)的東西。
1. 要有行動(dòng),只停留在想法層面產(chǎn)生不了任何實(shí)質(zhì)上的進(jìn)展;
2. 擠時(shí)間,時(shí)間對(duì)于每一個(gè)認(rèn)真生活的人都很寶貴,擠一下吧,少玩玩游戲啥的,總會(huì)有的;
3. 要重視學(xué)習(xí),尤其是看書進(jìn)行系統(tǒng)學(xué)習(xí),從網(wǎng)絡(luò)上看到的只言片語(yǔ)做為了解還行,但是不去系統(tǒng)掌握知識(shí),境界很難上到新的臺(tái)階;
4. 要注視理論學(xué)習(xí),上班以后最不缺少的就是實(shí)踐,天天都在實(shí)踐反而凸顯的學(xué)習(xí)理論的重要性;
5. 把主要學(xué)習(xí)時(shí)間花在那些最通用、最被廣泛采用的技術(shù)上,如果每天都在學(xué)習(xí)那些其他公司所不需要的領(lǐng)域知識(shí)時(shí),說(shuō)明該跳槽了;
6. 要注重基本的數(shù)據(jù)結(jié)構(gòu)和算法,這些是寫好程序的基礎(chǔ),基礎(chǔ)決定高度,做那些能夠解決困難問(wèn)題的人,而不是做只能執(zhí)行具體任務(wù)的人。差別在于能不能把現(xiàn)實(shí)的工程問(wèn)題抽象成數(shù)據(jù)與算法。
7. 選一個(gè)好的方向,像高并發(fā),分布式系統(tǒng),數(shù)據(jù)庫(kù),大數(shù)據(jù)工具,統(tǒng)計(jì)建模,機(jī)器學(xué)習(xí),數(shù)據(jù)挖掘都是即有用又缺人的領(lǐng)域,搞好任何一個(gè)領(lǐng)域都會(huì)有好的發(fā)展;
8. 我感覺(jué)能把數(shù)據(jù)分析、機(jī)器學(xué)習(xí)、自然語(yǔ)言處理、R語(yǔ)言這些學(xué)好,統(tǒng)計(jì)建模依然是很基礎(chǔ)知識(shí),不能跳躍學(xué)習(xí);
9. 學(xué)習(xí)最重要的是入門與堅(jiān)持,入門可以學(xué)視頻教程,精深要靠應(yīng)用與時(shí)間打磨;
就程序員的職業(yè)發(fā)展來(lái)看,我總結(jié)自己的一些經(jīng)驗(yàn):
1. 1~3年,要學(xué)精一門語(yǔ)言,這并不太難;
2. 3~5年,應(yīng)該關(guān)注軟件的設(shè)計(jì),設(shè)計(jì)模式等知識(shí)
3. 5~7年,應(yīng)該能獨(dú)立完成一個(gè)軟件模塊,從需求到測(cè)試的全過(guò)程。我發(fā)現(xiàn)一般這個(gè)階段會(huì)遇到一些獲得期權(quán)或者股權(quán)的機(jī)會(huì),能不能最終形成收益看運(yùn)氣吧;
4. 7~10年,爭(zhēng)取可以負(fù)責(zé)更為全面的工作
在這個(gè)過(guò)程中,像數(shù)據(jù)庫(kù),操作系統(tǒng),并發(fā),多線程,項(xiàng)目管理,產(chǎn)品管理這些知識(shí)都需要,掌握的越多越好吧。
開(kāi)發(fā)一個(gè)數(shù)據(jù)產(chǎn)品跟一個(gè)傳統(tǒng)軟件產(chǎn)品并沒(méi)有太大的本質(zhì)差異,很多技能從事哪個(gè)行業(yè)都是需要的。
posted on 2016-07-14 13:24
胡滿超 閱讀(1770)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
架構(gòu)設(shè)計(jì)