編程批判大會(huì)

有人說,代碼是一門藝術(shù)。也有人說,代碼只不過是一份工作而已。
在中國,大部分人應(yīng)該屬于后一種,他們并不真正喜歡編程,卻每天為了代碼而絞盡腦汁,甚至痛不欲生。

韓寒出道時(shí)寫過一篇文章叫《杯中窺人》,其實(shí)代碼也是可以窺見一個(gè)人的性格和人生態(tài)度的。仔細(xì)去品讀一個(gè)人的代碼,你可以讀出這個(gè)人對(duì)待生活的態(tài)度,對(duì)待工作的熱情,甚至看出他的性格。

筆者自工作以來,遇到了各種各樣的程序員,卻一直未能遇到真正熱愛編程的人。個(gè)中遺憾,希望借今天這篇文章批判一下當(dāng)今中國程序員的不良作風(fēng),以儆效尤。

1) 高調(diào)的USB

筆者在剛剛開始工作的時(shí)候碰到一個(gè)92年的小組長,當(dāng)時(shí)從事的項(xiàng)目是幫助貴州農(nóng)場做一個(gè)自動(dòng)化管理的項(xiàng)目,他負(fù)責(zé)日常管理、分配任務(wù)等。他是一個(gè)不茍言笑,也不喜歡討論的人。印象深刻的是有一次,我指著一處代碼對(duì)他說,這里的邏輯有點(diǎn)問題。他看都沒看一眼,便對(duì)著我大喊大叫:我怎么可能犯這樣的錯(cuò)誤。我記得我當(dāng)時(shí)的表情,先是一愣。然后,繼續(xù)堅(jiān)持說,這里確實(shí)錯(cuò)了。后來發(fā)現(xiàn),那里的邏輯確實(shí)有點(diǎn)問題,但最終確定到底是不是他寫的代碼就不確定了。無論如何,這種過分的高調(diào)都無異于虛偽的偽裝,越是如此,越會(huì)讓人覺得此人的水平一定一般。換而言之,越是能力比較強(qiáng)的同學(xué),往往越是娓娓道來、不緊不慢... 不過,筆者有一次在QQ空間寫一篇文章提到這個(gè)事的時(shí)候,他本人還來評(píng)論里面給我道歉,這說明他其實(shí)是意識(shí)到自己錯(cuò)誤的。寫這個(gè)片段也不是為了批評(píng)他,希望他本人看到也不要介意。我只是想說明這種現(xiàn)象,因?yàn)槲矣浀迷诟v訊同學(xué)的一次討論中,他們也提到曾經(jīng)有遇到過這樣過分高調(diào)的同學(xué),他們采取的態(tài)度就是完全不予理會(huì),任其自身自滅。

在編程行業(yè),高調(diào)沒有什么用,這里用Linus的一句話回應(yīng)這類同學(xué):Talk is cheap, show me the code.

2) 死板的懦夫

有一種人,不懂得變通,總是使用一成不變的方式處理問題。不斷地Copy,Copy,Repeat... 這類人有一個(gè)特點(diǎn),他們通常不會(huì)去研究新技術(shù),也不會(huì)去嘗試接受別人的思想。即便其所在領(lǐng)域已經(jīng)出現(xiàn)了很多新的技術(shù),這種人是永遠(yuǎn)不會(huì)去嘗試的。他會(huì)等待別人都嘗試過了,再來沿著別人的足跡走馬觀花一番。筆者將這類人稱為死板的懦夫。筆者在工作中遇到過不少這樣的懦夫,且聽我一一道來。

