學程式(一):我想寫程式,該怎麼開始

到了升大四的暑假,就會有一群人開始思考自己該升學還是找工作;也會有一群人開始思考,我是不是該換個工作,而其中一群人在想: 我是不是該來寫個程式? 這篇文章告訴你寫程式該怎麼入門,或怎麼放棄。

這是一個對寫程式有熱忱,但寫程式很菜,比較擅長嘴砲的肥宅寫的系列文章,請各位優質工程師不要鞭我。

在大部分的人眼裡,我就是在寫程式(縱使大家其實都不太清楚我到底在寫啥)。換句話說可能有點宅吧?

正因如此,最近很多人跑來問我怎麼寫程式:資管系問怎麼繼續進修、電機系問該不該學前端、非本科資優生問軟體是不是很好賺。但說實在我也不太擅長給這種未來方向的建議,倒是先想想為什麼要寫程式吧。

我為什麼要寫程式

我記得有天我翻到了某個人寫的批次檔,印象中那是個清隨身碟病毒的批次檔(對,很久以前了),我不小心用右鍵編輯打開發現我找到了作者資訊,然後我就把它改成自己的名字再打開一次,覺得程式變成我寫的了,很爽。這大概是我會寫程式的起源吧。

(批次檔寫出來長這樣。為了讓你有當年復古的感覺,圖片來自這裡,想看程式碼大概長怎樣,也可以點進去看看這篇文章。)

後來又看了下面很多其他語法,發現批次檔是個很好讀的東西,造樣造句就可以改成自己要的樣子了。但是原作者把該有的功能都寫完了,我要怎麼把它改得更好看?所以我就上網到處查,發現有 color 1a 這種指令,然後我就把批次檔裡面全部加上不同的 color,覺得自己很強。

仔細想想,我們現在打開什麼 Microsoft Word 都有視窗,為什麼用批次檔只能寫出這種醜醜東西?然後我就上 Yahoo 奇摩知識+ 查,發現 Msgbox "測試訊息" 可以寫出對話框。噢天啊,這也太強了吧!所以我就在我的專案資料夾裡面加了一個 success.vbsfailed.vbs,並在所有批次檔的最後面呼叫這兩個都只有寫一行的對話框。

當時我覺得 VBScript 跟批次檔就是寫程式的精髓了!所以我決定去書局找一本 VBScript 的書。誰知道為什麼,結果我帶了一本《Visual Basic 2008網路遊戲程式設計》回家。

雖然回去以後發現 Visual Basic(所謂的 VB.Net)跟 VBScript 根本是不一樣的語言啊,但靠著書附光碟的軟體裝起來後,發現我只要動手拉就可以把軟體的介面通通拉出來,越來越接近 Microsoft Word 的感覺了。只有介面還不夠,點兩下按鈕就可以寫按鈕的動作,當然要把程式邏輯都補起來啊!

......

最後我寫了一個有一排按鈕的程式,每個按鈕都會呼叫一個批次檔。

現在想想覺得很好笑,但這確實是我開始寫程式的原因。回頭看一看剛剛的故事,其實可以發現一些事情:

雖然我是從別人的程式碼(批次檔)開始改,這甚至連抄都比不上,但是我的目標很明確,我當下就是要把它視窗化,然後弄出一個關於對話框,裡面寫我的名字

而且當我不知道怎麼下手的時候,我會上網查問題。當年好像還不流行 Google,當年還在用 IE + Yahoo Toolbar 的樣子,不是上 Yahoo 亂查,就是去知識+發問,也因此一直嘗試跟吃土,慢慢學會怎麼下關鍵字。

如何寫程式

我學程式的過程中,大部分都是為了解決特定問題、達到特定目標才去學,所以沒有特別學過什麼程式,更沒有下禮拜要期中考了我要怎麼抄別人作業這個問題。也因此,學寫程式不是一個壓力,而是一個興趣。或許程式本來就不該當學科去唸吧?

接下來的文章會帶你看看該怎麼選自己的目標,進而選一個適合解決那個目標的語言;也會提到這年頭沒有知識+,該怎麼查資料。之後也會給一些其他大神的觀點,讓你看看其他人認為該怎麼好好寫程式。

我要學程式 目錄