最近在看一本關(guān)于軟件工程的書《人月神話》厉斟,這本書在軟件開發(fā)領(lǐng)域極富盛名挚躯,雖然我不是軟件開發(fā)工程師,但這本書提及的很多編程和項(xiàng)目管理思想還是很吸引我擦秽。
在書的第一章码荔,作者提到了編程的樂趣,他說編程起碼提供了5個(gè)方面的樂趣:
- 創(chuàng)建事務(wù)的純粹快樂
- 開發(fā)對(duì)他人有用的東西
- 組裝零部件成為一個(gè)有用的產(chǎn)品
- 為解決問題而持續(xù)學(xué)習(xí)
- 純粹的思維活動(dòng)
這讓我想起知乎上有個(gè)問題:程序員的你感挥,真的熱愛編程嗎缩搅?
有三百多個(gè)回答,大部分都覺得寫代碼是件開心的事情触幼,當(dāng)然也有可能是幸存者偏差硼瓣,不喜歡編程的人連回答都懶得回答。
我接觸的很多程序員確實(shí)對(duì)編程都會(huì)有超越一般人的興趣置谦,不僅僅是為了謀生而被迫去喜歡堂鲤,更多是真的編程創(chuàng)作過程是有趣的。
我想可能編程是一種能產(chǎn)生心流的事情媒峡,為開發(fā)一個(gè)軟件瘟栖,不斷地寫代碼、運(yùn)行谅阿、測(cè)試半哟、更新酬滤、迭代,最終創(chuàng)造出一個(gè)看得著的產(chǎn)品寓涨,且對(duì)他人有用盯串,這是多么有成就感的事。
某位圖靈獎(jiǎng)得主這樣描述描述編程:
神話和傳說的魔力在我們這一代成真戒良,只要在鍵盤上敲下正確的咒語体捏,顯示屏就像是活了過來,里面都是以前不可能存在或發(fā)生的事情蔬墩。
這里分享一下《人月神話》原文:
編程為什么有趣?作為回報(bào)耗拓,它的從業(yè)者期望得到什么樣的快樂拇颅?
首先,這種快樂是一種創(chuàng)建事物的純粹快 樂乔询。如同小孩在玩泥巴時(shí)感到快樂一樣樟插,成年人喜歡創(chuàng)建事物,特別是自己進(jìn)行設(shè)計(jì)竿刁。我想這種快樂是上帝創(chuàng)造世界的折射黄锤,一種呈現(xiàn)在每片獨(dú)特的、嶄新的樹葉和雪花上的喜悅食拜。
其次鸵熟,這種快樂來自于開發(fā)對(duì)他人有用的東西。內(nèi)心深處负甸,我們期望我們的勞動(dòng)成果能夠被他人使用流强,并能對(duì)他們有所幫助。從這一角度而言呻待,這同小孩用粘士為 “爸爸的辦公室”捏制鉛筆盒沒有任何本質(zhì)的區(qū)別打月。
第三,快樂來自于整個(gè)過程體現(xiàn)出的一股強(qiáng)大的魅力一一將相互嚙合的零部件組裝在一起蚕捉,看到它們以精妙的方式運(yùn)行著奏篙,并收到了預(yù)期的效果。比起彈球游戲機(jī)或 自動(dòng)電唱機(jī)所具有的迷人魅力迫淹,程序化的計(jì)算機(jī)毫不遜色秘通。
第四,這種快樂是持續(xù)學(xué)習(xí)的快樂敛熬,它來自于這項(xiàng)工作的非重復(fù)特性充易。人們所面臨的問題總有這樣那樣的不同,因而解決問題的人可以從中學(xué)習(xí)新的事物荸型,有時(shí)是實(shí)踐上的盹靴,有時(shí)是理論上的炸茧,或者兼而有之。
最后稿静,這種快樂還來自于在易于駕馭的介質(zhì)上工作梭冠。程序員,就像詩人一樣改备,幾乎僅僅在單純的思考中工作控漠。程序員憑空地運(yùn)用自己的想象,來建造自己的“城堡”悬钳。很少有創(chuàng)造介質(zhì)如此靈活盐捷,如此易于精煉和重建,如此容易實(shí)現(xiàn)概念上的設(shè)想(不過我們將會(huì)看到默勾,容易駕馭的特性也有它自己的問題)碉渡。
然而程序同詩歌不同,它是實(shí)實(shí)在在的東西母剥;它可以移動(dòng)和運(yùn)行滞诺,能獨(dú)立產(chǎn)生可見的輸出;它能打印結(jié)果环疼,繪制圖形习霹,發(fā)出聲音,移動(dòng)支架炫隶。神話和傳說中的魔術(shù)在我們的時(shí)代己變成現(xiàn)實(shí)淋叶。在鍵盤上鍵入正確的咒語,屏幕會(huì)活動(dòng)伪阶、 變幻爸吮,顯示出前所未有的也不可能存在的事物。
編程的快樂在于它不僅滿足了我們內(nèi)心深處進(jìn)行創(chuàng)造的渴望望门,而且還喚醒了每個(gè)人內(nèi)心的情感形娇。