精華區beta Programming 關於我們 聯絡資訊
※ 引述《tinlans.bbs@whshs.cs.nccu.edu.tw (汀)》之銘言: : ※ 引述《meltice.bbs@ptt.cc (三億兩千萬大散戶)》之銘言: : > 我C++一直都沒學好 : > 大概我只寫寫小程式吧 : > 所以始終不知道design pattern及一些高深的技巧對我到底有什麼用 : > 學會這些能讓我更快速完成程式的功能嗎 : 用口語一點的方式以及工程師角度來說好了, : OO design patterns 有一個很棒的地方在於, : 如果你 team 裡的 members 都很熟它, : 就能快速應變許多人的腦殘行為 : 如上司腦殘亂出 idea, : 客戶腦殘想亂改需求, : 合作公司或合作部門腦殘亂寫東西就丟給你或是耍腦殘叫你改東改西, : 你進行「修改」、「測試」、「除錯」所花的時間會大大的縮短。 : 這是因為這些良好的 patterns 會讓你增加新東西時, : 能將你修改原有程式碼的量控制在最小限度(甚至完全不用修改), : 因此當你加入新東西或是變更(實作上是抽換)一種做法時, : 你需要測試的東西也就只有新的那一小塊(假設原本的程式已經經過良好的測試), : 如果出問題的話 debug 的時間也會大大縮減。 : > 感覺這些trivial的語法只會讓同事更難看懂程式碼 : > 讓自己陷入被compiler玩的境界吧 : > 我到現在還是以C的觀念在寫程式 : > 公司的同事主管似乎也沒人懂這些東西 : > 有寫十幾年VC++的同事也說不知道STL的vector這東西 : 這是沒辦法的事, : 除了教育上的問題外還有很多社會因素考量, : 講白一點就是守舊派人士居多的災害。 : > 例如 : > 我到現在還是不知道為什麼我用Windows Media SDK錄出來的wmv檔案 : > 最後總是少了幾秒鐘的聲音? : > 為什麼錄出來的wmv檔用GraphEdit始終無法play : > 總是出現"災難性失敗"的錯誤訊息 : > 我確定我所有的Audio/Video sample都有正確的餵進去 : > 我想C++的高深技巧應該無法解決我這個小小的問題吧 : 如果守舊派人士的災害從來都不存在(source code 都很先進), : 而且你講的這些東西都看得到 source code 的話, : 我想你花不到一個工作天就能用 C++ 的高深技巧找到原因了吧, : 即使它不是用 C++ 寫的 code 也是一樣。 之前有去國外的 news group comp.lang.c++.moderated 看了一下他們所討論的文章,才發現像template這類的東西似乎早就是很平常的東西 然後有些人會創造自己的一些寫法,或者一些新方法則會在上面討論。 然後再回來看看台灣coding的技術,真的不難想象為什麼我們的軟體總是差人一大節 當人家都在把像template這類東西當作很基礎在學的時候。 真的滿建議多讀一些原文書,偶爾去comp.lang.c++.moderated逛逛 也看看同是世界上的競爭對手,他們此時在學些什麼,他們的定位在那邊, 才能了解我們所需補強的在那邊。 說直一點,我覺得是短視 所造就的 不過如果想要順服於台灣這種短視的趨勢走,那以後何時被淘汰,真的是自己無法預防 因為短視的態度 使得造就以下四點 1. 學會這麼現成好用的tool,也只能用這tool 去寫 快速生產的Application 2. 越到後期學程式的人,越來越沒有機會去深刻體驗不同Programming Diagram 3. 以前只要有國中的數學"修養"(修養與知識不同),便可以學好程式 如今因為CS已經發展多年,所以拿著國中數學"修養"無法進入較新的程式觀念 4. 現在許多搞SA的人,他們本身的coding經驗還沈溺於1990年代,真的具備2000年 coding概念的人,"聽說" 很少。 關於1: 是因為看過太多同學都這樣子用,在需要開發從無到有的開發核心,反而會不知所措 關於2: 還好有很早前讀高職,在學QB時,很想要用它寫象棋寫3D什麼的,在程式碼多也發現 許多的問題,後來又有學C與組合語言,因為每次都試著想要從這些語言去作從無至有 寫程式動作,因此對這語言所給的底限便有深刻的體會。 後來能體驗一件事,每一個語言特性都是有它背後的意義與需求,因為有更大的需求 才會有著那些東西,如果沒有這樣子的需求,跟本就不可能會有這種機制出現。 就算正到現在,還是有許多人對C++提出更多進階的需求。我們現在看到的這些機制, 都是由需多世界級且前輩級的程式設計師,他們經過豐富的程式設計經驗而推理出 的好用機制。如果想要成為個好的程式設計師,像這種人家提出比較簡單好用的東西 就要先撿起來先會在說,這對我們才有優勢。而且Modern C++ Design是六年前出版的, 六年後的今日又比六年前還要更加的有智慧。 關於3: 以前在學C++的時候學習有障礙不知道問題出在那,那時連候捷的泛型程式設計,連看 都看不懂,那時候我是大一。等到後來開始看懂那一天,已經是大四的時了。 還好當時有去旁聽一些比較可以練數學素養的課程,不然至今可能連看都看不懂, 就更別"寫"了。 不過數學的"知識" 與數學的"素養"是完全不一樣的東西!! 下面這是一篇來自大陸的文章,下面便解釋出數學素養對一個程式設計師的重要性。 http://blog.csdn.net/ArenAK/archive/2006/10/31/1359026.aspx 關於4: 以前年輕時不明白,像台灣有這麼好的硬體環境,卻會一直無法成功跨足台灣軟體業 但在有了許多體驗時,剛好有幾次的機會碰過一些SA(可能我沒有機會接觸到那些 真正可以開發核心的SA),其底限都只能到"開發Application"的階段。 有看過 把 寫組合語言 精神的人 用在寫C++ 大概能看到把 C 語言精神 用到 C++ 的就已經算是不錯了 大概會善用class機制的人寫C++ 已經算是很少了。 那會Template咧? 似乎是消失了, 不過要注意的是,國外這是很普遍的 那些作SA的許多老人常常把用"沒必要學" 當作是"學不會"的藉口 去多看看台灣之外的人,他們是怎麼學程式設計的(像大陸或英語語言的論壇都可去) 便可以知道那些號稱前輩的人,講的是不是就是真的那一回事。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.68.135.33
march20:你是在說 programming paradigm 嗎? 71.136.238.36 12/01 13:17
march20:我是指 "programming diagram" 那邊 71.136.238.36 12/01 13:18
milochen:我打錯字了,是paradigm 203.68.135.33 12/01 16:09
milochen:謝謝march20的指正 感恩 203.68.135.33 12/01 16:12