作為程序員,我到底在恐慌什么
程序員們會覺得恐慌么?有時候我會。
或者說,現(xiàn)在也會。
這種恐慌大概是在上學的時候就有了。
上學的時候我不知道怎么入門,去書店里看書,C,VisualBasic,Java,C#,C++,Pascal,這些語言讓我困惑。
特別是學的數(shù)據(jù)結(jié)構(gòu),計算機網(wǎng)絡,算法,這些東西學了之后,倒底能干嘛,我知道UDP是有可能不按順序到達的,我知道數(shù)據(jù)鏈路層是在物理層之上的,
我知道了可以深度遍歷,可以廣度遍歷一棵樹,但是這跟寫代碼有什么關系呢?
還有JSP,PHP,ASP,這些書上講的很多概念,都讓我恐慌。
我覺得我是陷在了一個知識的海洋,不是知識的泥沼中,或者是知識的酒池肉林,迷宮,黑暗森林,折疊空間。
要找工作了,我該找什么工作?
迷失方向,無所適從,這是我作為初學者的恐慌。
好在我選擇了考研,總算把這種恐慌,推遲了三年。
讀研的時候,漫無目標的選方向,人工智能,那是什么鬼。
數(shù)據(jù)挖掘?挖掘機嗎?
自然語言處理?我可不想當翻譯。
信息安全?算了,看到那些加密解密我就頭大,還是福爾摩斯密碼有意思~~
網(wǎng)絡安全?得,OSI七層協(xié)議我已經(jīng)學的夠夠的,讓滑動窗口見鬼吧。
圖形圖像處理。。。。。不想當一個畫圖的。
模式識別。。。難道以后我就要去當成一個魚類分撿器嗎。
我只是想老老實實寫代碼而已啊,嗯?;贏gent的軟件工程,這個不錯~~~
一直想知道軟件怎么開發(fā)出來的,這個Agent的概念看起來好厲害的樣子,而且也很容易和我以后的工作聯(lián)系起來。
單只憑自己當年的認知,很難在分叉口決定倒底應該選擇哪條路走下去。
然后,又到了找工作的環(huán)節(jié)。
鬼使神差的選擇了Java。
大概惟一的原因,就是招聘網(wǎng)站上,招java的公司太多了。
我每天都在刷網(wǎng)站,每天都在認真的記錄招聘網(wǎng)上倒底要什么技能。
我每次面試都要解釋自己沒有工作經(jīng)驗,只是做了一個兼職,會了點ASP。
我在北京的街頭來回游走,在一個陌生的城市四處奔波,我學會了表達自己,但長進最大的技能就是問路。
保安可以問,打掃衛(wèi)生的阿姨可以問,警察可以問。
年輕人不能問,過路的人不能問。
中關村圖書大廈,就是我的圖書館。
把書按斤賣的二手書店,就是我的導師。
而每次面試,都是我糾正方向,貪婪的學習新知識的課堂。
到底什么樣的水準,能讓我找到一份工作?這是在找到工作之前,最大的恐慌。
終于入職了一家公司,然后就是鋪天蓋地的新知識點,新環(huán)境。
第一次上班,我也去看了一些職場上要注意的點,可是總覺得陌生又不敢嘗試。
我害怕跟其他同事交談,惟恐他們知道了我是一個菜雞。
我連什么是IDE都不知道,一直分不清Eclipse和Myeclipse的區(qū)別,在那一個月里,我主動熬了兩個通宵,
周末就是學寫JDBCTemplate,Mysql,JSP,Html,CSS,JavaScript,Struts,Spring。
各種In Action。
我覺得那一個月里,我弄明白了很多東西,這些都是以前我上學的時候沒有學過的,我覺得自己是在嘗還債務。
我想,科班出身的人,應該不會像我一樣吧?畢竟我本科不是計算機專業(yè)啊。
學了這么多之后,我開始有了自己的思考。
我不喜歡那家公司的命名方式,也不喜歡現(xiàn)在他們做的事情,每天就是寫CMS,每天就是寫CMS。
入職以后,自己的個人成長應該往哪個方向走?
到了第二家公司,又學會了WebService,學會了Maven,學會了Shell,學會了解析XML,學會了版本命名。
到了搜狐之后學會的東西更多,哇,那個驚天地泣鬼神,無助,弱小,可憐的萌新菜雞,在大神面前瑟瑟發(fā)抖。
他們展示給我看了一個優(yōu)秀技術人員的素養(yǎng):熱情,主動,嚴謹。
而在這個時候,我不斷的衡量自己和他們的差距,最終的結(jié)論就是,大概在五年之內(nèi),我都不可能達到他們的高度。
我該怎么辦?最初是恐慌自己會不會被團隊發(fā)現(xiàn)我是一個菜逼,然后被開除,被恥笑。
然后是困惑,自己看到了眼前有神一樣的人,好像是無法突破的大山。
他們能夠在兩個星期之內(nèi)搞懂Erlang,并且用到線上,還能夠推廣給全團隊。
他們能夠猜出來Facebook的開放平臺是如何實現(xiàn),討論各種不同的技術方案最后整理出來了自己的一套標簽庫。
他們能夠直接修改Tuscany的源碼,把ActiveMQ完美的嵌入進Tuscany的框架里,讓我們用到消息隊列的時候,根本不用關注細節(jié)。
而我。。。剛?cè)胄幸荒甑某绦騿T,連JDK的源碼都沒看過。
而且,那個時候一直在有人說,程序員在30歲以后就沒辦法寫代碼了,我該怎么辦?
我的同學,在畢業(yè)之后,一直做自然語言處理,而我也終于明白了自然語言處理是做什么的。
他們做分類,做聚類,每天抓取Twitter的內(nèi)容,玩的很開心。
我想我應該選擇去做算法,畢竟,做算法的人,越老越吃香,而程序員呢?總會有新的技術被代替。
在算法和架構(gòu)之間,其實是程序員對于未來生存能力的恐慌。
于是我到了一家做算法的公司,在那里又開始了新的領域。
我學會了抓取,學會了分詞,用CRF寫了實體識別,還學會了Hadoop和Cassandra,順帶又學會了什么叫實時搜索。
到現(xiàn)在我都記得,這是跟原來當程序員的時候,完全不一樣的體驗。每天看英文文檔,每天倒騰語料,每天調(diào)整參數(shù)。
而我身邊的人呢,每一個都有自己擅長的領域,做搜索的小朋友手把手教我怎么調(diào)試Lucene的高亮算法,做Hadoop的小朋友告訴我一個Job倒底該怎么寫,怎么跑。
而我做NLP的朋友,教會我如何生成語料,怎么樣自動抽取新詞,做去重的小朋友告訴我什么是Spotsig算法。
在那個時候,我能體會到的就是每個領域的深不可測,想在一個領域里做成專業(yè),精通的人,都很困難。
我們老大告訴我說,公司里的每一個人,都是聰明人。
我認真的對比現(xiàn)在和當初的選擇,不管怎么樣,我知道很多人比我聰明的多,在這些專業(yè)的領域里,我比不上他們。
而在算法上的恐慌,就來自于根底不足,好后悔當初在碩士的時候,為毛沒好好學習數(shù)據(jù)挖掘和算法。
不僅如此,我們還要做搭建一個知識庫。什么是知識庫?什么是OWL?
什么是三元組?
知識庫又是一個新的大門,而我,在當時,可能是搭建了一個全國唯一的一個證券領域的知識庫系統(tǒng)。
這套系統(tǒng)的價值,到現(xiàn)在都沒被發(fā)揮出來,但是我對知識庫的畏懼,從不曾消除。
老大找的是一個博士,來協(xié)助我做相關的工作。在跟那個博士交流的過程中,我越發(fā)的畏懼。
是對知識的畏懼。這些東西,恐怕我要在知識庫領域里,沉淀很久才會明白。
可是在這個時候我有了一點厭倦,做了大概一年算法的時候,慢慢就明白,沒有科研功底,想改變算法是完全不現(xiàn)實的事情。
算法更多的就是在調(diào)整參數(shù),調(diào)優(yōu),優(yōu)化,把正確率和準確率一點點的提升。
而我原來在搜狐的時候,未完全消化的團隊協(xié)作模式,敏捷開發(fā)流程,系統(tǒng)架構(gòu)能力,卻又是當前公司最需要的。
除了我,他們都不懂這些。
而我這個時候其實是很害怕的,畢竟在搜狐是大神們搭好了框架體系,而我,現(xiàn)在是要自己來。
從使用別人的架構(gòu)體系,到自己從頭開始搭建一套體系,小心謹慎的犯錯并解決問題,這是初級程序員走向中級程序員的畏懼之心。
在這個時候,我開始瘋狂的刷Apache,Spring等各種開源框架,每天都想去看看,他們有沒有新的版本,有沒有新的框架可以應用在我們自己的領域上。
我用了QPID替代ActiveMQ做為自己小型系統(tǒng)中的消息隊列,用了OSCache作了頁面級的緩存,用MongoDB替代了Cassandra。
我還做了運維的工作,手忙腳亂的搭私服,搭Hudson,搭confluence,搭SVN服務器。
這些基礎的東西,包括敏捷開發(fā)的流程,包括多團隊并行開發(fā)的管理,線上Bug的修復,所有的這些,都在這段時間里,由搜狐留下的種子,慢慢生根發(fā)芽。
老大帶我去參加Qcon大會的時候,跟我說,你就是我們公司的架構(gòu)師。
我是么?我覺得有點不太可能。我只是一個工作不到三年的架構(gòu)師,我跟原來的大神們比起來差遠了。很多時候我只能反來復去的解決問題,我不知道問題的根源在哪里,我也沒有時間也沒有耐心去認真的讀他們的源碼。
又或者我看了他們的源碼之后,根本不是自己喜歡的風格,我去讀重構(gòu),去讀設計模式,去學習什么是優(yōu)雅代碼,去看敏捷開發(fā)。一直都覺得自己太菜了,太弱小了,什么都不會。
身上有了責任之后,恐慌往往就來自于,你就是全公司最后的技術支柱,別人解決不了的問題,你必須解決,完成最后一擊的人,必須是你。
而到了后來,因為個人對殺人游戲的喜歡,又迷戀上了規(guī)則引擎。早就對這種棋類游戲的開發(fā)看不慣了~~
這明顯就是規(guī)則引擎應該處理的啊。
殺人游戲,象棋,捉鬼,完全就是規(guī)則的問題,于是又死命的學Drools,學RETE算法,欲仙欲死。
寫了N多的規(guī)則,雖然不爽,但是很開心啊,很多底層的東西沒弄明白,但是已經(jīng)摸索出來一套可行的東西了。
在此期間又折騰了Erlang,Erlang的語法真心是。。。如果不是我剛好懂了點Drools,百分百不明白。為了配合公司的應用場景,保證不丟消息,實現(xiàn)Comet的過程中又改了點東西。
后來在做多人掃雷的時候,發(fā)現(xiàn)Comet完全支撐不了延時,一次點擊大概會有18MS~38MS的延遲,根本無法達到實時游戲的效果,怎么辦?
WEBSocket又橫空出世,于是又去看WebSocket怎么做,看Jetty,還是Tomcat,還是Resin支持。
這個時候就特別的恐慌,太多東西不明白,太多底層的東西需要花時間理解,每一個方向上都能遇到比你了解更深入,更專業(yè)的人,我需要怎么做?
而微信公眾號又出現(xiàn)了,去了解微信公眾號的API,token機制,還順便搭了一個OPENID的服務器,就是沒用Auth。
不旦如此,我在管理上面的成長也非??欤覍τ赑M產(chǎn)生了極大的興趣。
厭倦了總是成為別人手里的工具,程序員代碼寫的再好,也彌補不了產(chǎn)品本身的缺陷,加班熬夜再多,也只能修復Bug,不能帶來流量。
所以在做需求評審的時候,有一種沖動,想去做產(chǎn)品。
這個時候又是一個轉(zhuǎn)折點,到底應該是繼續(xù)做技術,或者是做管理,或者是做產(chǎn)品?
我選擇了去學習產(chǎn)品和運營。
這種恐慌,還是來自于對技術的不確定性,總以為命運掌握在別人手里。
我還學了前端,JQuery,Bootstrap,AngularJS。
可是每過一段時間,就會出現(xiàn)一些新的知識點和概念。
當Go語言出現(xiàn)的時候,他們說Let’s Go。
當ReactNative出現(xiàn)的時候,當Swift出現(xiàn)的時候,當Kotlin出現(xiàn)的時候,當Vue出現(xiàn)的時候,當區(qū)塊鏈出現(xiàn)的時候。
甚至連一直平靜的算法界也出現(xiàn)了深度學習的時候。
Devops一直讓人眼花瞭亂,從Docker,Ansible,到openstack,到現(xiàn)在的脫機運維,云服務的概念讓運維升了仙。
灰度發(fā)布,彈性擴容,隨著雙11,春節(jié),各種高并發(fā)的場景層出不窮。
而中國的互聯(lián)網(wǎng)率先走向國外,異地數(shù)據(jù)同步的問題又扔到了人前人后。
還包括VR和AR,ibeacon還未能完全發(fā)揮熱量,可能就已經(jīng)被遺忘了,支付的快速發(fā)展,讓支付寶和微信的支付SDK幾乎成為了標配。
而IM的興起,第三方統(tǒng)計數(shù)據(jù)的SDK更是占所一席之地,不用說分享組件和第三方登錄組件了。
微信公眾號不斷的開放接口,小程序又落地誕生,科大訊飛的語音識別也越走越遠,直播的興起讓技術又一次走上高潮。
Openresty+Lua在微服務的世界里開心了一會兒,Spring Cloud和Spring Boot 和Shiro 又出現(xiàn)在眼前。
Json快要成為標配的時候,yaml說我更簡潔。
Maven在后端領域成為了標準的王者,Android的世界卻打上了Gradle的烙印。
還不用說前端領域一片亂戰(zhàn)。
這是一個技術讓人瘋狂的時代,每一項技術都爆發(fā)出來迷人的光輝和色彩,而我卻在他們的照耀之下,面色慘白。
我到現(xiàn)在還有很多東西不明白,而這些又是讓我無限恐慌的來源,很多時候,你被逼著要懂很多東西,是因為你要去做的東西,必須這么干。
Zabbix還沒有完全獲勝,各大云服務廠商已經(jīng)推出來自己的監(jiān)控API。
而如今你想做一個餐飲系統(tǒng),對接美團,餓了么這些外賣平臺的坑,是必然要走的。
還有萬惡的金融,銀行存管的事情,他們又有了各自的接口。
我們得知道,如何在O2O平臺中,計算用戶周邊有哪些便利店,這樣要用到MongoDB。
我們得知道,ElasticSearch能夠做到實時索引,而且比Solr更簡單。
我們還得知道,大數(shù)據(jù)那一套龐大的體系正在不斷的孵化新的東西,Spark這些東西還在遠方閃閃發(fā)亮。
我不知道這對于程序員來講算什么,而我心里其實一直很恐慌。
我還在努力的學習PM,學習運營,學習公司管理,學習商務談判,更重要的,在我熟悉的領域里,學習如何教導更好的程序員。
是不斷的學習,或者是一個人的學習能力,最終能讓一個程序員心安么?
還是各種東西觸類旁通,我們不用太過擔心,總是能輕易而舉的在該用到的時候,會用到他們?
又或者,無論外界怎么變換,我都可以用我的SSH打遍天下無敵手。
還是說,我只需要在區(qū)塊鏈上有深入研究,就足以讓我做到退休。
與此截然不同的,又是大部分人的工作,都不會接觸到這些東西。
是這個行業(yè)細分的越來越嚴重了么?
還是在20%的領域里才會這么細分,80%的人都不用關注到這些內(nèi)容?
所以每每有前端工程師,大喊著我要用NodeJS打遍天下的時候,我都忍不住回想一下所有所有這些后端中我列出來的內(nèi)容。
現(xiàn)在還有誰敢稱自己是全棧工程師,全棧皮毛黨都很難做得到吧。
在之前,這種恐慌,是我一直在努力學習的動力,因為恐慌而去掌控世界。
而現(xiàn)在,這種恐慌,很難讓我再沉下心去學習,這又帶來了新的恐慌。
這個世界,是屬于這些90后的。
我對著自己說,對著自己身邊的朋友說。
“總不能一直敲代碼吧?”
“為什么不可以一直敲代碼?可以的?!?/p>
“過不了多久,就可以用算法寫代碼了。”
“那到時候,我們干嘛?”
“我們可以寫算法啊?!?/p>
“如果有一天,連算法都可以用算法寫了呢?”
“放心,你活不到那一天?!?/p>
責任編輯:wv
-
程序員
+關注
關注
4文章
953瀏覽量
29837
發(fā)布評論請先 登錄
相關推薦
評論