快轉到主要內容

論我為什麼會開始學寫程式

人文藝術 隨筆 Memoir
🗓️ 民國111年 壬寅年
✍ 切換正體/簡體字
目錄

先聽首歌吧:

前言
#

學寫程式似乎能找到工作,但目前還沒有。因為我是非本科的英語系學生。從國中學寫程式到現在,我一直沒有很好的數學基礎,也沒有刷過專門的題目,關於演算法更是一竅不通。寫程式的目的是用在私人專案,純純的工具性質。因此,從這幾點來看,在電腦科學這方面我比較像是個愛好者,不是什麼很會寫程式的超級駭客,但是對科技名詞都「略懂」。以下從幾個面向來探討這些東西如何形塑我對電腦科學這門專業的熱愛。

一、Minecraft模組使人擁有動力 二、艦隊Collection增進網頁知識 三、Android手機促進研究Linux

一、Minecraft模組使人擁有動力
#

Minecraft最有名的玩法莫過於模組了,安裝Java撰寫的模組後想把方塊遊戲變成槍戰遊戲都有可能;在相對弱勢的移動端平台上,Minecraft的模組2014年是用JavaScript寫的,所以從這裡開始了程式入門之路。手機寫JS這種小腳本不是很困難,從一開始複製貼上別人的程式碼,到後來自行寫出獨立模組經歷半年時間,學習了網頁元素以外的JavaScript程式知識。這樣的學習模式定型下來,其實不是很好的範例,因為只是寫寫寫,是不知所其然的。演算法更是常常拼貼別人的,實在不能指望一個根號都學不通的人自行撰寫向量投射物公式。到最近2020年才開始用一些正式的程式開發流程去規範撰寫程式碼的格式,使得模組專案品質看起來較好。綜觀下來,現在我的模組風格偏向美術方面(建模)較強,不管我用Java、Python還是PHP,程式方面就是讓其「動起來」的背後骨幹而已。

(一個龍捲風小模組)

二、艦隊Collection增進網頁知識
#

艦隊Collection的VPN連線就是讓人了解到這個網路協議的用處,在調查被貓的網路問題時了解到封包的概念。雖然我沒研究艦隊Collection的程式碼過,但是Tobi示範了如何如何拆包程式碼,從而幫助玩家快速在活動破解解謎機制。關於網路通訊的概念,在閱讀鳥哥的網際網路通訊七層協定後會有更深入理解,輔助程式設定也知道何謂監聽port。在後來的KCCacheProxy程式更知道什麼叫做代理伺服器,而且還能用來繞過403禁止存取的錯誤。憑著一時衝動跟英語圈玩家合作,翻譯艦隊Collection中文化還大大精進了使用Git、Photoshop的技巧。這樣看來,我沒有實際為艦隊Collection寫過什麼程式,但是網際網路的概念對於日後架設伺服器很有幫助。

雖然只是 KCCacheProxy教學,不過玩魔改的人應該會覺得有幫助。

三、Android手機促進研究Linux
#

曾經我也是iPhone的fanboy,拿Android的時候朝思暮想。實際用過之後,Gah,限制東限制西的好難用,幻想直接破滅。打從第一支Android手機用一鍵Root以來(這種靠漏洞的root方法蠻蠢的),Android系統研究就成了長久以來的功課。雖是這樣,APP開發也是最近才開始,大部分時間都是在「玩機」: 調整kernel讓手機不要那麼熱;刷ROM體驗不同系統;安裝Magisk和Xposed自訂系統外觀+破解APP。手機換了五支有餘,每支得來的手機一定被我Root過,破保我不在意。也因為會動到系統,所以開始接觸Linux作業系統,嘗試在電腦上安裝各種發行版並當作一陣子的主力,最近的研究成果則是在手機上用模擬器跑Linux,或是乾脆把手機刷成Ubuntu touch這種純Linux系統。總結來說,Android和Linux透明的機制,使我對作業系統這門學科研究的更透徹,也開始反思為何要被Windows的習慣綑綁住。

Android手機執行Linux程式

那麼接下來呢?
#

承上,我操作軟體的時間跟寫程式的時間是一半一半的,我可能會說我很會用電腦,但不會說很會寫程式。 如果要以正式的職位為目標,擺脫「懂哥」(什麼都懂一點的科普人士)的不專精狀態,我覺得路線圖應該是這樣,不一定是遞進關係,可以是並行。

  1. 先寫就對了: 目前階段就是會寫了,但屬於業餘程度。如果要維持學習熱忱和成就感,做出比遊戲模組更正式的專案成果出來。

  2. 電腦科學有基本的學科,參考相關大學科系的科目表,關於資料結構的概念和相關數學,這二點遲早要補齊。

  3. 學習標準化的開發工作流程。

我一直以為,運用所學的成就感是很重要的,業餘研究小專案可以多學很多概念。然後把操作過持記錄下來寫在這個部落格,也可以時常鍛鍊文筆。

就算最後失敗了也沒關係,我還繼續做本行當老師(茶)。文首的歌曲你也聽到了,外面的世界很精彩,外面的世界很無奈。

相關文章

以前Ivon的Minecraft翻譯影片,我的D槽~舊電腦裡面的回憶影片
人文藝術 隨筆 Memoir Minecraft Parody
那些悲傷的小說故事
人文藝術 隨筆
網際網路會降低表達能力?
人文藝術 隨筆

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。