《The Nature of Code閱讀心得筆記——使用Python實作》開始發表

更新 發佈閱讀 6 分鐘
因應原書於2024年改版後授權範圍改變,已改版為《The Nature of Code閱讀心得與Python實作》。

俗話說「萬事起頭難」還真是一點也沒錯,從開始動筆寫《The Nature of Code閱讀心得筆記——使用Python實作》,到寫完頭一章,再到把文章放上網站開始發表,總共隔了快三個月的時間。之所以隔了這麼長的時間,一方面是因為不是每天都在做這件事,另一方面則是因為有很多東西需要先規劃、處理好,否則等寫了一段時間開始發表後要再修改,那將會事倍功半,而且容易出現前後不一致的混亂狀況。

先來談談寫作用的軟體環境。

在開始寫這份閱讀心得筆記之前,就已經不再使用Microsoft Word,而改用VS Code搭配markdown來寫文章。VS Code也支援TeX,所以即使有數學式子,顯示上也不成問題。

比起Word,markdown雖然排版功能沒那麼豐富,但寫起東西來,反而順暢很多,尤其是數學式子,直接打字就可以,而且馬上看得到呈現出來的效果,不需分神用滑鼠點來點去,找個老半天才找到要的符號。事實上,Word現在也支援TeX,不過不怎麼好用,應該也沒幾個用Word的人會去用,畢竟TeX的門檻還是比Word高。人是很懶的,寧可使用效率差但熟悉的工具,也不想費神學可以提升效率的新工具。

另一個使用markdown的好處是,markdown的檔案就是普通的文字檔,幾乎不會有毀損的問題,即便出現毀損的狀況,也比較容易救回沒損壞的部分。用過Word的人,尤其是用過比較早期版本的人,應該都有檔案毀損,完全一籌莫展,只能搥胸頓足的慘痛經驗。

至於在程式開發環境方面,使用的IDE是Spyder;原書使用的程式語言是Processing,現改用Python來實作。目前使用的Python版本以及用到的package如下:

Python 3.10.9
Matplotlib 3.7.1
Pygame 2.3.0
Noise 1.2.2
NumPy 1.23.5

其中製作動畫是選用Pygame這個package。本來一開始是想用turtle,但實際測試了一下,效果實在比不上Pygame,所以就考慮著要用Pygame。只是,Pygame當時已經很久沒更新了,這點頗讓人在意的,畢竟一個不再更新的package,有可能在Python更新至某個版本之後就沒法相容,這可就大大的不好玩了。所幸,正在猶豫的時候,Pygame又開始更新了。既然又開始更新了,那原先的擔心也就可以放下了,最後決定用Pygame來製作動畫。

在寫程式時,變數名稱的寫法是個傷腦筋的問題,原本想使用跟原書一樣的名稱,以便有疑問時可以方便對照查閱。但是,畢竟Processing和Python在變數名稱的格式上,採用的是不同的慣例寫法。所以,就只能盡量維持使用與原著相同的變數名稱,但主要還是會遵循Python的慣例寫法。

前面提到的那些事情都搞定之後,就是努力的讀、奮力的寫了。

寫完頭一章之後,覺得這樣子的工作方式是可行的,後續應該也不至於會有太大的變動,接下來就該來看看要怎麼發表了。

依照原先的想法,《The Nature of Code閱讀心得筆記——使用Python實作》是要放在「方格子」,只是啊只是,就那麼湊巧,這時候「方格子」推出了「廣告分潤計畫」。

這實在是很傷腦筋!《The Nature of Code》這本書採用的授權方式是CC BY-NC授權,也就是僅能非商業性使用。雖然在寫閱讀心得筆記的時候,並不是直接翻譯原書的內容,而且所有的圖、程式也都是重新畫、重新寫,但畢竟還是根據原書的內容所寫的,如果放在已啟用廣告分潤功能的方格子上,那這樣有沒有違反授權?

這問題還真是麻煩,仔仔細細的讀了CC授權的資料,也在網路上讀了很多著作權方面的資料,還看了些法院的判例。在被一堆法律名詞搞得昏頭昏腦的幾天過後,最終得到的結論是:一切都要由初一十五不一樣,天威難測的法院決定。

既然沒法肯定絕對沒有違反授權,但又想啟用廣告分潤功能,看來就只能把文章放到其他沒有商業行為的平台了。但要放在哪個平台呢?研究了老半天,最後決定放在Google的Blogger上。

Blogger之所以雀屏中選,除了免費以及沒有啟用Google AdSense就不會有廣告之外,最重要的是可以藉由加入HTML/JavaScript程式碼來建立小工具,以擴增像TeX、程式碼顯示等功能。這還真是失之東隅,收之桑榆,把文章改放到Blogger之後,原本還因為方格子沒有TeX功能,而讓人傷腦筋的數學式子顯示問題,這下再也不用傷腦筋了。

往後,《The Nature of Code閱讀心得筆記——使用Python實作》完整的文章會放在Blogger,而在方格子放的,會是每章簡短的簡介,以及依章節名稱設定的連結。原則上,每寫完一節就發表,免得新內容出現的時間間隔過長。另外,有些屬於自己原創,不會有授權疑慮的內容,也會擷取出來張貼在方格子上。

