今天想來聊聊最近對寫code的一些感悟。

我讀大學前完全不知道有Computer Science和Programming這個東西。高三時,因為什麼都不懂,也完全沒有方向,申請了7所大學,7個不同的主修,從數學、企管、經濟學到遊戲製作都有。其中,只有UCSB選的是Computer Science。當時很幼稚的我,也只進了我的倒數第二選UCSB,連我最想去、也堅信沒問題的位於西雅圖的UW都沒進。

當初我會在其中一所學校申請Computer Science,只是覺得這個主修應該跟電腦有關(廢話!)。我連Google都沒用,或者是有稍微用用,但當時看著這個學科的介紹也有看沒有懂。只覺得這個主修聽起來不錯就報了。

我能夠坐在電腦前面不吃不喝玩遊戲或上網十幾個小時。Windows以前藍屏當機(感覺好像會有年輕讀者不知道這是什麼,附上Wikipedia:BSOD)之後,我會去控制面板裡面東摸摸西摸摸把它修好。又能久坐電腦前面、又會修電腦的我,應該在這個領域還算頗有優勢吧。

結果完全大錯特錯!但也促成了這個美麗的意外。從第一堂課開始就覺得好有趣,並喜歡上了這個領域。大學期間我慢慢開始學習五花八門的知識,還有學習怎麼用code來跟電腦溝通。

我以前還蠻喜歡寫code的。寫code和看YouTube、玩遊戲、看小說相比,我當然更喜歡後者,但如果硬要我選一個主修的話,那一定還是Computer Science。後來去Stanford我也依然選擇的是Computer Science。毫無懸念。

雖然我對很多事情都有興趣,但是我無法想像哪個主修會比Computer Science還有趣、多變。我覺得Computer Science就是解決問題的方法和邏輯,內容多到我永遠都學不完。對於我來說無時無刻不充滿著新鮮感。我就算不編程,我學到的東西也能運用到各行各業,還有生活的方方面面。比如,玩桌遊對我來說完全就是在跑演算法,做成本分析,並規劃最佳路徑。又比如寫書,對我來說就是在設計用戶體驗(UI/UX)。

寫code是Computer Science的一大環節。用自己寫的一行行code來解決一個問題,就像是我把一個有趣的拼圖一片片完整的拼出來。有的拼圖是老師給的,已經有標準拼法了。但是我更喜歡的是那些沒有框架的拼圖,我可以愛怎麼拼怎麼拼。同一張圖,我能選擇不同的拼法,效果和效率都會大不相同。而且拼的順序也有差。常常,先拼左邊和先拼右邊造成的結果是不一樣的。

怎麼整理它,讓它變得比較美,比較乾淨也是一門大學問。後來在大公司裡面,不管是我待過的Facebook、Amazon、Microsoft,大家都很看重隊友寫的code美不美,還會在考績的時候互相評論對方的code(給老闆看)。

最後花了好幾天甚至好幾個月終於把想要的東西拼出來的成就感,那真的是很爽,覺得自己真他媽的聰明。而且如果拼出來的東西還大受好評,那真是至高的享受。

「我」,拼出來的東西,很厲害,而且還幫助了很多人。

---

但從去年開始,我發現coding變得沒那麼好玩了。有點像是買了一盒拼圖回家,結果發現有輔助模式按鈕,我只要按一下它就會拼好了,而且拼得還比我快,比我好,也拼得比我美。體驗有點像是玩遊戲時開作弊模式。

我甚至連拼圖本身都不用碰,只要跟輔助模式說怎麼拼就好了。我跟它說我要拼一隻鳥,它就拼一隻鳥。我想拼個海盜船,它就拼個海盜船。一開始我從來不敢想像能拼個火箭,但是在它的幫助下,這也迅速從夢想變成了現實。

當然有時候拼得不合我意,但是通常只要跟它說哪裡拼錯了,很快就能解決。而且過程實在太快了,沒什麼大問題的話,我根本懶得看它具體是怎麼拼的。那只是浪費時間。

有幾個現象,讓我感覺用了這種新的輔助模式後,寫code變得沒那麼好玩了。

成就感的來源變了

以前的成就感來自「我想出來的」。現在則變成了「我很會跟輔助模式溝通」。

成果出來得太快了

很多時候感情是需要時間去培養的。而現在做一個project花的時間像是在交友軟體上聊天,我馬上就想滑下一個聊天對象了。

失去了解謎的樂趣

那種歷經千辛萬苦、翻山越嶺,終於到達目的地的感覺沒了。取而代之的是,直接坐纜車上山頂的體驗。

以前常常需要自己獨自思考很久,經過各種各樣的實驗和嘗試才終於把問題解出來。現在有了輔助模式之後,我就像在解大學裡面老師給的功課。我只要問問它,一般就會有標準答案。太簡單的遊戲不好玩

寫code從手工藝變成了外包管理

「我」從一個有追求的職人,變成了要盯著工人做事的工頭。那個感覺就是不一樣。而且工頭聽起來有點弱。

---

當然,有些人會說,這些都不是問題,我也可以不要用輔助模式,自己拼啊。

但周圍的人都已經在用新的方法拼圖了。我就算自己耐著性子拼出來什麼,那個感覺也不一樣了。

我自認敵不過輔助模式。以前需要兩個禮拜才能做出來的東西,現在靠輔助模式,10分鐘就能搞定,還比我兩個禮拜拼的東西好。

就像想要到達比較遠的目的地的話,有了火車和飛機之後,為什麼還要騎腳踏車?就算我選擇騎腳踏車,那也可能只是因為想拍個YouTube影片,顯示自己多與眾不同而已,跟以前那種純粹的享受是不一樣的。

那我能做什麼,來重拾這個樂趣呢?

我覺得有幾個可以嘗試的方法。

比如,提升「我」的參與度。先自己在紙上把所有的關鍵都想清楚。自己設計整個架構

或是把拼圖變難。以前可能只寫個小App,現在可以嘗試做更多不同的挑戰。假設以前是2000片的拼圖,而自己寫的一行行code會讓進度提升1。輔助模式讓進度一下子跳100-1000,所以變得無聊了。但是如果我們把拼圖升級到20萬片呢?那每一次使用輔助模式,就像是以前寫的一行code。

但最重要的還是接受樂趣變了。小時候很喜歡玩某個玩具,但是那個玩具退了流行。雖然還是會很懷念那種感覺,但是也不至於還想回去玩。就像遊戲的版本會更新一樣。

可能對我來說,或許這個問題本身就問錯了。

「自己寫code」這件事就是那個已經退了流行的玩具。

本週的輸出回顧

Blog 文章:部落格到底要不要開放評論區?)

兩邊的論點,以及為什麼我的部落格開放了評論區。

Blog 文章:我的三分鐘熱度:杯緣子

十年前,在還沒有泡泡瑪特和NFT的時代,我有一段時間很迷盲盒。那時候我碩士畢業跑去日本追夢,常常把微薄的薪水拿來抽各式各樣的盲盒。

各式各樣的盲盒裡面,我最喜歡的是當時在日本很紅的杯緣子。


「兔子週刊」每週日發刊。

如果你對於本期內容有什麼想法,可以直接回信給我,也可以到文章下面留言,或到留言板簽名。如果發現了什麼有趣的內容,也歡迎轉寄或分享給你的朋友。我們下週見~