在深圳的第一份工作是在某寶(不是淘寶哈),在某寶不幸遇到一個(gè)這樣的女程序員,該程序員非常健談,平時(shí)看起來沒什么,日常交朋友也OK??梢坏┖湍阌懻搯栴},你就會(huì)發(fā)現(xiàn),此人非常死板,記憶比較深刻的一次討論是,關(guān)于Android確認(rèn)和取消按鈕的順序問題,在找產(chǎn)品確認(rèn)后,依然不死心,硬是把一個(gè)94年的產(chǎn)品助理“罵”通才善罷甘休。從那一次起,我就發(fā)現(xiàn)此人腦子非常死板,她在開發(fā)過程中,依然堅(jiān)持使用eclipse(Android官方推薦使用Android Studio)。從她的代碼中,你可以看到if代碼墻,生怕出現(xiàn)空指針異常。更加凸顯這種人性格的,copy是永遠(yuǎn)是她的主旋律。有一次,公司要求做一個(gè)指紋解鎖的功能,做好后感覺和app的風(fēng)格完全不搭。后來我們的測試告訴我,這個(gè)解鎖他之前看到過,代碼也是原封不動(dòng)copy過來的... 關(guān)于她的事跡還有很多很多,這里就不一一舉例了。這類人其實(shí)就是大家平時(shí)口中所說的碼農(nóng),代碼只是他們養(yǎng)家糊口的工具而已。他們把編程當(dāng)成一份工作,只要完成任務(wù)就好。所以,其實(shí)她并沒有錯(cuò),只是準(zhǔn)確來說,她并不能算一個(gè)程序員。

另外,筆者還有一個(gè)哥們,也是比較死板。不同的是,他一直堅(jiān)持使用最新的技術(shù),而他的問題是,他不能接受別人使用不一樣的東西。這也是中國程序員很大的一個(gè)弊病。印象比較深刻的幾個(gè)事情是,事件一:他看到某個(gè)括號(hào)和編程工具格式化不一樣他說會(huì)感覺到不自然,從某種層面來說,這是對(duì)的,這是對(duì)代碼要求嚴(yán)格的表現(xiàn)。而從另一個(gè)層面來說,此人的腦子的確也略顯死板。為什么呢?其實(shí)筆者以前也是這樣的個(gè)性,會(huì)讓代碼格式化后和格式化之前幾乎沒什么變化,或許他是受了我的影響也不一定??墒牵髞砺匕l(fā)現(xiàn),編譯器格式化的部分代碼并不好看,有些空格甚至顯得多余。為什么會(huì)有這樣,主要是因?yàn)榻佑|的語言多了,接觸的人多了,開始可以接受多種風(fēng)格的代碼。而從原則上來說,好的編程風(fēng)格只是為了便于代碼閱讀。所以,并不一定要求和編譯器理解的完全一致,而只需要在整個(gè)項(xiàng)目中保持一致即可。
其實(shí),上面這個(gè)例子不能完全說明此人略顯死板,更多例子繼續(xù)往下看。在跟他慢慢接觸的過程中,發(fā)現(xiàn)他基本屬于無法適應(yīng)新的編程工具,或者會(huì)強(qiáng)烈抨擊某種編程工具上面,這是其一。其二,此人對(duì)于不喜歡的東西會(huì)強(qiáng)烈抨擊,換而言之,他會(huì)有非常強(qiáng)烈的愛恨之分。他會(huì)把編程語言區(qū)分為喜愛和憎惡,而不是try it,然后再來決定愛或者不愛。其三,筆者其實(shí)算是一個(gè)對(duì)編程工具非常隨意的一個(gè)人,幾乎不會(huì)去記編程工具的快捷方式,只會(huì)記憶一些常用的快捷方式,每次他在的時(shí)候,看我在使用的時(shí)候,總會(huì)告訴筆者各種各樣的快捷鍵。其實(shí)那一刻我就明白了,他應(yīng)該是一個(gè)比較死板的人,如果讓他換一個(gè)編程工具,恐怕寫代碼的效率都會(huì)下降很多。一定有人會(huì)問,你不會(huì)嗎?答案是:會(huì)!但不會(huì)下降很多。筆者用過的編程工具有:Eclipse, Visual Studio,Xcode,Clion等等。筆者認(rèn)為,程序員一定不要受限于IDE。