《The Nature of Code閱讀心得筆記——使用Python實作》

連結:方格子、Blogger

留言
avatar-img
ysf的沙龍
21會員
166內容數
寫點東西自娛娛人
ysf的沙龍的其他內容
2025/04/14
花了些時間,靜下心來,仔仔細細地研究了一番,總算把Python呼叫函數時引數的傳遞方式給徹底搞清楚了。
2025/04/14
花了些時間,靜下心來,仔仔細細地研究了一番,總算把Python呼叫函數時引數的傳遞方式給徹底搞清楚了。
2024/05/08
呼!折騰了好久,終於徹底搞清楚pygame的各個blend mode所用的計算式,到底是長啥樣子了。
2024/05/08
呼!折騰了好久,終於徹底搞清楚pygame的各個blend mode所用的計算式,到底是長啥樣子了。
2023/12/20
在寫《The Nature of Code閱讀心得筆記——使用Python實作》的[第四章]4.3節時,原書提到,在使用Java的ArrayList時,如果用迴圈一面走訪一面又移除其中的元素,那會有難以察覺的問題存在。寫個小程式測試的結果發現,Python的list也會有一樣的問題。
Thumbnail
2023/12/20
在寫《The Nature of Code閱讀心得筆記——使用Python實作》的[第四章]4.3節時,原書提到,在使用Java的ArrayList時,如果用迴圈一面走訪一面又移除其中的元素,那會有難以察覺的問題存在。寫個小程式測試的結果發現,Python的list也會有一樣的問題。
Thumbnail
看更多
你可能也想看
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
俗話說「萬事起頭難」還真是一點也沒錯,從開始動筆寫《The Nature of Code閱讀心得筆記——使用Python實作》,到寫完頭一章,再到把文章放上網站開始發表,總共隔了快三個月的時間。
Thumbnail
俗話說「萬事起頭難」還真是一點也沒錯,從開始動筆寫《The Nature of Code閱讀心得筆記——使用Python實作》,到寫完頭一章,再到把文章放上網站開始發表,總共隔了快三個月的時間。
Thumbnail
寫程式是一件讓人感到害怕的一件事,但是寫程式真的對職場幫助很大,不管是邏輯思考或是資料處理,都讓我跟不會寫程式的人高度不一樣......
Thumbnail
寫程式是一件讓人感到害怕的一件事,但是寫程式真的對職場幫助很大,不管是邏輯思考或是資料處理,都讓我跟不會寫程式的人高度不一樣......
Thumbnail
隨著科技日新月異, Python也是必須要碰到的程式碼之一, 但...Python寫法真的好精簡啊Σヽ(゚Д ゚; )ノ
Thumbnail
隨著科技日新月異, Python也是必須要碰到的程式碼之一, 但...Python寫法真的好精簡啊Σヽ(゚Д ゚; )ノ
Thumbnail
呼!寫文章真是比寫程式還要燒腦、燒時間。一開始是沒想到要寫這「隨筆」的,是有天程式寫著寫著,腦海中就冒出這麼個想法來,要把跟Python交往的過程寫下來。
Thumbnail
呼!寫文章真是比寫程式還要燒腦、燒時間。一開始是沒想到要寫這「隨筆」的,是有天程式寫著寫著,腦海中就冒出這麼個想法來,要把跟Python交往的過程寫下來。
Thumbnail
剛開始學一個新的語言,第一個面臨的問題就是,需要先學習架設程式語言的環境。為了避免架設環境而降低學習的熱情,我們可以先使用 Repl.it 協助我們先練習Python 的基本語法。
Thumbnail
剛開始學一個新的語言,第一個面臨的問題就是,需要先學習架設程式語言的環境。為了避免架設環境而降低學習的熱情,我們可以先使用 Repl.it 協助我們先練習Python 的基本語法。
Thumbnail
學程式最怕的,就是抱著書猛啃,把書背得滾瓜爛熟,真正要寫的時候,反而一行都寫不出來。
Thumbnail
學程式最怕的,就是抱著書猛啃,把書背得滾瓜爛熟,真正要寫的時候,反而一行都寫不出來。
Thumbnail
很多文章都說未來是人工智慧的時代,程式語言是必備能力,靠著一時腦熱蒐集了許多資訊,我想說學習不用很厲害才開始,只要有興趣就開始吧,就算用不到也沒關係!
Thumbnail
很多文章都說未來是人工智慧的時代,程式語言是必備能力,靠著一時腦熱蒐集了許多資訊,我想說學習不用很厲害才開始,只要有興趣就開始吧,就算用不到也沒關係!
Thumbnail
常見入門款Python、統計分析用R、轉職培訓JAVA、C#、IOS用Swift、前端萬用JavaScript、學校基礎C語言、進階C++、甚至是新潮的語言go,程式語言那麼多種到底該從哪個入門好?難道從Scratch開始?
Thumbnail
常見入門款Python、統計分析用R、轉職培訓JAVA、C#、IOS用Swift、前端萬用JavaScript、學校基礎C語言、進階C++、甚至是新潮的語言go,程式語言那麼多種到底該從哪個入門好?難道從Scratch開始?
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News