Exercism - 充滿測試驅動開發風格的程式設計練習網

在學完程式的語法後,若能搭配練習題或是小型專案,能使我們對自己所學的程式更加了解。不過,有時候手上剛好沒有可以拿來練功的專案;這時,透過一系列設計過的習題,也可以達到類似的效果。已經有一些線上網站做到這種性質的服務,像是 LeetCode 或是 HackerRank;不過,我們在這裡要介紹 Exercism 這個網站。和上述網站不同的是,Exercism 的練習題是下載後在本地端做,而不是透過練上編輯器完成。雖然要自行建置環境有點麻煩,但是,試著自行建置開發環境,也是練習的一環,這種方式,也較接近真實的情境。 Exercism 號稱有 30 種語言的練習題,雖然沒有去細數,看了一下,的確非常豐富。許多主流的程式語言都有相關的練習題可做,而且,也包括像是 Lisp 或是 Erlang...
「點我閱讀更多」

Exercises for Programmers 讀後感

在學習某個程式語言的過程中,第一步總是先熟悉其語法,然後慢慢擴展到其他的部分。在這個過程中,如果能夠搭配適當的小型練習題,對於學習該語言會有相當的幫助。然而,不同語言的流行度各自相異,不一定都會有適當的教材可用。而本書的出現,適時地填補了語法和實作間的空缺。 在學習到第二個,甚至第三個程式語言時,會發現到,雖然程式語言的語法和模式各有不同,但是觀念上是相通的。大部分的程式語言,都有著類似的觀念,像是變數形態、操作子、判斷分支、迴圈、資料結構、輸入/輸出等,雖然在語法上各有不同,但其實,骨子裡都是在這些觀念上打轉。當然,各個程式語言還是有其特殊的部分,是其他程式語言沒有的,不過,很少會有某個問題,只能用某一個特定的程式語言的某個語法才能解決;我們在轉換程式語言時,會自然地用其他的方法去...
「點我閱讀更多」

.NET on GNU/Linux

在從前,要在 GNU/Linux 下寫 .NET 程式,會使用 Mono 平台。然而,使用 Mono 平台,程式設計師要和大大小小的不相容奮戰,有時候會想乾脆去寫 Java 好了。不過,隨著 .Net 平台開始支援非 Windows 的作業系統,以及 Microsoft 開始協助 Mono 專案,上述的情形應該會逐漸改觀;對於喜歡 C# 的朋友來說,應該也是樂見其成。 註:目前 GNU/Linux 平台上的 .NET 開發環境,已加強了對數個主流發行版的原生環境支援,本文使用 Docker 的方法,僅供參考。 目前 Microsoft 對 .NET 在 GNU/Linux 上的支援有以下數項: .NET Core:終端應用程式 ASP.NET Core:網頁應用程式 ...
「點我閱讀更多」

21 世紀 C 語言讀後感

我要先提醒這本書的準讀者,這不定一本典型的 C 語言教科書。例如:在這本書中,作者會教你把常用的標頭檔都集中寫在某個檔案中,即使程式因此多加了幾千行,編譯時間也花不到幾秒;另外,本書作者每次在編譯程式時,都會加上 -g 參數,其實程式也沒增加幾 KB,但是卻多了許多除錯用的資訊。另外,本書中約有三分之一的篇幅是在討論 C 語言的語法以外的內容,主要是介紹 C 語言的生態圈,這些內容在典型的教科書中相對少見。 本書的作者 Ben Klemens 主修的是經濟學和社會科學,所以,對於程式的思考方式和資訊出身的程式設計師有所不同,讀者不用對這本書的內容照單全收,但這本書的確有可參考之處。 本書的前言介紹了一些 C 語言的背景知識,以及作者對於本書的一些想法,可以稍微看一下。之後,本書的正...
「點我閱讀更多」

Why not Arch Linux?

I initiated this post here in response to a post on a Linux forum (in Chinese) You may also check my original reply (in Chinese). This article is all about personal opinion and choice. No flame war please. In his original post, he stated that he recently switched to Arch Linux and enjoyed the process of installing the system from the minima...
「點我閱讀更多」