編程的藝術(shù)門檻

編程是門藝術(shù)柱锹,這個說法由來已久哪自。最近在朱赟的公眾號(滴答滴答)讀到一篇文章《設(shè)計是門邏輯學(xué),然后才是美學(xué)》禁熏,文中作者漂洋過海追尋藝術(shù)壤巷,老師卻說:“設(shè)計不是藝術(shù)!”瞧毙。如果設(shè)計都不是藝術(shù)胧华,那么編程還能是藝術(shù)么寄症?

藝術(shù)

那么藝術(shù)到底是什么?我一下懵了矩动,發(fā)現(xiàn)從來沒有想過這個問題有巧,只好求助于 Google。Wikipedia 上的定義是:「藝術(shù)是具有智能思考能力的動物(目前其實(shí)只有人類吧)悲没,借由各種形式及工具借以表達(dá)其情感與意識形態(tài)篮迎,所產(chǎn)生的形態(tài)泛稱之為藝術(shù).

而上面那篇文章中老師的觀點(diǎn)是:

設(shè)計是實(shí)現(xiàn)別人的需要,藝術(shù)是自我表達(dá)的需要示姿。

和 Wikipedia 的說法相近甜橱,核心都在于表達(dá)。而目前公認(rèn)的藝術(shù)分類栈戳,包括八大藝術(shù)種類:文學(xué)岂傲,繪畫,音樂子檀,舞蹈镊掖,雕塑,建筑褂痰,戲劇亩进,電影。

它們的共性是這些都是人類自古以來的創(chuàng)造脐恩,其中最年輕的藝術(shù)門類當(dāng)屬「電影」了镐侯,其作品承載了作者的情感和意識形態(tài)。而所有被公認(rèn)的藝術(shù)門類驶冒,顯然它們最終作品呈現(xiàn)出的藝術(shù)表達(dá)形態(tài)更容易被普通人直接的感受到苟翻,直接作用于人們的視覺、聽覺和觸覺感官骗污。

關(guān)于編程是一門藝術(shù)這個概念崇猫,到底什么時候鉆入程序員的頭腦中的呢?也許來自我們在學(xué)習(xí)編程的路上需忿,很多講述編程的書籍都冠以藝術(shù)之名诅炉,比如:《UNIX編程藝術(shù)》,這是一本講述

Unix 專家們在創(chuàng)造 Unix

過程中形成的理念和文化屋厘,那么技術(shù)文化是藝術(shù)么涕烧?還有另一本程序員中的圣經(jīng)《計算機(jī)程序設(shè)計藝術(shù)》,我們都知道汗洒,卻幾乎沒讀過议纯。這是一套講述算法,并基于數(shù)學(xué)來推導(dǎo)和論證算法的基礎(chǔ)書籍溢谤,那么算法是藝術(shù)么瞻凤?

編程的直接產(chǎn)物是代碼憨攒,代碼是面向程序員的,而非普羅大眾阀参。編程的間接產(chǎn)物是信息產(chǎn)品肝集,在當(dāng)下這個信息時代,信息產(chǎn)品的形態(tài)很多樣化蛛壳,可以是你手機(jī)上的

App杏瞻,也可以是你每晚打開的電視。很可能一切和電子相關(guān)的東西炕吸,在當(dāng)下或多或少都和編程有關(guān)伐憾,但我們發(fā)現(xiàn)即使是在這些間接產(chǎn)物中勉痴,也找不出一樣可以讓我們很嚴(yán)肅的把它歸為藝術(shù)赫模。即使是神化的喬布斯時代,我們給予的最大贊譽(yù)也只是蘋果的每件產(chǎn)品都像藝術(shù)品一般蒸矛。僅僅是像瀑罗,像可以無限逼近,但畢竟還不是雏掠。

所以相對而言斩祭,編程也如設(shè)計是實(shí)現(xiàn)別人的需要,像我在這寫作倒更多是自我表達(dá)的需要了乡话。編程受限于程序語言的表達(dá)能力摧玫,是不可能達(dá)到像自然語言的表達(dá)能力的,因此編程的藝術(shù)性绑青,它的受眾也只可能是程序員們诬像。雖然面向大眾的藝術(shù),很多大眾也表示看不懂闸婴,但至少能感受坏挠,而編程藝術(shù)則是只有程序員本身才可能感受得到了。

技術(shù)

程序員的日常編程工作就是編寫代碼邪乍,完成功能降狠,實(shí)現(xiàn)別人的需要。在這個過程中不小心就還會制造一些 bug庇楞,程序員也不知道這些 bug

是怎么變出來的榜配,就像你天天在家做飯,不知道怎么廚房里就多了那么多小強(qiáng)吕晌。美食也不屬于公認(rèn)的藝術(shù)門類蛋褥,但時不時我們會聽到美食藝術(shù)的說法,這一點(diǎn)倒是和編程藝術(shù)很像聂使。但若是你在創(chuàng)造美食的過程壁拉,時不時冒出些小強(qiáng)谬俄,哪里還有去感受藝術(shù)的心思。程序員大部分時候就是在不斷的解決源源不絕弃理,生生不息的

bug溃论,這個過程與藝術(shù)無關(guān),只與技術(shù)有關(guān)痘昌,技術(shù)越練越好钥勋,bug 也就越來越少。bug 少到我們能騰出精力和心思辆苔,才能去感受編程的藝術(shù)性算灸。