關(guān)于上面兩位同學(xué)的討論,也只是基于事實(shí)進(jìn)行討論。如果本人看到,也希望不要介意,僅僅是為了說明這種現(xiàn)象而已哈。

3) 自覺簡單的臭蟲

筆者在和上面的那個(gè)哥們討論問題的時(shí)候,常常會(huì)聽到一句話,就是:這個(gè)太簡單了,沒必要...,這也是筆者的那個(gè)哥們經(jīng)常說的一句話。很明顯,他將編程劃分為了簡單和困難。
生活中,你可以發(fā)現(xiàn),他將自己不熟練的東西叫做困難,將自己已經(jīng)熟練掌握的東西叫做簡單。其實(shí),嚴(yán)格來說,編程不應(yīng)該用簡單和困難來區(qū)分。或許你認(rèn)為非常困難的地方,對(duì)于別人來說,so easy, 而你認(rèn)為很簡單的地方,對(duì)別人來說,可能就非常困難。
這里筆者想講一個(gè)故事,這事依然發(fā)生在我在某寶工作的時(shí)候。那個(gè)時(shí)候,某寶正處于創(chuàng)業(yè)前期,那個(gè)時(shí)候的業(yè)務(wù)邏輯相對(duì)而言還比較簡單。可就在那個(gè)時(shí)候,你總可以看到一個(gè)哥們,在默默地敲代碼,哪怕是在開會(huì)的時(shí)候,他依然一個(gè)人在默默地敲代碼。起初的時(shí)候,我非常不解。后來,我慢慢明白了。之所以看起來他似乎總是有干不完的活,其實(shí)是因?yàn)樗M麑⒑唵蔚臅r(shí)候做到極致,他在前期寫代碼的時(shí)候一定是做了充分的考慮。以至于在后期邏輯越來越復(fù)雜的時(shí)候,系統(tǒng)依然非常穩(wěn)定。就在前幾天,筆者已經(jīng)了解到,某寶現(xiàn)在后臺(tái)系統(tǒng)已經(jīng)非常穩(wěn)定了。我想,這與這位同學(xué)的默默付出是劃等號(hào)的。所以,筆者認(rèn)為,將簡單的事情做到極致,你就已經(jīng)成功了?;蛘哒f,世界上的任何事情不都是由一堆簡單的事情組成的嗎?何必要將編程劃分為簡單和困難呢?筆者將上面這類人叫做自覺簡單的臭蟲,為什么叫臭蟲呢?因?yàn)槌粝x永遠(yuǎn)是坐坑觀天,他的世界永遠(yuǎn)只有那么大。

4) 虛偽的騙子

有一種人,表面上,他告訴你,他很熱愛編程。事實(shí)上,你也可以看到他可能買了很多書籍??墒牵切?,他真的看了嗎?他平時(shí)真的有在寫程序嗎?他真的非常喜歡編程嗎?答案是:No!筆者在工作中遇到過不少這樣的人。印象比較深刻的是一個(gè)94年的哥們,他每天跟我一起下班,每天上班比我還早??吹搅怂那趭^,我在工作中,刻意地告訴他一些我的經(jīng)驗(yàn)。他也虛心接受??墒?,慢慢地發(fā)現(xiàn),他依然會(huì)一而再、再而三犯同樣的錯(cuò)誤。為此,有時(shí)候我也忍不住發(fā)脾氣。從上面的事例中可以看出他并不是真正地喜歡編程,而只是疲于奔命而已。印象深刻的是還有一次,我給他講OC,講Swift,可以看到他并沒有太大的興趣,只是敷衍在那聽著而已。還有一些同學(xué),你看到有一段時(shí)間他會(huì)非常拼命,仿佛在和代碼度蜜月??墒牵坏┻^了蜜月期,代碼就被無情地拋到了一邊。這種現(xiàn)象就是大家俗稱的三天打魚、兩天曬網(wǎng)。筆者將上面這類人叫做虛偽的騙子。

