關於「無痛入手 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
留言分享你的想法!
avatar-img
鏟薯員的窩
5會員
14內容數
程式設計 & 電腦系統 & 系統軟體
鏟薯員的窩的其他內容
2024/05/05
C 語言的函式庫定義了許多好用的函式,在寫 C++ 的時候可以拿來用。這是因為 C++ 當初在設計的時候,就有刻意把 C 涵蓋進來。 基本用法 首先要導入 C 語言的標準函式庫: #include <cstdlib> 以 c 作為開頭表示它是 C 語言的函式庫,只是被我們拿來 C++ 的程式
Thumbnail
2024/05/05
C 語言的函式庫定義了許多好用的函式,在寫 C++ 的時候可以拿來用。這是因為 C++ 當初在設計的時候,就有刻意把 C 涵蓋進來。 基本用法 首先要導入 C 語言的標準函式庫: #include <cstdlib> 以 c 作為開頭表示它是 C 語言的函式庫,只是被我們拿來 C++ 的程式
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
當你邊吃粽子邊看龍舟競賽直播的時候,可能會順道悼念一下2300多年前投江的屈原。但你知道端午節及其活動原先都與屈原毫無關係嗎?這是怎麼回事呢? 本文深入探討端午節設立初衷、粽子、龍舟競渡與屈原自沉四者。看完這篇文章,你就會對端午、粽子、龍舟和屈原的四角關係有新的認識喔。那就讓我們一起解開謎團吧!
Thumbnail
當你邊吃粽子邊看龍舟競賽直播的時候,可能會順道悼念一下2300多年前投江的屈原。但你知道端午節及其活動原先都與屈原毫無關係嗎?這是怎麼回事呢? 本文深入探討端午節設立初衷、粽子、龍舟競渡與屈原自沉四者。看完這篇文章,你就會對端午、粽子、龍舟和屈原的四角關係有新的認識喔。那就讓我們一起解開謎團吧!
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
本書大多數的內容都以 OO 的概念出發,詳列了許多設計的臭味道,也有大量的例子。個人雖然不會這樣寫程式,但仍是覺得受益良多,至少在 code review 時能更清楚知道該怎麼描述問題。不過,即便不是用 OO 的概念,有些章節還是可以帶來一些想法,用 OO 概念寫程式的人更不該錯過這本好書。
Thumbnail
本書大多數的內容都以 OO 的概念出發,詳列了許多設計的臭味道,也有大量的例子。個人雖然不會這樣寫程式,但仍是覺得受益良多,至少在 code review 時能更清楚知道該怎麼描述問題。不過,即便不是用 OO 的概念,有些章節還是可以帶來一些想法,用 OO 概念寫程式的人更不該錯過這本好書。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
這個系列是專門寫給 0 程式設計經驗的初學者的 C++ 教學, 無需架設環境,直接開始無痛入手 C++ ~
Thumbnail
這個系列是專門寫給 0 程式設計經驗的初學者的 C++ 教學, 無需架設環境,直接開始無痛入手 C++ ~
Thumbnail
文章講述了作者如何利用c++寫程式做貼圖,包括製作貼圖的構思過程、實際步驟和上傳貼圖的過程。這個故事不僅分享了作者的創作心路歷程,也提供了實際的操作步驟,讓讀者對於用c++做貼圖有更深入的瞭解。
Thumbnail
文章講述了作者如何利用c++寫程式做貼圖,包括製作貼圖的構思過程、實際步驟和上傳貼圖的過程。這個故事不僅分享了作者的創作心路歷程,也提供了實際的操作步驟,讓讀者對於用c++做貼圖有更深入的瞭解。
Thumbnail
關於程式語言的學習,只要掌握住幾個基本特性要熟悉幾種程式語言也不困難,這三個基本特性就是…
Thumbnail
關於程式語言的學習,只要掌握住幾個基本特性要熟悉幾種程式語言也不困難,這三個基本特性就是…
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News