精華區beta Programming 關於我們 聯絡資訊
※ 引述《gsj.bbs@bbs.nchu.edu.tw (國王的新衣)》之銘言: > ※ 引述《tinlans.bbs@whshs.cs.nccu.edu.tw (汀)》之銘言: > > 另外又因為其實 programming 領域也有很多 domain knowledge, > > 像是超脫於 language 外的 programming 技術如 design pattern 等, > > 再來去摸一些其它領域的 domain knowledge 呢? > 要設計程式當然要懂程式語言 > 就像上BBS Post 文要先懂打字一樣 > 這是起碼的要求,在這邊不算Domain Knowledge programming language 其實是 computer science 裡的 domain knowledge, 不過一般 programmer 只要學會使用就可以了, how to use programming language 的確不是 domain knowledge, 但是與特定 language 相關的 programming 技術卻是 domain knowledge, 譬如所謂的 template meta-programming, 超越語言的 programming 技術也是, 譬如 OOP、design pattern 等等。 正因為如此我強調的是先滿足基本要求:學會使用程式語言; 然後先精進自家的 domain knowledge:學會特定語言或泛用的 programming 技術。 > Design Pattern is shit,不建議你花時間在上面 > 大部份情況,沒有人非要它不可 design pattern 必須要寫過或維護過夠大程式的人才比較能體會它的重要性, 而且不是做完就丟了那種射後不理的情形, 還要做持續的去 maintain 它才算。 如果你說要給大程式一個定義, 大致上就是用 C 寫在完全沒有冗碼的情況下達 60 萬行以上, 用 C++ 寫在完全沒有冗碼的情況下達 25 萬行以上的程式, 這不是公定標準, 而是我經驗裡, 足以使絕大多數 programmer 體會到 design pattern 重要性的程式規模, 尤其當他們接觸到像是 OCP、CRP、LSP、DIP 這類概念的時候, 幾乎都會捨棄舊有的觀念投向 OOP 和 design pattern 的懷抱, 使用的語言也會逐漸轉向直接支援 OOP 的語言。 > 事實上在程式設計這個領域中,程式語言只佔很小的一部份 這種說法並不好, 像是在 OS 裡面, kernel 只佔很小的部分, 但是卻沒有它不行; 佔的比例小不代表它不重要。 > 如果你的思維老是停留在這個部份, > 基本上我會認為你的資質可能不適合作這一行 就我對軟體工程的瞭解, 其中有一部份是衍生自商業和管理方面的學問, 而另一部份則是衍生自 programming 技術, 少了 programming 技術相關的 domain knowledge, 學軟體工程跟純打嘴炮沒兩樣, 甚至學的人根本不知道自己學這個有什麼用。 把思維停留在 programming 技術上的確有好有壞, 對某些工作環境的人來說這不是壞事, 但絕對不會讓一個 programmer 變得不適合做這一行; 反倒是從來不曾花心思在 programming 技術上的人, 隨著時代的演進將會很快的被淘汰, 隨著 user 的需求增加, 程式只會越寫越大不會越寫越小, 軟體最花成本的地方不在於開發而在於後續的 maintain, programmer 總是寫出難以 maintain 的程式, 早晚會因為過度浪費成本而被驅逐。 這年頭會寫 driver 倒沒什麼稀奇, 跟 driver 接軌的 application 好不好用才是 user 在意的, 要是 application 功能很少或是表現很差, user 就會間接認為是硬體和 driver 做得爛, TV card 之類的產品就是很好的例子。 > > 現在很多人 C++ 只學到皮毛就說 C++ 沒什麼用, > > 感覺就像睡在價值一百萬的床上, > > 睡到滾到地上又怪這張床好爛的小朋友。 > > 還有一堆人明明沒有半個高階語言學得很好, > > 卻又在那邊說語言只是工具... > > 連工具都拿不穩的人沒有資格看不起工具, > 你怎麼知道別人的語言都學不好 > 語言沒有難到如此偉大的 > 你花太多時間在上面了 我花在 language 本體上的時間少之又少, 花在 programming 技術還有實作的時間才算多, 正因為這樣, 我對慣用的 language 已經熟悉到相當於母語的程度, 這並不是單純花時間去搞 language 本身就能辦到的。 正因為熟悉程度形同母語, 加上活到這麼大了也不可能都不跟其它 programmer 交流, 所以只要經過交談和實際看過對方寫的程式, 就能知道這個人語言學得好不好, 這跟一個初學中文的外國人跟你講中文, 你一聽就知道他是外國人一樣, 如果你涉獵的語言很廣, 甚至你還能聽得出他是哪一國人, 這一切都非常的理所當然, 所以我不清楚你質問的目的何在。 你倒不需要替這樣的人辯解, 因為你在國內路邊隨便抓幾個自稱是 programmer 的, 十個說「程式語言只是工具」的, 至少有七個是連一樣高階語言都沒學好的, 除非你是找特定社群的人來抽樣, 才有可能會出現例外。 -- Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net School: National Chung Cheng University Department: Computer Science and Information Engineering Researching: Porting GCC and Implementing VLIW instruction scheduler in GCC Homepage: https://it.muds.net/~uranus -- ╔═══╗ ┼────────────────────────╮ 狂狷 Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮ 年少 ┼╮ < IP:140.119.164.16 > ╰─╮ ╚╦═╦╝ From:218-171-137-69.dynamic.hinet.net ─╨─╨─ KGBBS 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