關於「無痛入手 C++」的內容設計想法

更新於 發佈於 閱讀時間約 3 分鐘

這篇文章是關於「無痛入手 C++」這個系列,在內容設計上的想法。有任何建議都歡迎在留言提出~

這個系列會分成三個部分來進行: 基礎系列中級系列進階系列
(過程中可能會對寫過的內容做一些調整)

基礎系列

我希望讓完全沒有程式基礎的人,在學完基礎系列的課程以後,有能力寫出一些小遊戲,如: 貪吃蛇、踩地雷 (會用黑黑的終端機畫面印出來,雖然蠻醜的但已經算是有一定規模的程式了~)。

會這樣規劃是因為我認為對於沒有基礎的人來說,先學習少量、足夠用的語法來寫出有一定難度的程式,不僅可以花更多心力在訓練寫程式的邏輯 (這跟使用什麼程式語言無關),也有助於培養信心。

因此在基礎系列的課程設計上,會盡量排除:
1. 對上述目標沒有直接影響的部分。
2. 牽涉到硬體知識的部分。

像是資料型態的介紹會排除 int8_t、usigned、long 以及 overflow 的議題,pointer 和 memory allocation 也會留到中級系列。
而某些實用也容易使用的 container,如: string、std::array、vector 則會在基礎系列就涵蓋。

此外,部分承襲自 C 或是相對底層的部分,如: C-array、reinterpret_cast、void*,可能在三個系列中都不會提及。
會這樣規劃的原因是我認為那些部分是在學習底層的系統開發而不是通用的程式設計。更具體來說,單純只是學了那些語法是沒有意義的,還需要對底層的系統開發有一定程度的理解,並搭配實際的範例才知道怎麼使用。
而對於許多 C++ 的程式設計師來說,通常不會直接碰觸到那些部分 (不然應該會直接用 C 寫),因此我認為應該要著重在 C++ 較為現代及高階的部分。

中級系列

這個系列會著重在和電腦基本架構及記憶體有關的部分。

我認為學習這個部分需要大量的範例與習題的輔助,在熟悉基礎系列中常用的語法與程式邏輯後,有助於學習這類較為困難的部分。

此外,和基礎系列一樣,這個系列也希望讓讀者能擁有實際應用的能力,因此會加入一些時間複雜度與資料結構 (linked list、tree、graph) 的內容。我相信這樣的搭配會對於理解記憶體和熟悉 pointer 的操作很有幫助。

進階系列

這個系列才會介紹到 C++ 的主要核心: OOP、template、STL。

上述提到的三個主題都是圍繞在 C++ 的抽象化,有助於開發大型軟體。抽象化是建立在扎實的實作基礎上,相信在具備前面兩個系列的知識以後,這個系列應該會學得蠻順利的。

不過關於類別與 template 的設計,請容許我跳過一些複雜的主題,像是如何設計出具有彈性、安全且高效的函式庫,這個部分完全超出我的能力範圍......。

還有一些現代 C++ 的函式庫與用法,如多執行緒、coroutine、ranges & views...等等的太多了,應該都不會提到。

總之,「無痛入手 C++」會以基本概念為主,畢竟 C++ 實在是又深又廣,其他沒有涵蓋到的部分就請有興趣的讀者自行研究了~

avatar-img
3會員
14內容數
程式設計 & 電腦系統 & 系統軟體
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
鏟薯員的窩 的其他內容
這個系列是專門寫給 0 程式設計經驗的初學者的 C++ 教學, 無需架設環境,直接開始無痛入手 C++ ~
這個系列是專門寫給 0 程式設計經驗的初學者的 C++ 教學, 無需架設環境,直接開始無痛入手 C++ ~
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
先學習 HTML, CSS, JavaScript 基礎觀念, 再透過實作專案,慢慢熟悉不同的語法使用方式。
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
這是我第一次針對非特定作者,以編輯角度出發而寫的文章,所以每篇文章都會針對最普遍與最重要的概念提出說明與練習。我相信,這些文章一定無法照顧到所有創作者的需求。但如果只有某篇文章某句話能帶給你啟發或安慰,對我來說,那就值得了。
Thumbnail
本書大多數的內容都以 OO 的概念出發,詳列了許多設計的臭味道,也有大量的例子。個人雖然不會這樣寫程式,但仍是覺得受益良多,至少在 code review 時能更清楚知道該怎麼描述問題。不過,即便不是用 OO 的概念,有些章節還是可以帶來一些想法,用 OO 概念寫程式的人更不該錯過這本好書。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
文章講述了作者如何利用c++寫程式做貼圖,包括製作貼圖的構思過程、實際步驟和上傳貼圖的過程。這個故事不僅分享了作者的創作心路歷程,也提供了實際的操作步驟,讓讀者對於用c++做貼圖有更深入的瞭解。
Thumbnail
關於程式語言的學習,只要掌握住幾個基本特性要熟悉幾種程式語言也不困難,這三個基本特性就是…
Thumbnail
這篇文是我自己的學習筆記,整理過後覺得挺值得分享的,就決定直接PO一篇文。 這邊只會紀錄重點跟脈絡,還有一些個人心得。 如果想要有仔細的案例講解,可以直接到Hahow購買線上課程, 課程名稱是《讓圖不只是好看的-資訊設計思考力!》。
Thumbnail
介紹C++ 語法 資料型態,架構說明 程式語言為人類與電腦溝通的工具 程式設計流程: 定義問題 -> 問題分析 -> 撰寫演算法 ->程式撰寫 -> 程式執行及維護
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
先學習 HTML, CSS, JavaScript 基礎觀念, 再透過實作專案,慢慢熟悉不同的語法使用方式。
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
這是我第一次針對非特定作者,以編輯角度出發而寫的文章,所以每篇文章都會針對最普遍與最重要的概念提出說明與練習。我相信,這些文章一定無法照顧到所有創作者的需求。但如果只有某篇文章某句話能帶給你啟發或安慰,對我來說,那就值得了。
Thumbnail
本書大多數的內容都以 OO 的概念出發,詳列了許多設計的臭味道,也有大量的例子。個人雖然不會這樣寫程式,但仍是覺得受益良多,至少在 code review 時能更清楚知道該怎麼描述問題。不過,即便不是用 OO 的概念,有些章節還是可以帶來一些想法,用 OO 概念寫程式的人更不該錯過這本好書。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
文章講述了作者如何利用c++寫程式做貼圖,包括製作貼圖的構思過程、實際步驟和上傳貼圖的過程。這個故事不僅分享了作者的創作心路歷程,也提供了實際的操作步驟,讓讀者對於用c++做貼圖有更深入的瞭解。
Thumbnail
關於程式語言的學習,只要掌握住幾個基本特性要熟悉幾種程式語言也不困難,這三個基本特性就是…
Thumbnail
這篇文是我自己的學習筆記,整理過後覺得挺值得分享的,就決定直接PO一篇文。 這邊只會紀錄重點跟脈絡,還有一些個人心得。 如果想要有仔細的案例講解,可以直接到Hahow購買線上課程, 課程名稱是《讓圖不只是好看的-資訊設計思考力!》。
Thumbnail
介紹C++ 語法 資料型態,架構說明 程式語言為人類與電腦溝通的工具 程式設計流程: 定義問題 -> 問題分析 -> 撰寫演算法 ->程式撰寫 -> 程式執行及維護