蒼時弦也
蒼時弦也
資深軟體工程師
發表於

從入伍後讀的一些書

入伍之後一直擔心自己的技術會退步,所以其實有好幾個月的時間都很焦慮。 不過運氣不錯的是,所處的單位算是不錯的,現在的區隊長管理方式也讓我有不少時間可以充分利用。

這邊就簡單介紹一下到目前約八個月多所讀的書,大部分時間都是利用睡前跟午睡時間去讀的,一次大約十到二十分鐘,反而因為軍隊規律的生活變成每天讀書的習慣,意外讀了不少。

前期都是讀實體書比較多,因為當時還沒開放使用智慧型手機。 目前大多用手機讀,不過就被限制在資訊相關領域的,前期比較多是在設計領域的書。

其實有幾本書名也沒有印象了,所以就簡單介紹一下。

GUI Design

這本書是很早期看的書,厚厚的一本,裡面類似型錄一樣紀錄了不少介面設計的作品。 其實我覺得對設計師來說,多看作品的益處是很大的,而且也有助於靈感的尋找。

設計的心理學

這也是一本很有趣的書,從從心理學的角度去看設計。 其實這也跟最近常常在討論的 UX 有不少關係,像是門把的設計在人的習慣中會辨識為哪種操作方式。 有些設計讓你猜不出用途,是為了阻止一般人去使用之類的。


中間有讀了一些書,不過其實沒什麼印象。 一部分是簡單的小書(50 幾頁左右)後面基本上就是電子書的部分了!

Implementing Laravel

裡面介紹了一些 Laravel 在實作上使用的一些技巧與 Design Pattern 不過現在去回想除了一些設計模式還有印象外,對書的內容只剩下「原來可以用如此巧妙的方式寫 PHP 框架」的感嘆了⋯⋯

Microservices in Go

一本我買了幾年作者都還沒寫完的書,也不清楚什麼時候會寫完。 不過倒是給了想利用 Golang 開發 Microservice 的人不錯的參考範例,畢竟就我自己的經驗框架很多,但是實務上的分享卻不多呢!

順帶一提,架構設計上大概是這樣的:

  • application
    • serviceA
      • model
      • controller
    • serviceB
      • model
      • controller
    • view

不過後來看了 Heroku 的 Go-kit 之後,又有不同的見解。 這樣的設計主要是抽象化跟分離的設計,每個服務之間都封裝好如何操作,實際上呼叫只需要知道 API 就足夠了。

我覺得相較傳統的做法來說,架構上是需要非常獨立的設計。也認為這是之前一篇介紹架構文章中所敘述,其實 Microservice 實作並不容易的原因。

Learning C++ by Creating Games with UE4

在 Google Play Store 上面買的書,是想要看看其他人怎麼用 C++ 去開發 UE4 為基礎的遊戲。

順帶一提,用手機看書大推非 PDF 格式,現在 Android / iOS 的閱讀工具都有翻譯功能,讀原文很方便,唯獨 PDF 不能翻譯也不能自適應成適合螢幕大小的文字,挺困擾的。

前半部大多在講 C++ 基礎,從高中讀過螞蟻書之後就一直沒碰,算是當作一個複習。 後半部在實作簡易的 ARPG 系統,至少我在大學前期開發的方向其實沒有差太多(意外發現寫遊戲系統沒有想像中難)

不過 Unreal Engine 4 的原始碼還是得熟讀才能熟練運用 C++ 開發遊戲,大概會是之後的課題之一。

Ruby Perdormance Optimization

這本書開始就讀蠻久了,大概都是有 300 ~ 400 頁左右的原文書,相較前幾本頂多 100 ~ 200 頁就吃力很多。

不過即使不是針對 Ruby 也是一本很棒的書,裡面一直在傳授優化的概念。 基本上就是兩個方向,一個是記憶體的使用(跟 GC 有關)另一個是運算的方式,另外介紹像是 Profiler 等工具,算是讓我對使用 Profiler 比較有了解。

使用工具跟找貧頸的技巧在其他語言也很受用,另外就是要注意語言特性問題。

像是 Ruby 在字串操作上會因為複製記憶體增加 GC 負擔,如果沒有必要可以利用 ! 的方式避免複製等等。

Eloquent JavaScript

前面應該還有幾本小書被我漏掉,最近期的應該就是這本。 就 JavaScript 入門書來說我覺得算是很棒的一本書,介紹的非常有系統跟全面。

就是讓我覺得廢話有點多,看了好久介紹才讀到正文 XD

裡面常利用透過設計小遊戲的方式去介紹 JavaScript 讓人比較不會覺得乏味,順便也讓我吸收幾招以後可以設計遊戲用的技巧。

當初會讀是因為入門書的推薦,讀完之後真心覺得真的是非常適合入門的書。

What to Look for in a Code Review

一本介紹在做 Code Review 該注意的重點,基本上分成幾個章節去看幾大重點。 像是安全性、在多執行緒的使用、資料結構使用的正確性等等,除了看別人程式碼可以用到之外,用來反思自己在寫程式時是否有注意到,也是很不錯的。

TypeScript Deep Dive

因為以後可能會用到,所以讀了這本書算是 TypeScript 的入門系列。 雖然有幾個章節似乎還沒寫完,但是是免費電子書就無視了!

實際了解 TypeScript 之後,我馬上從原本的純 JavaScript (最早是 CoffeeScript)轉換到 TypeScript 上面,因為我覺得這樣的設計有助於我產出的程式碼品質改善。

尤其是我注意到一個點,那就是在 C/C++ 中常用的 header 設計,跟 TypeScript 的 Defined File 有異曲同工之妙,而且很重要的是他能讓開發者先「思考」API 的設計,再去實作內容。

某方面來講是改善程式碼品質的一個方法,很大的原因是因為這個讓我決定轉換跑道。

SDL Game Development

目前主要在讀的書,跟 Learning C++ by Creating Games with UE4 是同一家出版社。 似乎是這家出很多寫遊戲相關的書,所以常常買到。

不過重點不在這,這本比較面向有基礎的 C++ 遊戲開發者。裡面對 C++ 的介紹不像前一本那樣,但是帶入了不少基本的 Game Design Pattern (有一本書書名跟這類似,可以查一下)範例,而且這家出版社的書用字非常容易讀,大概三天左右我就讀完快 300 頁(也包含是留守期間,時間比較多一點)

想從零開始寫一個遊戲,讀這本書算是蠻不錯的選擇。

小結

已經很久沒有讀這麼多書了,前幾年東忙西忙的也都沒有好好看書。雖然帶實體書看的機會很少,但是電子書意外成為我的好夥伴。剩下還有三個月多,應該會繼續好好利用多讀一點。

退伍希望還可以有讀書的習慣,待會又要回營區了(傷心)