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