==> 在 yuanchang.bbs@cszone.cc.ntu.edu.tw (小璋璋) 的文章中提到:
> 所以要學好C++,從入門到真正能不覺得
> 窒礙難行地寫出具有OO精神的程式,我估計這時間不會太短,
> 其中或許還參考過各家門派的書籍,與C++某些語法搏鬥
> 過不少地時間。換算下來,值得嗎? 如果肯思考這問題,
> 你就會認為,不是每個人都需要C++的,即使多數人喊出來
> 的看法是,C++才是貴族。
對新手來說, 學好傳統的結構化設計方法, 也是要花相當時間,
才能有所謂「真正能不覺得窒礙難行地寫出具有結構化精神的程式」的表現。
好的洞察力、好的書籍、好的良師益友, 能降低門檻、催化進步。
OO 亦如是。
固然「不是每個人都需要C++的」, 或者更進一步講「不是每個人都需要 OO 的」,
不過, OO 已侵略性地進佔越來越多的傳統領域,
所以, 能夠在你所在領域還沒變天之前就先領略(領略 ≠ 使用), 總是比較好的。
等到一夕變天再去緊張得抱佛腳, 是很悲哀的事;
尤其是到了你已不太能也不太想去適應新變局的年齡或人生階段。
> 至於有些人整天OOP喊不停,大家要注意到的是,他所從事
> 的工作,以程式設計者來說,我是完全把語言當成一種工具
> 看待。但是一個教育者會比較傾像學術氣息,至於實用
> 方面,則擺在較後面的層次。
There is no silver bullet.
所以學術人士致力於探勘探索各種潛在的可能解, 並致力於發掘出各解的極限。
學術界探討的東西, 往往要幾年過後才會在實務界看到大用。
> 又許多人腦海中的觀念是:學會「程式設計」,就可以寫出
> 心中想要的程式,在還沒有經驗的時候,我也是這樣
> 的想法。當你費盡九牛二虎之力才學會某一種語言,
> 最可悲的事情就是派不上用場,你不知道要寫些什麼,
> 而學習過程中那些狂熱的心態,只能淪為經驗值的獲取。
> 事實上不論一個人語言功力多強,並沒有辦法幫助他
> 獲取更好的IDEA來實作,不是嗎?
這倒是。
不過, 過於偏重「程式語言」層面的功力, 也是錯誤的。
沒有與之搭配的形而上思維, 等於是無頭蒼蠅亂飛亂竄。
九牛二虎的付出, 若是付出錯了方向, 也別想得到九牛二虎的經驗值。
最近受人之託, 要去工x院 N 減一組講幾天的 OO 引介課。
不過, 由於對象是與 mobile computing、MAC protocol、embedded system 工作
相關的工程師, 且多半是 EE 出身的, 就很煞費思量...
總不能舉一堆由 CS 及 information system 類比過去的東東做為切入角度吧
(如:資料結構、ADT、E-R model、結構化系統分析/設計/程式設計...)
如果聽眾是 CS 背景的話, 這種切入方向就很適合。
所以, 大概會偏重 UML 的 dynamic 層面來講, 少講些 static 的層面。
與經理談了一下, 大概把自己的預期心態調整了一下。
不必要求講完之後, 聽眾能真正領略多少(畢竟要這些在本職上不太用得到 OO 的人
且背景知識與訓練上根本不太 CS 的人一下子就領略得了 OO, 是項苛求);
只要有某些理念傳達過了, 讓他們在未來有適當情境時, 能夠有些 inspiration 作用,
能夠有些 guideline 作用, 就夠了。
畢竟, 你不能要求事事皆要有「立竿見影」的效果。
有「立竿見影」效果的東西, 往往也是短視近利的泡沫。
> 我認為真正做學問的態度,是在很自然的狀態下學習,
> 或許也為了一個小小的目標,而且不必刻意去背,
> 只要能再需要知識派上用場的時候,能夠快速索引到需要的資料即可。
有些東西是可以等到要用時才去「快速檢索」,
但有些東西可不是所謂的「等到要用時才去『快速檢索』」即可成事;
否則一些 open book 的考試, 怎麼反而更讓準備考試的人心驚膽跳?
有些東西, 重點是「心法的養成」。
--
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
≡ 何陋居 ≡ 雋永難忘的事總落在願聽任其發生的人身上。
Jeffrey A. Kottler, 《旅行,重新打造自己》
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
--
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>