能上癮的還有更糟糕的東西,比如毒品,性,色情或?qū)毷螒?。而我的老公——一個(gè)普通的小伙——卻是對(duì)編程有癮。
會(huì)編程的人在不同的階段會(huì)有很多不同的名稱:軟件開發(fā)者,程序員,編碼員,黑客。我的老公,馬克,和其他程序員一樣,編程不僅僅是一種愛好或事業(yè)——那是一種生活方式。 我在他的日常生活習(xí)慣和行為上經(jīng)常能看到編程思維模式給他帶來的影響:他的最有效的擺放襪子格的方式和他如何用最少的水和最少的洗潔精洗出最干凈的盤子的方法。 有時(shí)候,我真是受不了他的那種被編程改造的思維方式。例如,當(dāng)我們對(duì)什么事情有爭執(zhí)時(shí),他總是有條理的、系統(tǒng)性的擺出一大堆該死的邏輯關(guān)系論據(jù)。 “邏輯上就是這樣,”要命的馬克的口頭禪。 “去死吧!我是一個(gè)人,不是一個(gè)布爾條件!”明顯帶有憤怒的我會(huì)這樣反駁他。 馬克的大腦里全是括弧,標(biāo)記,分號(hào)和邏輯操作符。對(duì)我來說,這些全是噪音。 即使當(dāng)他不在電腦前面時(shí),他也是翻來覆去的想那些他之前編寫的代碼和語法。最近,當(dāng)我在為編輯部給一些晚會(huì)和周末活動(dòng)做計(jì)劃時(shí),我老公表現(xiàn)的異常興奮——因?yàn)檫@意味我不在家時(shí)他可以繼續(xù)編程了。 “你真討厭,”我說?!拔矣X得你編程時(shí)更享受,而不是和我在一起時(shí)?!?/span>
我有跟我同病相憐的女人們——一些程序員的老婆和女朋友會(huì)告訴我她們的男人是如何經(jīng)常忘記吃飯、喝水或洗澡的。 她們每個(gè)人都嘗試過用自己的辦法來阻止她們心愛的男人編程: 有一個(gè)女人把他丈夫的電腦藏了起來。她用她的淫威命令老公去打掃房間。 另外一個(gè)年輕的女孩采用了一個(gè)完全不同的策略,她裸體在他的男朋友面前扭來扭去,企圖吸引他的注意力。這樣也失敗了。 我真的非常想知道,是什么魔力誘引馬克利用一切機(jī)會(huì)去思考他的代碼?是什么讓編程如此招人上癮? 為了能徹底的理解老公的癡迷,我報(bào)名參加了加拿大最大的“學(xué)習(xí)編程”活動(dòng),希望能通過這種方法進(jìn)入他的數(shù)字世界并找到共同空間——不再是一個(gè)程序員的外行老婆,而是一個(gè)學(xué)習(xí)編程的太太。 編程101 組織方把這種活動(dòng)叫做HTML500:因?yàn)橐?00人參加了這樣的一個(gè)免費(fèi)活動(dòng),所以起了這樣一個(gè)有趣的名字。但對(duì)我來說,我感覺這個(gè)名稱對(duì)我來說也許是個(gè)不好的預(yù)兆。
學(xué)習(xí)任務(wù)是要在6小時(shí)里做出一個(gè)網(wǎng)站。來自溫哥華Lighthouse Labs的老師給我們上了兩堂晨課,指導(dǎo)了我們一些基本的HTML和CSS知識(shí)。我選擇去做一個(gè)在線的簡歷。我找到一些參考手冊(cè),有一個(gè)輔導(dǎo)團(tuán)隊(duì)幫助,我就開始編寫我的第一行代碼了。 我做了一個(gè)大標(biāo)題,填上我的名字和我的專業(yè)職稱。再添加我的郵件地址。在地址上加入超鏈接。我回頭又去修改了大標(biāo)題的顏色和風(fēng)格。增加字體大小。然后上傳了一張我的照片。使用快捷鍵 學(xué)到這里,我們的免費(fèi)午餐、程序員的最愛食品——批薩——來了。我發(fā)現(xiàn)自己一手拿著一片烤胡椒香腸,而另一手還在撥弄著鍵盤。瞧,這么快就染上了程序員的壞習(xí)慣了。但現(xiàn)在沒時(shí)間考慮這些事情。我還要繼續(xù)建設(shè)我的網(wǎng)站。 一條紅色的下劃線出現(xiàn)在了一段代碼下面,顯示這里有問題。我上下翻動(dòng)看看是什么導(dǎo)致了錯(cuò)誤。文學(xué)創(chuàng)作者把這稱為編輯;程序員把它稱作“debugging”。我寫的這幾行代碼想向我講述一個(gè)故事。有幾種方法能讓這些代碼更簡潔、緊湊——就像寫作。 在我看來,并不是這些數(shù)字和邏輯致使編程成癮。而是這種創(chuàng)作出以前不存在的東西的魅力。我問輔導(dǎo)員,是什么讓他們迷上了編程,他說是一種腎上腺素,是一種解決看起來無法解決的難題的興奮,這會(huì)讓他們把全部的時(shí)間和精力投入到其中,一干就是數(shù)小時(shí),直到成果出現(xiàn)?!斑@就像是在吃已經(jīng)烤了數(shù)小時(shí)的鮮美烤肉”。 組織方說參加這個(gè)活動(dòng)的人60%都是女性。每個(gè)人都有自己不同的目的來到這里,把她們的周末用在學(xué)習(xí)編程上: “這是拿到工作執(zhí)照最簡單的方法” “本想去IKEA的,但發(fā)現(xiàn)這個(gè)地方也不錯(cuò)。” “免費(fèi)午餐” 還有一些更有意義的原因: “我喜歡探究原理,看看里面是什么,如何工作的?!?/span> “因?yàn)?/span>奧巴馬總統(tǒng)說,‘不要只在手機(jī)上玩,去編寫一個(gè)。‘” 有一些人說的跟馬克曾經(jīng)告訴我的非常相似:“編程是一種不斷學(xué)習(xí)的活動(dòng)。我喜歡這種每天都能學(xué)到新東西的感覺?!?/span>
這些年來,我一直認(rèn)為老公和我是一對(duì)矛盾體。我是作家,他是程序員。我用文字寫;他用Common Lisp 和 Ruby on Rails 寫。然而,這兩種工作卻要求非常相似的態(tài)度:堅(jiān)持,創(chuàng)新和解決問題。 如今有很多的人都在學(xué)習(xí)編程,他們并不是一些很擅長數(shù)學(xué)的人。有的是搞繪畫的,有時(shí)是搞音樂的,有的是新聞?dòng)浾撸踔列『⒁查_始擴(kuò)展他們這方面的知識(shí)面,相信編程將會(huì)是將來的一種基本技能。 有很多很好的理由促使我們學(xué)習(xí)編程——即使簡單的為了更好的理解自己的老公。你可能永遠(yuǎn)想不到你也許是多么的喜歡編程。 |
|