有人說孽亲,代碼是一門藝術(shù)坎穿。也有人說,代碼只不過是一份工作而已返劲。
在中國玲昧,大部分人應(yīng)該屬于后一種,他們并不真正喜歡編程篮绿,卻每天為了代碼而絞盡腦汁孵延,甚至痛不欲生。
韓寒出道時寫過一篇文章叫《杯中窺人》亲配,其實代碼也是可以窺見一個人的性格和人生態(tài)度的尘应。仔細(xì)去品讀一個人的代碼,你可以讀出這個人對待生活的態(tài)度吼虎,對待工作的熱情犬钢,甚至看出他的性格。
筆者自工作以來思灰,遇到了各種各樣的程序員娜饵,卻一直未能遇到真正熱愛編程的人。個中遺憾官辈,希望借今天這篇文章批判一下當(dāng)今中國程序員的不良作風(fēng),以儆效尤遍坟。
1) 高調(diào)的USB
筆者在剛剛開始工作的時候碰到一個92年的小組長拳亿,當(dāng)時從事的項目是幫助貴州農(nóng)場做一個自動化管理的項目,他負(fù)責(zé)日常管理愿伴、分配任務(wù)等肺魁。他是一個不茍言笑,也不喜歡討論的人隔节。印象深刻的是有一次鹅经,我指著一處代碼對他說寂呛,這里的邏輯有點問題。他看都沒看一眼瘾晃,便對著我大喊大叫:我怎么可能犯這樣的錯誤贷痪。我記得我當(dāng)時的表情,先是一愣蹦误。然后劫拢,繼續(xù)堅持說,這里確實錯了强胰。后來發(fā)現(xiàn)舱沧,那里的邏輯確實有點問題,但最終確定到底是不是他寫的代碼就不確定了偶洋。無論如何熟吏,這種過分的高調(diào)都無異于虛偽的偽裝,越是如此玄窝,越會讓人覺得此人的水平一定一般牵寺。換而言之,越是能力比較強的同學(xué)哆料,往往越是娓娓道來缸剪、不緊不慢... 不過,筆者有一次在QQ空間寫一篇文章提到這個事的時候东亦,他本人還來評論里面給我道歉杏节,這說明他其實是意識到自己錯誤的。寫這個片段也不是為了批評他典阵,希望他本人看到也不要介意奋渔。我只是想說明這種現(xiàn)象,因為我記得在跟騰訊同學(xué)的一次討論中壮啊,他們也提到曾經(jīng)有遇到過這樣過分高調(diào)的同學(xué)嫉鲸,他們采取的態(tài)度就是完全不予理會,任其自身自滅歹啼。
在編程行業(yè)玄渗,高調(diào)沒有什么用,這里用Linus的一句話回應(yīng)這類同學(xué):Talk is cheap, show me the code.
2) 死板的懦夫
有一種人狸眼,不懂得變通藤树,總是使用一成不變的方式處理問題。不斷地Copy,Copy,Repeat... 這類人有一個特點拓萌,他們通常不會去研究新技術(shù)岁钓,也不會去嘗試接受別人的思想。即便其所在領(lǐng)域已經(jīng)出現(xiàn)了很多新的技術(shù),這種人是永遠(yuǎn)不會去嘗試的屡限。他會等待別人都嘗試過了品嚣,再來沿著別人的足跡走馬觀花一番。筆者將這類人稱為死板的懦夫钧大。筆者在工作中遇到過不少這樣的懦夫翰撑,且聽我一一道來。
在深圳的第一份工作是在某寶(不是淘寶哈)拓型,在某寶不幸遇到一個這樣的女程序員额嘿,該程序員非常健談,平時看起來沒什么劣挫,日常交朋友也OK册养。可一旦和你討論問題压固,你就會發(fā)現(xiàn)球拦,此人非常死板,記憶比較深刻的一次討論是帐我,關(guān)于Android確認(rèn)和取消按鈕的順序問題坎炼,在找產(chǎn)品確認(rèn)后,依然不死心拦键,硬是把一個94年的產(chǎn)品助理“罵”通才善罷甘休谣光。從那一次起,我就發(fā)現(xiàn)此人腦子非常死板芬为,她在開發(fā)過程中萄金,依然堅持使用eclipse(Android官方推薦使用Android Studio)。從她的代碼中媚朦,你可以看到if代碼墻氧敢,生怕出現(xiàn)空指針異常。更加凸顯這種人性格的询张,copy是永遠(yuǎn)是她的主旋律孙乖。有一次,公司要求做一個指紋解鎖的功能份氧,做好后感覺和app的風(fēng)格完全不搭唯袄。后來我們的測試告訴我,這個解鎖他之前看到過蜗帜,代碼也是原封不動copy過來的... 關(guān)于她的事跡還有很多很多越妈,這里就不一一舉例了。這類人其實就是大家平時口中所說的碼農(nóng)钮糖,代碼只是他們養(yǎng)家糊口的工具而已。他們把編程當(dāng)成一份工作,只要完成任務(wù)就好店归。所以阎抒,其實她并沒有錯,只是準(zhǔn)確來說消痛,她并不能算一個程序員且叁。
另外,筆者還有一個哥們秩伞,也是比較死板逞带。不同的是,他一直堅持使用最新的技術(shù)纱新,而他的問題是展氓,他不能接受別人使用不一樣的東西。這也是中國程序員很大的一個弊病脸爱。印象比較深刻的幾個事情是遇汞,事件一:他看到某個括號和編程工具格式化不一樣他說會感覺到不自然,從某種層面來說簿废,這是對的空入,這是對代碼要求嚴(yán)格的表現(xiàn)。而從另一個層面來說族檬,此人的腦子的確也略顯死板歪赢。為什么呢?其實筆者以前也是這樣的個性单料,會讓代碼格式化后和格式化之前幾乎沒什么變化埋凯,或許他是受了我的影響也不一定】茨幔可是递鹉,后來慢慢地發(fā)現(xiàn),編譯器格式化的部分代碼并不好看藏斩,有些空格甚至顯得多余躏结。為什么會有這樣,主要是因為接觸的語言多了狰域,接觸的人多了媳拴,開始可以接受多種風(fēng)格的代碼。而從原則上來說兆览,好的編程風(fēng)格只是為了便于代碼閱讀屈溉。所以,并不一定要求和編譯器理解的完全一致抬探,而只需要在整個項目中保持一致即可子巾。
其實帆赢,上面這個例子不能完全說明此人略顯死板,更多例子繼續(xù)往下看线梗。在跟他慢慢接觸的過程中椰于,發(fā)現(xiàn)他基本屬于無法適應(yīng)新的編程工具,或者會強烈抨擊某種編程工具上面仪搔,這是其一瘾婿。其二,此人對于不喜歡的東西會強烈抨擊烤咧,換而言之偏陪,他會有非常強烈的愛恨之分。他會把編程語言區(qū)分為喜愛和憎惡煮嫌,而不是try it笛谦,然后再來決定愛或者不愛。其三立膛,筆者其實算是一個對編程工具非常隨意的一個人揪罕,幾乎不會去記編程工具的快捷方式,只會記憶一些常用的快捷方式宝泵,每次他在的時候好啰,看我在使用的時候,總會告訴筆者各種各樣的快捷鍵儿奶。其實那一刻我就明白了框往,他應(yīng)該是一個比較死板的人,如果讓他換一個編程工具闯捎,恐怕寫代碼的效率都會下降很多椰弊。一定有人會問,你不會嗎瓤鼻?答案是:會秉版!但不會下降很多。筆者用過的編程工具有:Eclipse, Visual Studio,Xcode,Clion等等茬祷。筆者認(rèn)為清焕,程序員一定不要受限于IDE。
關(guān)于上面兩位同學(xué)的討論祭犯,也只是基于事實進行討論秸妥。如果本人看到,也希望不要介意沃粗,僅僅是為了說明這種現(xiàn)象而已哈粥惧。
3) 自覺簡單的臭蟲
筆者在和上面的那個哥們討論問題的時候,常常會聽到一句話最盅,就是:這個太簡單了突雪,沒必要...起惕,這也是筆者的那個哥們經(jīng)常說的一句話。很明顯挂签,他將編程劃分為了簡單和困難疤祭。
生活中,你可以發(fā)現(xiàn)饵婆,他將自己不熟練的東西叫做困難,將自己已經(jīng)熟練掌握的東西叫做簡單戏售。其實侨核,嚴(yán)格來說,編程不應(yīng)該用簡單和困難來區(qū)分灌灾〈暌耄或許你認(rèn)為非常困難的地方,對于別人來說锋喜,so easy, 而你認(rèn)為很簡單的地方些己,對別人來說,可能就非常困難嘿般。
這里筆者想講一個故事段标,這事依然發(fā)生在我在某寶工作的時候。那個時候炉奴,某寶正處于創(chuàng)業(yè)前期逼庞,那個時候的業(yè)務(wù)邏輯相對而言還比較簡單≌案希可就在那個時候赛糟,你總可以看到一個哥們,在默默地敲代碼砸逊,哪怕是在開會的時候璧南,他依然一個人在默默地敲代碼。起初的時候师逸,我非常不解司倚。后來,我慢慢明白了字旭。之所以看起來他似乎總是有干不完的活对湃,其實是因為他希望將簡單的時候做到極致,他在前期寫代碼的時候一定是做了充分的考慮遗淳。以至于在后期邏輯越來越復(fù)雜的時候拍柒,系統(tǒng)依然非常穩(wěn)定。就在前幾天屈暗,筆者已經(jīng)了解到拆讯,某寶現(xiàn)在后臺系統(tǒng)已經(jīng)非常穩(wěn)定了脂男。我想,這與這位同學(xué)的默默付出是劃等號的种呐。所以宰翅,筆者認(rèn)為,將簡單的事情做到極致爽室,你就已經(jīng)成功了汁讼。或者說阔墩,世界上的任何事情不都是由一堆簡單的事情組成的嗎嘿架?何必要將編程劃分為簡單和困難呢?筆者將上面這類人叫做自覺簡單的臭蟲啸箫,為什么叫臭蟲呢耸彪?因為臭蟲永遠(yuǎn)是坐坑觀天,他的世界永遠(yuǎn)只有那么大忘苛。
4) 虛偽的騙子
有一種人蝉娜,表面上,他告訴你扎唾,他很熱愛編程召川。事實上,你也可以看到他可能買了很多書籍稽屏“绯瑁可是,那些書籍狐榔,他真的看了嗎坛增?他平時真的有在寫程序嗎?他真的非常喜歡編程嗎薄腻?答案是:No收捣!筆者在工作中遇到過不少這樣的人。印象比較深刻的是一個94年的哥們庵楷,他每天跟我一起下班罢艾,每天上班比我還早【∨Γ看到了他的勤奮咐蚯,我在工作中,刻意地告訴他一些我的經(jīng)驗弄贿。他也虛心接受春锋。可是差凹,慢慢地發(fā)現(xiàn)期奔,他依然會一而再侧馅、再而三犯同樣的錯誤。為此呐萌,有時候我也忍不住發(fā)脾氣馁痴。從上面的事例中可以看出他并不是真正地喜歡編程,而只是疲于奔命而已肺孤。印象深刻的是還有一次罗晕,我給他講OC,講Swift赠堵,可以看到他并沒有太大的興趣攀例,只是敷衍在那聽著而已。還有一些同學(xué)顾腊,你看到有一段時間他會非常拼命,仿佛在和代碼度蜜月挖胃≡影校可是,一旦過了蜜月期酱鸭,代碼就被無情地拋到了一邊吗垮。這種現(xiàn)象就是大家俗稱的三天打魚、兩天曬網(wǎng)凹髓。筆者將上面這類人叫做虛偽的騙子烁登。
5) 無語的啞巴
筆者是一個非常喜歡討論的人∥狄ǎ可偏偏就有一種人饵沧,每天只顧著寫他自己的代碼,什么話都不說赌躺。說到這里狼牺,筆者想提一下在某某生活的工作經(jīng)歷。在那里工作礼患,遇到的的確是一些比較普通的程序員是钥,甚至可以說是三流的程序員∶宓可是他們喜歡討論悄泥,他們遇到問題會找我討論,也會指出我的問題肤粱。這一點我非常喜歡弹囚,這是我一直渴望的一種工作方式。如果你覺得筆者的代碼哪里有問題狼犯,Just tell me please! 但是余寥,不要東拉西扯领铐,請僅僅告訴我,哪里錯了宋舷,為什么绪撵。不過,在某某生活大家給筆者提的一些錯誤祝蝠,筆者還沒來得及完全改掉音诈,這里向大家說聲抱歉啦。筆者將這類總是一言不發(fā)绎狭,自顧自敲代碼的人叫做無語的啞巴细溅。這類人不光是說,只埋頭做事不討論的人儡嘶。也包括一些雖然喜歡討論喇聊,卻并不會討論的人。這類人有一個問題蹦狂,要么他會直接打斷你的話誓篱,要么就是直接屏蔽你說的話,自言自語凯楔;要么就始終堅持自己的觀點窜骄,不會換位思考。筆者認(rèn)為一個合理的討論應(yīng)該是:先聽別人把話說完摆屯,然后仔細(xì)分析別人到底說了什么邻遏,到底是什么意思。再來反駁虐骑。而不是一上來就恨不得讓別人不要說話准验。試問,這還叫討論嗎富弦?這應(yīng)該叫獨角戲吧沟娱!
關(guān)于上面文章中提到的人,可能有部分主人公會看到這篇文章腕柜。再次提醒济似,希望不要介意,筆者只是闡述事例而已盏缤。
為什么寫這樣一篇文章呢砰蠢?只是因為有點遺憾,筆者工作了這么長時間唉铜,卻沒有遇到一個真正喜歡編程台舱、喜歡討論的人,大多數(shù)都是上面這五類人。其實竞惋,有時候想想柜去,筆者是幸運的,能夠從事自己喜歡的工作拆宛。而上面的第二類和第四類人卻不幸成為了代碼的奴隸嗓奢、深陷其中、無法自拔浑厚。
在此股耽,筆者發(fā)出一份編程召集令,希望可以找到真正熱愛編程钳幅、喜歡討論的人物蝙!
筆者希望你:
1)熱愛編程,不做虛偽的騙子
2)喜歡討論敢艰,不做無語的啞巴
3)用代碼說話诬乞,不做自覺簡單的臭蟲
4)愿意學(xué)習(xí),不做高調(diào)的USB
如果你恰好滿足上面這些條件钠导,Call me please!
做個廣告
歡迎加入Kotlin交流群
如果你喜歡Kotlin語言丽惭,歡迎加入Kotlin交流群: 2840094811 ,一起來參與Kotlin語言的推廣工作辈双。
PS:配圖均是我的偶像,猜猜他們是誰 -_-