5) 無語的啞巴

筆者是一個(gè)非常喜歡討論的人??善陀幸环N人,每天只顧著寫他自己的代碼,什么話都不說。說到這里,筆者想提一下在某某生活的工作經(jīng)歷。在那里工作,遇到的的確是一些比較普通的程序員,甚至可以說是三流的程序員。可是他們喜歡討論,他們遇到問題會(huì)找我討論,也會(huì)指出我的問題。這一點(diǎn)我非常喜歡,這是我一直渴望的一種工作方式。如果你覺得筆者的代碼哪里有問題,Just tell me please! 但是,不要東拉西扯,請(qǐng)僅僅告訴我,哪里錯(cuò)了,為什么。不過,在某某生活大家給筆者提的一些錯(cuò)誤,筆者還沒來得及完全改掉,這里向大家說聲抱歉啦。筆者將這類總是一言不發(fā),自顧自敲代碼的人叫做無語的啞巴。這類人不光是說,只埋頭做事不討論的人。也包括一些雖然喜歡討論,卻并不會(huì)討論的人。這類人有一個(gè)問題,要么他會(huì)直接打斷你的話,要么就是直接屏蔽你說的話,自言自語;要么就始終堅(jiān)持自己的觀點(diǎn),不會(huì)換位思考。筆者認(rèn)為一個(gè)合理的討論應(yīng)該是:先聽別人把話說完,然后仔細(xì)分析別人到底說了什么,到底是什么意思。再來反駁。而不是一上來就恨不得讓別人不要說話。試問,這還叫討論嗎?這應(yīng)該叫獨(dú)角戲吧!

關(guān)于上面文章中提到的人,可能有部分主人公會(huì)看到這篇文章。再次提醒,希望不要介意,筆者只是闡述事例而已。

為什么寫這樣一篇文章呢?只是因?yàn)橛悬c(diǎn)遺憾,筆者工作了這么長時(shí)間,卻沒有遇到一個(gè)真正喜歡編程、喜歡討論的人,大多數(shù)都是上面這五類人。其實(shí),有時(shí)候想想,筆者是幸運(yùn)的,能夠從事自己喜歡的工作。而上面的第二類和第四類人卻不幸成為了代碼的奴隸、深陷其中、無法自拔。

在此,筆者發(fā)出一份編程召集令,希望可以找到真正熱愛編程、喜歡討論的人!

筆者希望你:

1)熱愛編程,不做虛偽的騙子

2)喜歡討論,不做無語的啞巴

3)用代碼說話,不做自覺簡單的臭蟲

4)愿意學(xué)習(xí),不做高調(diào)的USB

如果你恰好滿足上面這些條件,Call me please!

做個(gè)廣告

歡迎加入Kotlin交流群

如果你喜歡Kotlin語言,歡迎加入Kotlin交流群: 2840094811 ,一起來參與Kotlin語言的推廣工作。

PS:配圖均是我的偶像,猜猜他們是誰 -_-

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,905評(píng)論 25 709
  • 用一下午,我看完了這個(gè)故事,《逆著時(shí)光的相遇》,到了這個(gè)年紀(jì),對(duì)于霸道總裁文仍然喜歡,虐心里有美好,能滿足少女心。...
    向沐然閱讀 360評(píng)論 0 0
  • 路過的風(fēng)景
    饞豆9981閱讀 118評(píng)論 0 0
  • 毅力,英語是perseverance,它可以分為per(一直)和sever(誠懇),那么一直誠懇就可以理解為堅(jiān)持不...
    濃湯閱讀 285評(píng)論 2 2
  • 世界上所有的相遇,都是久別重逢。 當(dāng)你認(rèn)真談過一段感情,最后卻分手了,后來你會(huì)很難再去喜歡別人,你不想花時(shí)間也不想...
    Charles小鼠閱讀 231評(píng)論 0 1

友情鏈接更多精彩內(nèi)容