編程的藝術(shù)源于技術(shù),沒有技術(shù)則藝術(shù)成了無源之水驻啤,無根之木菲驴。所以那些冠以「藝術(shù)」之名的程序書籍其實(shí)都是講的技術(shù)或者技術(shù)原則與文化。而關(guān)于編程最基礎(chǔ)的技術(shù)當(dāng)然是寫好代碼骑冗,而如何寫好代碼這件事以前看過王垠寫過的一篇長文《編程的智慧》赊瞬,其中觀點(diǎn)我都認(rèn)同,包括下面一些方面:

反復(fù)推敲代碼

寫優(yōu)雅的代碼

寫模塊化的代碼

寫可讀的代碼

寫簡單的代碼

寫直觀的代碼

寫無懈可擊的代碼

正確處理錯誤

正確處理null指針

防止過度工程

文章很長贼涩,但花點(diǎn)時間細(xì)細(xì)讀來巧涧,必有收獲,其中關(guān)于推敲代碼這點(diǎn)于我感觸最深遥倦。

看一個作家的水平谤绳,不是看他發(fā)表了多少文字,而要看他的廢紙簍里扔掉了多少袒哥。

我覺得同樣的理論適用于編程缩筛。好的程序員,他們刪掉的代碼统诺,比留下來的還要多很多歪脏。

我曾經(jīng)自己維護(hù)了一個項目,包括一些樣板代碼粮呢,稱手的小工具等等婿失。每一年我都會抽業(yè)余時間對這個工程做一次重構(gòu),一些代碼隨著技術(shù)發(fā)展而過時了啄寡,一些則被重新實(shí)現(xiàn)變得更簡潔豪硅。每年的一次回顧,對過去自己的審視挺物,對代碼的推敲都帶來新的成長懒浮,這個過程持續(xù)了大約七年。

在技術(shù)成長到了一定階段,有些程序員就會開始不滿足于僅僅實(shí)現(xiàn)別人的需要砚著,也會在代碼里嘗試自我表達(dá)次伶。最基礎(chǔ)且最明顯的表達(dá)是為代碼簽名,打上自己的標(biāo)簽稽穆,要是雷軍二十年前沒有為那段匯編代碼簽名冠王,我們今天哪里知道這會是雷軍寫的,并在這里評頭論足舌镶。但依然有很多程序員不會為自己的代碼簽名柱彻,連機(jī)器生成的代碼都會簽名說這是自動生成的,而一份沒有簽名的代碼是缺乏藝術(shù)最基本的要素「自我」的餐胀,永遠(yuǎn)停留在藝術(shù)的門檻之外哟楷。

技藝

單獨(dú)說編程藝術(shù)是不完整的,編程是從技術(shù)走向藝術(shù)否灾。編程藝術(shù)是開在枝頭的鮮花卖擅,而技術(shù)是支撐花朵的枝與根。

而在技術(shù)和藝術(shù)之間實(shí)際存在一道很高的門檻坟冲,藝術(shù)是一種自我表達(dá)磨镶,但自我表達(dá)卻未必是藝術(shù)溃蔫。關(guān)于這一點(diǎn)我們說個大家耳熟能詳?shù)娜?/p>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末健提,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子伟叛,更是在濱河造成了極大的恐慌私痹,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件统刮,死亡現(xiàn)場離奇詭異紊遵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)侥蒙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門暗膜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鞭衩,你說我怎么就攤上這事学搜。” “怎么了论衍?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵瑞佩,是天一觀的道長。 經(jīng)常有香客問我坯台,道長炬丸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任蜒蕾,我火速辦了婚禮稠炬,結(jié)果婚禮上焕阿,老公的妹妹穿的比我還像新娘。我一直安慰自己首启,他們只是感情好捣鲸,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著闽坡,像睡著了一般栽惶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上疾嗅,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天外厂,我揣著相機(jī)與錄音,去河邊找鬼代承。 笑死汁蝶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的论悴。 我是一名探鬼主播掖棉,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼膀估!你這毒婦竟也來了幔亥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤察纯,失蹤者是張志新(化名)和其女友劉穎帕棉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饼记,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡香伴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了具则。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片即纲。...
    茶點(diǎn)故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖博肋,靈堂內(nèi)的尸體忽然破棺而出低斋,到底是詐尸還是另有隱情,我是刑警寧澤束昵,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布拔稳,位于F島的核電站,受9級特大地震影響锹雏,放射性物質(zhì)發(fā)生泄漏巴比。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望轻绞。 院中可真熱鬧采记,春花似錦、人聲如沸政勃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奸远。三九已至既棺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間懒叛,已是汗流浹背丸冕。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留薛窥,地道東北人胖烛。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像诅迷,于是被迫代替她去往敵國和親佩番。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 今天早晨和同事在微信上吵架罢杉,他問我為什么不顧及別人的感受趟畏,我說無關(guān)人等不用搭理。后來意識到屑那,問題不在于那些他重視而...
    Larissa閱讀 245評論 0 0
  • 我是從小就在農(nóng)村長大的拱镐,那些長在土里的、崖邊的、田坎上的狞膘、水溝里的花都幾乎被我把玩過看靠,認(rèn)識了很多植物,盡管可能不能...
    霓羽殤閱讀 183評論 0 1