Re: [問卦] C++可以啟發孩子的程式天份嗎?

作者: bachelorwhc (單身老王)   2021-12-26 00:37:33
※ 引述《Superxixai (洪粉吱已)》之銘言:
: 小弟小時候第一個接觸的語言就是C++。
: 雖然過了很久很久,
: 但是在即將邁入2022的時刻,
: 教9年級左右的孩子,
: C++是不是依舊能夠啟發他們的程式天份?
: 有沒有相關的八卦?
那要看你怎麼定義程式天份
如果是講演算法跟資料結構 用C或Python下去操比較快
如果是講計算機結構 一樣也是用C跟OS下去操
國中時 C++是我第一門接觸的語言
那個時候要做遊戲的難度不低
C++可以說是最低門檻 自己看書學語法是沒問題
但是沒人帶很難知道要怎麼開發出軟體還有連結library的觀念
最多就是寫一些console自娛自樂
也曾經轉而寫PHP跟SQL做網站跟操作資料庫 (當然怎麼設計DB的觀念也是近乎沒有)
後來在GameMaker上用GameMaker的腳本語言寫遊戲
才漸漸真正有"寫的東西有用"的實感
新手買語言書自己K 只是習慣程式語言跟熟定義而已
很容易在"學這個到底要怎麼做出真正能用的程式"的疑問中迷茫
坊間有不少目的導向 例如以製作遊戲、網站為前提開發的書籍
是可以跳過純語言的枯燥階段 但新手的瓶頸是在於不知道為何要這樣寫
最後很多問題還是回到基本功
其中又以C++跟C為甚 很難讓你跳過基本功
C的基礎是pointer 如果要開發程式 大部分的API 甚至OS提供的library都跳不過
C++雖然用物件導向 還有換個名字的pointer: reference
但是STL給新手的陷阱更多
const char* str = obj.getName().c_str();
為什麼之後引用str會crash? 這個問題可能有些菜鳥工程師都會犯
for(auto it = v.begin(); it != v.end(); ++it) {
v.erase(it);
}
新手會問 為什麼我按照書上寫的呼叫erase 編譯也能過 為何還會crash?
語言本身也有毛
struct A {
A(int a, int b) : b_(b), a_(b_ + a + 1) {
}
int a_;
int b_;
};
為何A(3, 5).a_不是9?
所以建議
要嘛old fasion寫C
要嘛寫go或python

Links booklink

Contact Us: admin [ a t ] ucptt.com