首頁»程序人生»誰跟你說編程就是高技術含量的事情了?

誰跟你說編程就是高技術含量的事情了?

來源:郝培強 發布時間:2017-06-02 閱讀次數:

  題圖是技術含量最高的樂高積木之一,一套玩具里面居然有好幾個博士,一位演員,和一個碩士(這是咋混進來的)。

  知乎這兩天有個問題很好玩,“美國程序員行業高收入還能維持多久?”,提問者很擔心,因為現在在美國程序員的收入水平很高。而他覺得編程的門檻兒并不高,他怕這種狀態持續不久,畢竟他是一個程序員。

  然而,這樣的問題馬上觸動了一些人敏感的神經,有人說,“至于編程不是什么難事,這句話真的戳到我hhp了。如果編程不是什么難事,其實世界上也沒有多少事算難事了。”。

  還有人僅回復了句,“何以見得“編程并不是什么高技術含量”?”就獲得了高票,而且還引發了大量的討論。

  那么編程到底是不是有技術含量的東西呢?也是也不是。

  如果我們看看全體程序員的技術能力分布,我們可能可以得到以下的正態分布:

  真正有技術含量的,鳳毛麟角。有一些還沒入門。最大多數的是自以為高科技的人群。 

  為什么?

  1、做程序員的門檻不高,但是做好程序員的門檻不低。

  這年頭想做程序員難么?我有篇有些人甚至可能不敢相信的大火的前妻文,里面提到我前妻初中沒畢業,聽說程序員掙錢多,從理發小妹改行做的程序員,這么多年下來年薪已經40萬了。

  我認識的程序員里面有各種各樣神奇的來源。

  我自己是學機械的,我當年的合伙人霍矩是學暖風工程的,當年的著名代碼網站Codephi的創始人,后來CSDN副總經理韓磊,是學越南語的。微博上大家知名的澳大利亞大別墅的主人靈感之源和Mac系統專家,前Java程序員iBuick都是學英語的。這行當里面轉行過來的人,快趕上說相聲的了,啥人都有,門檻還不低么?

  其實,我初中的時候,在完全沒有大人指導的前提下,一臺學習機,一本附帶的Basic說明書,我就學會怎么寫程序了,那時候,自己寫過一個橫版的類馬里奧游戲,高中的時候,用這個學習機我還自己寫過一個logo語言的解釋器。

  其實編程有啥難的?不就是跟電腦說話么?跟人說話那么難,你都會,跟電腦說話有多難?

  電腦是個聰明的傻子,你讓它干啥,只要它能做到,它就會毫不猶豫的去做,多好打交道。

  這個世界有那么多Geek,就是因為他們覺得電腦簡單單純好溝通,反之,跟人類打交道太難了,怎么學都學不會。

  如果你跟一個人說,算n = n + 1算1萬次,人會跟你說,你有病吧,老子才懶得算呢。但是你這么告訴電腦,電腦會毫不猶豫的算1萬次,然后在你還沒察覺到任何變化之前,把答案給你。

  但是,做一個好程序員是很難的。

  這也是因為電腦是一個聰明的傻子。它的腦子完全一根筋。它不會自己解決任何問題。現在任何一臺電腦你讓它算1萬次n = n + 1就是秒出結果。但是,算法再復雜一點呢?一個稍微復雜一點的算法,可以讓一臺現在最好的個人電腦,秒變計算器。那怎么辦?還不是要靠人?

  其實這年頭,大多數時候,不需要你開發任何新的算法,很多時候用各種語言的類庫,容器和算法庫就已經可以解決很多問題了。問題是,就連選對這些容器和算法也不是一件簡單的事情。沒有簡單易行,放之四海的標準。有很多人在這個問題上其實也是只知其然不知其所以然。

  2、行業在發展曾經有技術含量的東西,慢慢的變成大路貨技術

  08年,我和霍矩剛開始做技術咨詢的時候,國內一般網站普遍還沒有反向代理的知識,剛剛有一些文章介紹,有一些大網站用起來了。那時候,我們遇到一個客戶,用JAVA搭了一個網站,可能做得比較重,當每天5萬PV的時候性能就很好。但是推廣的得力,流量翻了三倍,服務器就無法支撐,直接掛掉。我們當時跟他們討論,從代碼上去做大的性能改進根本來不及。我們就幫助他們設計了一套架構,用Squid做反向代理,扛住重復的訪問。結果很快,這個網站流量上漲到100-200萬,性能都沒有出過大問題。在那個時間點,你還可以覺得懂的怎么架Squid算是有點技術含量的東西。

  那現在有個網站可以撐200萬流量算是什么大事兒么?完全不是。

  為啥?一來,各種反向代理技術、內存緩存技術等等在web后端開發里面早就是平常事情了;二來,硬件有了長足的進步,CPU比當年強大多了,更重要的是SSD的使用,讓磁盤IO帶來的性能的壓力越來越小;還有就是現在云計算大行其道,隨時隨地隨地增減服務器改變部署變得非常容易。

  題外話,所以這次馮大輝和丁香園撕逼事件里,那篇抹黑大輝的文章里面說,大輝作為一個CTO,不寫Code,不參與架構設計,不Review代碼。我非常不以為然。因為從Alex和一些其他的渠道你可以查到,丁香園網站的整體負載并不大,也就是200-300萬以內,這還是很多產品,而不是單一產品的承壓。簡單的說,在當今的技術水平下,搭丁香園這么一個網站,難度都在產品和運營上,技術上沒啥可談的,咋做都不會出太大的問題。

  07年,我的好友錢宏武老師,在SD大會上,做了一個演講“如何設計高并發體系架構”,當時,我去會場聽他的演講,發現人都站到會場外了,完全擠不進去。他介紹的是他當時在搜狐設計社會論壇,日訪問量6000萬的經驗,那是當時的動態網頁日訪問量世界紀錄。

  現在呢?現在這樣的網站已經不算什么了。新浪微博日活躍用戶在2015年都過億了。 

  3、一些行業牛人和開源軟件改變了世界

  Google在很長一段時間里都是技術圈內的頂尖技術的代名詞。外界也不清楚Google是怎么完成一些不可能完成的任務的。當年,大家光是想象Google怎么保存那些海量的索引,是怎么做到的都不知道。所以大家想象Google里面每個工程師都是百年一遇的大神吧。

  直到后來,Jeff Dean的三篇論文Google File System,MapReduce和BigTable一發布,大家才注意到,原來Google有個Systems and Infrastructure Group,有個Jeff Dean大神。原來他們把處理海量數據的方法,寫成了內部系統,Google的工程師,不需要是神,只要學會這套工具,就可以操縱海量的數據了。 

  但是,可惜的是,Jeff Dean和Google只開放了他們的思想,但是沒開放內部工具出來。這時候,一個叫做Doug Cutting的大神站了出來。

  Doug Cutting是Lucene的作者,他當年曾在多家公司做搜索,還曾經在Apple做過搜索,他覺得業界缺乏一個開源的好用的搜索引擎內核。他就寫了Lucene,Lucene是現在廣泛使用的Elastic Search的內核。可以說,現在你在全世界的很多網站內點搜索,都是Lucene在支撐。僅當年我們創業的時候,因為我們在用Lucene,所以,我們的客戶跑在Lucene上的搜索量就有幾千萬。

  Doug Cutting把Jeff Dean的思想實現了出來,做了一個開源軟件叫做Hadoop。Hadoop興起后,其實分析處理海量數據,就變成了一個人人都可以做的事情(買得起機器就可以),從而產生了一場大數據的革命。

  我舉這個例子什么意思?就是Google很牛逼,Google在04-5年就有能力非常高效的分析處理海量數據。在那個時間點,能做Google量級的事情的人沒有幾個,這是非常有技術含量的。但是Jeff Dean一公布具體思想,這個技術含量就驟減。但是,仍舊是很有技術含量的。等到Doug Cutting把Hadoop做出來,分析處理海量數據的門檻實際上就降低到了會編譯和搭建這個Java開源項目就可以了。

  當然,有一些領域內的東西,即使有了開源軟件,由于你對領域知識的匱乏,你仍舊很難高效的開發。比如Lucene,非常好用,但是Lucene是一個底層引擎,如果你對倒排索引的各種細節不夠清楚,你直接用Lucene開發出好用的搜索是很難得。所以,當時我做了一個Cypress系統,用XML/HTTP請求把Lucene完全封裝起來,用戶不用懂倒排索引的任何細節就可以用好搜索了。后來流行的Elastic Search,跟我的設計思路如出一轍,唯一的區別是,他用JSON來做數據傳輸的格式,我用XML。一般團隊使用Lucene,可能需要幾個月才能做一個可用的搜索,用Cypress或者Elastic Search,一天就夠了。

  在這些牛人和開源工具的作用下,很多原來無比高大上,也沒有幾個人可以做的領域,很快就變成了隨便一個工程師都可以學會的東西。

  4、企業的需求核心還是滿足業務需求并不是高大上

  實際上,中國的大多數技術公司,核心還是業務,而不是技術,技術的價值在于良好的保障業務。公司真正賺錢是靠業務。美國呢,大公司里面技術比重更高的公司要多一些。但是,也有大量的公司,核心業務并不是技術本身。

  在這樣公司里面實現業務邏輯的工程師是主流。他們雖然非常重要,但是他們做的事情,價值不是技術含量,而是能不能完美的滿足業務需求。 

  舉個例子,一個表單放幾個按鈕最合適,有啥技術含量可談?但是,放好了,用戶體驗好,效果好,公司的收益就會更好。

  已經扯得很遠了,我翻回來說,如果你想做一個有技術含量的程序員,其實也不難:

  1、你可以在某一個領域扎深

  新浪微博的兩個要點就是產品和性能。因為微博是國內日活最大的幾個網站之一,性能不好,就別玩了。產品體驗不好呢,也會造成很大的損失(這個我們就不談了)。

  那新浪的Timyang一路支撐新浪的流量越來越大,他和他的team一直都在關注怎么支撐巨大的流量,成為這個領域首屈一指的專家,當然是有技術含量的。

  美國最大的PHP應用是Facebook,中國是新浪微博,大多數PHP網站都不會認為PHP的性能成為了一個大問題,但是他們都太大了,PHP不夠快都影響體驗了。所以Facebook搞了把PHP編譯成C++的項目,而原來在新浪的鳥哥怎直接改造PHP,讓PHP7性能達到了跟編譯成C++相當的水平。

  我們當年做搜索的時候,我的Cypress系統,一天可以支撐10萬次搜索,后來客戶的搜索到了30萬,我就改進系統,讓它可以支撐到100萬。再后來客戶的搜索到了200萬,我就改進系統,讓它可以支撐到300萬。后來,有個客戶日搜索2000萬,用6臺服務器,說如果我們可以用更少服務器,就采用我們的服務。于是我優化系統,花了整個兩個星期,自己打造了測試工具,性能監控工具,最后優化到一臺服務器日搜索2000萬。在當時技術含量還可以。

  這些都是你在一個領域扎深的例子。

  2、你也可以在廣度上去搞

  我個人愛好廣泛。所以在做搜索的同時,iOS SDK出來了,我也在自學iOS開發。等到有道詞典,想趁市場熱潮,迅速做一個iOS版本的時候,他們發現自己人沒有會的。那時候市場上也很難找到外包人才懂iOS的。于是,他們輾轉找到我。 

  后來,我進盛大創新院的時候,我問副院長,說我既可以繼續做搜索,也可以做iOS開發,創新院更需要哪種?他說,兩樣都非常歡迎,兩種人才都很缺。

  但是不管怎么說,你安于現狀,安于解決了老板提出的當前問題就好的話,你只能是一個庸庸碌碌的程序員,你不會有技術含量的。

QQ群:WEB開發者官方群(515171538),驗證消息:10000
微信群:加小編微信 849023636 邀請您加入,驗證消息:10000
提示:更多精彩內容關注微信公眾號:全棧開發者中心(fsder-com)
網友評論(共0條評論) 正在載入評論......
理智評論文明上網,拒絕惡意謾罵 發表評論 / 共0條評論
登錄會員中心
大神带着买彩票 关岭| 七台河市| 墨竹工卡县| 元氏县| 康保县| 青海省| 苍山县| 石林| 怀柔区| 公主岭市| 余庆县| 桂平市| 湘潭县| 宝清县| 洱源县| 伊吾县| 河池市| 得荣县| 定襄县| 章丘市| 凤城市| 兰西县| 湄潭县| 高要市| 南和县| 平远县| 黄陵县| 乐安县| 乌什县| 海门市| 衡东县| 玉门市| 吉木萨尔县| 大城县| 江源县| 延边| 安龙县| 武强县|