百度百科:巡禮之年是由三組鋼琴獨奏組曲組成的一套專輯原叮,由法蘭茲·李斯特(Franz Liszt)作曲。一般被認(rèn)為是李斯特最杰出的作品符匾,為李斯特音樂風(fēng)格的集大成之作蕴潦。第三組曲特別被認(rèn)為代表了李斯特的晚期風(fēng)格。
文章起名為「巡禮」汪榔,多少有點回顧的意思蒲拉。當(dāng)然,你說我受了村上《沒有色彩的多崎作和他的巡禮之年》的影響痴腌,我覺得也行雌团。
一、程序員是個好職業(yè)
工作了十幾年士聪,到今天為止锦援,我依然認(rèn)為程序員是這個時代很好的職業(yè)。是不是最好剥悟,不敢確認(rèn)灵寺,畢竟沒離開過互聯(lián)網(wǎng)行業(yè),就像你只懂中文就很難說中文是世界上最好的語言一樣区岗。不過最好的之一略板,總歸是有的。無論程序員自嘲也好慈缔,被誤解也罷叮称,甚至被其他領(lǐng)域的人黑到了喜馬拉雅山的高度,但不可否認(rèn)的是,大部分程序員都是在空調(diào)房里敲敲鍵盤就有可能冷不丁改變了世界颅拦,并且蒂誉,大部分時候,我們都讓這個世界變得好了一點點距帅。與很多職業(yè)相比右锨,程序員的投入產(chǎn)出比都算高的,稍有智力門檻碌秸,也沒比其他行業(yè)高多少绍移。而這個時代,給了程序員們大展宏圖的機會讥电,給我們足夠的自由度去創(chuàng)造我們想要的東西蹂窖。
至于傳說中的「程序員職業(yè)病」,其實和程序員這個職業(yè)并沒有多大關(guān)系恩敌。越來越多的互聯(lián)網(wǎng)公司為員工提供了各種福利瞬测,免費的健身房,舒適的桌椅纠炮,香濃的咖啡月趟,甚至一些娛樂設(shè)施。自己不運動恢口,其實很難怪到這個職業(yè)頭上孝宗。另外,程序員的工作也「并沒有想象的那么辛苦」耕肩,所以因妇,遇到頭腦清楚邏輯清晰又喜愛計算機并且沒有遠(yuǎn)大的志向進入其他領(lǐng)域的年輕人,我總是對他們說猿诸,來做個程序員吧婚被,這是個能讓你的生活變得精彩的職業(yè)。
二两芳、程序員是一個具備長久生命力的職業(yè)
我大學(xué)剛畢業(yè)的時候摔寨,程序員還是一個稚嫩的職業(yè),那個年代怖辆,身邊的人們沒見過35歲以上的程序員是复。于是很多人告訴我,程序員是吃青春飯的竖螃,你在國內(nèi)見過35歲的程序員嗎淑廊?我說,沒有特咆。
就是嘛季惩,所以要盡早轉(zhuǎn)行呀……
這種話聽得著實不少录粱,事實上也真的有很多程序員早早轉(zhuǎn)行了,我沒轉(zhuǎn)不是因為內(nèi)心強大画拾,而是比較單純啥繁。35歲,聽起來像光年一樣的距離青抛,誰會考慮那么遙遠(yuǎn)的事情旗闽。所以我什么都沒想就繼續(xù)編程了。
35歲轉(zhuǎn)瞬即至蜜另,除了過了個普通的生日之外适室,什么都沒有發(fā)生。我依然在活蹦亂跳的編寫程序举瑰,偶爾向周圍稍稍四顧捣辆,身邊的朋友要么在某個技術(shù)領(lǐng)域成為行家里手,要么在做產(chǎn)品的同時寫書分享此迅,有的設(shè)計出了千萬人使用的軟件汽畴,有的則成為了一個純粹的管理者,經(jīng)營著上千人的機構(gòu)邮屁。這些人從前是程序員整袁,現(xiàn)在也是。
隨著互聯(lián)網(wǎng)行業(yè)的成熟佑吝,程序員在成為風(fēng)口浪尖人物的同時,也逐漸規(guī)范和傳統(tǒng)化绳匀,與其他行業(yè)的工程師一樣芋忿,程序員們在自己的領(lǐng)域有深耕,有轉(zhuǎn)化疾棵,有思考戈钢,有沉淀,穩(wěn)步前行是尔。
毫無疑問殉了,程序員是一個具備長久生命力的職業(yè)。
三拟枚、程序員不一定要寫一輩子程序
以前人們總是說年齡大了就不要寫代碼了薪铜,或者說寫不動代碼了。現(xiàn)在多少有點矯枉過正恩溅,比如 CTO 怎么能不寫代碼呢隔箍,寫代碼可是一輩子的事呀。在我看來脚乡,這個問題根本沒什么可以爭論的蜒滩,一個階段一種做法。如果你寫代碼是最有價值的,就去寫代碼俯艰。如果你做產(chǎn)品是最有價值的捡遍,就去做產(chǎn)品。如果你去管理公司是最有價值的竹握,就去管理公司稽莉。去年參加極客邦硅谷行的時候和七牛云的創(chuàng)始人許式偉聊天,我說老許你還在寫線上代碼么涩搓?老許說污秆,不碰代碼半年多了,我需要從更高的層面上去把握七牛的方向昧甘、人和事良拼。
老許比我牛得多,是一位非常資深的程序員充边,熱愛編程庸推,可以說寫了半輩子代碼,即便如此浇冰,在這個階段贬媒,顯然有比寫代碼更重要的事情等著他。前一陣子看過一篇文章「扎克伯格開發(fā)筆記:打造 Jarvis 的日子」肘习,扎克伯格在文章里寫到:
2016年我給自己制定了一個挑戰(zhàn):打造一個像鋼鐵俠里 Jarvis 那樣的家庭 AI 助手际乘。
在這一年里,我打造了一個可以通過手機和電腦進行對話的 AI 系統(tǒng)漂佩。它能夠控制我家里的燈光脖含、溫度、電器投蝉、音樂和安防系統(tǒng)养葵,而且這個 AI 還能了解我的品味和習(xí)慣,可以學(xué)習(xí)新的詞匯和概念瘩缆,甚至可以逗我的女兒 Max 開心关拒。Jarvis 是由 Python、PHP 和 Objective-C 編寫的庸娱,運用了包括自然語言處理着绊、語音識別、面部識別以及強化學(xué)習(xí)在內(nèi)的人工智能技術(shù)涌韩。
扎克伯格是為了編程而編程么畔柔,顯然不是。除了保持技術(shù)的敏感度臣樱,他主要是為了了解人工智能發(fā)展的現(xiàn)狀靶擦。通過挑戰(zhàn)熟悉 Facebook 的工程師們使用的內(nèi)部技術(shù)腮考,同時了解智能家居。而且玄捕,這些工作僅僅占用了他很少一部分時間踩蔚。
實際情況也是這樣,與我一起成長起來的七零后程序員枚粘,差不多有超過一半馅闽,他們的工作重心已經(jīng)不再是編碼,而是其他工作事務(wù)馍迄,另外一半則依然以編程為主要任務(wù)福也。這兩種狀態(tài),都是很好的存在攀圈。
四暴凑、入行三五年
以我并不豐富的程序員閱歷來看,入行三到五年的經(jīng)歷對程序員以后的職業(yè)生涯有非常重要的作用赘来∠衷互聯(lián)網(wǎng)時代學(xué)習(xí)環(huán)境開放,資料浩如煙海犬辰,很多大學(xué)生在走出學(xué)校大門的時候嗦篱,很可能在某項專業(yè)技能上已經(jīng)達(dá)到了很高的水準(zhǔn),但是這三到五年的探索幌缝,依然是不可或缺的灸促。
順便在這里給大家推薦一個架構(gòu)交流學(xué)習(xí)群:650385180,里面會分享一些資深架構(gòu)師錄制的視頻錄像:有Spring狮腿,MyBatis腿宰,Netty源碼分析,高并發(fā)缘厢、高性能、分布式甩挫、微服務(wù)架構(gòu)的原理贴硫,JVM性能優(yōu)化這些成為架構(gòu)師必備的知識體系。還能領(lǐng)取免費的學(xué)習(xí)資源伊者。相信對于已經(jīng)工作和遇到技術(shù)瓶頸的碼友英遭,在這個群里會有你需要的內(nèi)容。
很多人喜歡制定學(xué)習(xí)計劃亦渗,但這些計劃大都無法執(zhí)行下去挖诸。不是計劃出了問題,而是人學(xué)習(xí)和提升的方式很難按部就班法精,很多時候我們都是在摸索前行多律。就像你今天按計劃要耕完一畝田痴突,作業(yè)進行到一半的時候,你發(fā)現(xiàn)一塊土質(zhì)的異常狼荞,于是深挖下去辽装,用鐮刀割去雜草,用鐵鍬鏟除泥土相味,用鉆頭鉆出深洞拾积,最后發(fā)現(xiàn)了一口油井辩昆。如果你按照計劃耕完這一畝田堵漱,可能永遠(yuǎn)發(fā)現(xiàn)不了那口井戈鲁。
我相信每個人身體里都有某種特質(zhì)迷殿,這種特質(zhì)讓你在某個領(lǐng)域取得成就的可能性遠(yuǎn)遠(yuǎn)大于其他瑞躺,這種特質(zhì)也能讓你異于他人逃片。但是镐捧,人們并不是生來就知道自己擅長干什么的支救,需要花時間去尋找摘符,找到它贤斜,然后去做自己最擅長的事情,這對你漫長的職業(yè)生涯是一筆巨大的財富逛裤。
需要五年這么久的時間嗎瘩绒?依我個人的經(jīng)歷,恐怕更長也說不定带族。無論程序員也好锁荔,軟件工程師也罷,叫著簡單蝙砌,領(lǐng)域知識卻是浩如煙海阳堕。進入現(xiàn)代互聯(lián)網(wǎng)階段,程序員的領(lǐng)域細(xì)分到了令人發(fā)指的程度择克,比如 XX 語言工程師恬总,前端工程師,后端工程師肚邢,架構(gòu)師壹堰,大數(shù)據(jù)工程師,安全工程師骡湖,運維工程師贱纠,移動開發(fā)工程師,DBA 等等响蕴,叫法繁復(fù)谆焊,甚至職能重疊,這些角色最初都叫做程序員浦夷,最終他們像一棵大樹辖试,枝條粗壯辜王,蜿蜒生長,然后在樹冠分開剃执,并結(jié)出了各種各樣的果實誓禁。同時,每個細(xì)分的領(lǐng)域又會衍生出浩瀚的領(lǐng)域知識肾档。
比如編程語言摹恰,常用的編程語言就有幾十種,靜態(tài)語言怒见,動態(tài)語言俗慈,腳本語言,函數(shù)式編程遣耍,面向?qū)ο缶幊坦脍澹^程式編程等等,從平臺角度舵变,Java VM 上有 Java酣溃,Scala,Groovy纪隙,Clojure赊豌,Jython,Ceylon 等绵咱,.Net 平臺上有 C#碘饼,J#,F(xiàn)#悲伶,VB.Net艾恼,VC#,ASP.Net麸锉,移動平臺有 iOS钠绍,Android,WindowsPhone……
即便我們把目光聚焦在一門語言或技術(shù)上花沉,Java五慈,你也不可能僅僅掌握它的語法特性和函數(shù)庫,然后寫寫業(yè)務(wù)表單和增刪改查就完了主穗。Java 的虛擬機、性能毙芜、并發(fā)編程忽媒、Jit 技術(shù)、垃圾收集腋粥、集群晦雨、分布式架曹、異常、日志服務(wù)闹瞧,還有大量的 Java 平臺開源項目绑雄,都需要深入了解。除此之外奥邮,一些數(shù)據(jù)結(jié)構(gòu)和算法也是程序員們應(yīng)該掌握的內(nèi)容万牺,比如棧、隊列洽腺、鏈表脚粟,二叉樹、紅黑樹蘸朋、B 樹核无,散列表,排序算法藕坯,查找算法团南,最小路徑,最小生成樹等等……
這么看來炼彪,五年的時間并不長是不是吐根?
當(dāng)然,還有一種可能霹购,你花費了五年的時間佑惠,發(fā)現(xiàn)自己并不適合做程序員,雖然這聽起來有點悲哀齐疙,但也不失為一件好事膜楷,因為你還有時間轉(zhuǎn)型啊。程序員幾乎可以轉(zhuǎn)型為其他任何角色贞奋,反過來卻很難赌厅。我們聽說過很多優(yōu)秀的產(chǎn)品經(jīng)理,創(chuàng)業(yè)者轿塔,管理者最初都是程序員特愿,卻很少聽說哪個頂尖的程序員是從產(chǎn)品經(jīng)理轉(zhuǎn)過來的,有嗎勾缭?反正我不知道揍障。
寫到這我必須給你舉一個例子,他就是杭州濱江區(qū)吳彥祖俩由、MacTalk 出境小王子毒嫡、二爺鑒書的作者邱岳。這位邱二爺當(dāng)年也是少年英俠幻梯,編程領(lǐng)域的快刀浪子兜畸,上學(xué)時屢獲計算機競賽獎努释,畢業(yè)后一頭扎進了嵌入式編程領(lǐng)域潛心耕耘,最后驚喜的發(fā)現(xiàn)咬摇,「原來自己真的不是編程這塊料啊」伐蒂,二爺仰天長嘆,擦掉鼻涕和淚水肛鹏,毅然淪為一個產(chǎn)品經(jīng)理逸邦,不也挺成功的嗎?
當(dāng)然龄坪,最近他失業(yè)了昭雌,不過,你能想象他會一輩子找不到工作嗎健田?如果是那樣烛卧,回來做編程,倒也未嘗不可妓局。
寫累了总放,今天就此擱筆,關(guān)于這個話題好爬,下一篇再說局雄。