前言
很多年前,剛剛從大學畢業的時候,很多公司來校招。其中最爛俗的一個面試問題是:“你希望你之后三到五年的發展是什么?”。我當時的標準回答是(原話):“成為在某一方面能夠獨當一面的技術專家“。后來經歷了幾家不同的公司,換了不同的方向,才知道這個真是一個很難的問題。因為兵無常勢,什么東西都是在不斷的變化,一早的時候看好的東西可能會被淘汰。
(幾乎)沒有人能夠看準技術的下一個方向,因為這個問題實在是太難了,能夠做到這一點的你就成為了技術界的巴菲特了。比如說01年加入Google,07年加入Facebook,00年加入阿里巴巴。做到這一點的人肯定有資本也有眼光去做風險投資,就算不做風險投資那么財務自由也是妥妥的。
現在畢業六年,從北京到上海到硅谷,從國內互聯網公司外企,看到了公司好的地方和壞的地方,這里只是根據自己的經歷寫一些大方向選擇建議,僅供參考。
哪種編程語言?
語言是每個程序員做出的第一個選擇,經常能夠看到各種討論說這個語言NB那個語言SB,其實每個流行語言本身都沒有什么問題,因為它們都是來自一群超級大牛的努力。絕大部分的語言之爭都是來自于懶惰不愿意去學習新的語言而已,不過那么作為學習的時候,什么語言最重要呢?
我的建議是:
對于你想做的方向,看看哪個語言有最多的成功的項目就是了。比如說你想做前端,就學JS,參考Angular.js/React.js,如果想做大數據,就學Java,參考Hadoop。對于一些語言如果只是看起來簡單好用但是沒有什么成功的項目的支撐,那么對不起了會這種語言的平均工資肯定上不去,因為能給出好價錢的公司不太會用這種語言。
另外建議至少會一種腳本語言,比如說 Python/Bash 之類的,能夠讓你在開發的時候事半功倍。
金錢還是興趣?
是選擇可能讓你掙到更多錢的方向呢,還是選擇一個自己更加喜歡的方向?
游戲一直是伴隨著我學習的朋友,尤其是暴雪的游戲,玩了六年的星際/CS,玩了三年的魔獸,玩了八年的Dota(1/2)。 在大學的時候,做了一些3D游戲的項目,了解關于3D游戲引擎和游戲AI的知識,所以在大學畢業的時候,希望自己未來的事業是能夠參與一些NB的游戲,比如說GTA、使命召喚之類的。
校招的時候投了好多公司的游戲崗位,比如說騰訊、網易、還有當時很火的Popcap。為了準備校招,我還裝上了好幾個網游體驗了一下(我不玩網游)。這些游戲低齡化的設計和對人民幣玩家的趨之如騖讓我感覺自己未來要做的事情是精心設計一套系統然后吸引未成年人上鉤,這種感受讓我對國內這個行業產生了徹底的懷疑,除開一些獨角獸級別的團隊(比如說Minecraft、Supercell)能夠在游戲性和賺錢中雙豐收,其他大部分的網游,特別是手游,都是披著游戲外衣的吸血工具。
游戲行業最大的吸引是薪資,當時市場上最好的薪資待遇,基本上是游戲公司給出來的。當時內心里面很糾結,到底要不要為了五斗米折腰呢?后來看到了云計算、數據挖掘這個方向,對于里面的技術非常感興趣,也覺得這個方向能夠真真正正的改變我們的生活。所以在拿到了某云計算公司的Offer后(比游戲公司能給出的低不少),毫不猶豫的放棄了游戲這個方向。
回頭看來,自己當時的選擇真的很對,每天上班做著自己不喜歡的事情只是一種煎熬,不管是做什么,只有興趣才能成為自己正常的動力。而且從長期來看,帶著興趣工作能夠讓你對這一塊的技術迅速的了解,未來增加的收益可以彌補掉當前虧的那一部分,也不會覺得工作那么辛苦,畢竟工作時間占了你除掉睡覺時間的一半多。
開源還是閉源?
首先看看平臺是開源還是閉源。比如說做數據庫開發的是選擇Oracle還是MySQL,做服務器開發的是選擇Windows還是Linux。在現在這個時代稍有實力的企業都會選擇成熟的開源產品而不會選擇閉源軟件,因為用了閉源軟件等于把自己給鎖在里面了。
然后對于你正在做的這個項目,如果它是一個開源項目的話,爭取能夠為它做出一些貢獻,如果能夠為成熟的開源項目作出貢獻可以讓你的簡歷加分不少。另外一個明顯的好處是,如果項目開源的協議是Apache或者MIT之類的話,你跳槽之后也可以沒有任何顧慮的用之前的代碼了。所以有機會的話,說服老板把你正在做的項目開源吧!
參考一篇文章:《開源軟件正在蠶食這個世界》。另外連微軟都在擁抱開源了,你還在等什么呢?
值得說一下,只是把項目源代碼放到Github,沒有用戶的反饋,沒有其他開發者的參與,沒有版本發布的項目不是一個合格的開源項目。還有回復郵箱才給代碼的行為跟種子回復可見是一樣的惡劣!
工作還是生活?
這個是很難平衡的一個地方,整日加班會讓你過度疲勞,很難有時間去思考。要知道好的方向的好的代碼都需要在大腦比較輕松的狀態下得到。過于關心生活容易讓人死于安樂,過了幾年市場變化之后一裁員就發現自己已經很難找工作了。
個人覺得一個重要的標準是來自于,加班的動機是什么?是老板畫了大餅后打的雞血,是老板不喜歡員工早點回家,還是因為自己真正喜歡做這個事情。如果只是因為老板畫的大餅(比如說期權),如果一旦沒有實現很容易會心理失衡。如果是老板不喜歡員工早點回家,你最好還是換一家公司吧。
如果加班不是出自于自己內心對技術的熱愛,還是最好少加班,因為你在犧牲自己的家庭的生活、精力來做自己不喜歡的事情,完全是得不償失的行為。
總結
個人最重要的是,在碰到任何選擇的時候都要自己獨立的思考,隨大流的意見往往是最差的意見(參考《烏合之眾》)。多給自己時間去思考,用開放的態度去看待自己碰到的事情。那么這樣的選擇往往是不錯的。
-
工程師
+關注
關注
59文章
1570瀏覽量
68516 -
編程
+關注
關注
88文章
3615瀏覽量
93718
發布評論請先 登錄
相關推薦
評論