# RCS Open Course

在 [what-is-republic-of-cs](https://republic-of-cs.gitbook.io/e/info/what-is-republic-of-cs "mention")中，筆者有簡短提到：

{% hint style="success" %}

#### RCS Open Course

* 由社群/讀書會參與者，在學習一項科目的途中，同時一起維護的知識地圖。\
  讓後進者能站在前人的立足點學習，也促進了讀書會參與者來重視每輪的學習成果。
  {% endhint %}

此文的目的，是希望透過更詳盡的介紹，來帶社群參與者了解如何參與、共同維護 RCS Open Course。

### What is an Open Course, Anyway?

<figure><img src="https://550114503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9kHdumiUo1ODZRtnI76%2Fuploads%2F8l9FQSU6zwNPoTKLfpK9%2Fimage.png?alt=media&#x26;token=edd7972c-7a02-493a-be73-95a083738fe4" alt=""><figcaption><p>網路上的 roadmap，很常會包山包海，卻缺乏深度與明確的結構</p></figcaption></figure>

隨著自學 Computer Science 變得熱門，以及將各種知識開源的風潮，諸如 [Roadmap.sh - Full Stack Developer](https://roadmap.sh/full-stack) 或 [The System Design Primer](https://github.com/donnemartin/system-design-primer) 之類的內容形式，都試著想將數以千計的知識內容整理且變得結構化。

{% hint style="danger" %}

#### 可是，根本沒人真的照 Roadmap.sh 學！

若你已經有些學習經驗，會發現這樣形式的 「知識全家桶」，終究還是離系統化的學問有段距離。

這類的資源，經常想一次容納多個學科，並且用 「過度簡化」 的形式來傳遞背後的知識；導致學習者不但很難真正參透各個單元背後的意義，也沒有好的作業、參考書能驗證自身能力。
{% endhint %}

### What Does 𝗥𝗲𝗣𝘂𝗯𝗹𝗶𝗰 𝗼𝗳 𝗖𝗦 Do Differently?

RePublic of CS 的目標，是希望能把自學、讀書會都變得與 「機構教育」 一樣夠明確且有效。

而方式就是，我們會透過 open source 專案合作的方式，來一起編排各個 CS 學科的 Open Course。

<figure><img src="https://550114503-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FV9kHdumiUo1ODZRtnI76%2Fuploads%2FBxnLNm4cPQwycRngbeBV%2Fimage.png?alt=media&#x26;token=3db593ab-afc0-48cf-8439-de1b3ace1fe8" alt=""><figcaption><p>RePublic of CS 的中長期計畫：透過社群協作，來補足各個軟體工程經典學科的學習需求</p></figcaption></figure>

而如何確保 RCS Open Course 能夠 「容易 follow」、「內容完整」、卻又不過度膨脹呢？我們希望採取以下限制來達成這個理想：

{% hint style="success" %}

#### Open Course 最多只對應到一個 「學科」

幾乎所有 <https://roadmap.sh/> 上的地圖，都想一次性的將電腦科學、後端工程、資訊安全...等領域的知識一次性收錄。

但這種過度膨脹的形式，在很大程度反而會成為學習的雜訊；我們很常會發現，去慢慢地讀完一本書、一篇論文，反而還是更有效的學習方法。

因此，RCS Open Course 在編排上會嚴格的不讓一個地圖涵蓋過多的範圍，也不讓單一個 Open Course 超過 200+ 小時的學習總長。
{% endhint %}

{% hint style="success" %}

#### 詳盡的 Learning Material, Practice & Lab

在一個 Open Course 的學習主題中，我們會包含以下要素

#### 1. Learning Material

* 每個主題，都會直接對應到需要看完的某本書、章節、或閱讀資源。

#### 2. Practices

* 針對 「實作型」 的 Open Course，課程的主體會包含許多同質性的實作練習。

#### 3. Lab

* 在每個學習主題的結尾，會有個必須要完成的 「作業」、「應用題」、或 「申論報告」。以此來驗證且放大學習效果。
  {% endhint %}

### How Can It Be Accomplished

對初學者、或興趣使然的學習者而言。想要學習的同時，又一方面兼顧編排給其他人看，看起來是極有困難度的一件事。

至於 「能成」 的自信，來自於兩個方面：

1. 筆者本身是個 「[筆記與知識整理的愛好者](https://app.heptabase.com/w/98f3311b812edc1184a454213ec35e583c543a3b35fb510d04dea723c9b6831c)」，讀完一本書、一篇文獻的過程中，會情不自禁的想將他整理且結構化。
2. 在以往經營 [讀書會](https://www.notion.so/be-studying-group/919a2f82e7604cb1bee1f8ee00e5a9e6?v=565b8be8718648879a3bff64405332c0) 、[業餘 mentoring](https://app.heptabase.com/w/2328f90adfc761a962dc548d448936314c1c5ba4fb6ed004a9eccbb6594d515e) 的活動中，筆者相信自己已經累積了足夠的 coaching、複製模型、和提供客觀教材的能力，使 RePublic of CS 的長期完整性能維持和 scale。
