[結論1]不能賣os, 也要學寫os: 從程式範例教軟體工程

看板Programming作者 (ggg)時間18年前 (2007/07/03 18:51), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
感謝很多網友的回覆指點. 關於 trace code 是否有助於學習軟工, 大部份是肯定的. 大部份人強調 基本功 ========================================================================= ※ 引述《ggg12345 (ggg)》之銘言: : 標題: [請益]不能賣OS,也要學寫OS打下基礎:從程式實作教軟體工程 : 時間: Mon Jun 11 11:31:08 2007 : 似乎軟體工程搞不好, 感覺是教 OS 這個課的人的責任 ? : ======================================================================= : 推 abcdefghi:人家是強調>>美國的資訊教育「很重視練基本功」<< : → abcdefghi:不是只有OS. : 推 final01:寫os也不見的得變多強~多充實比較重要 : 推 lg31cm:事實上寫過OS才對OS有深刻的印象與了解 不然一堆名詞解釋上完每個人也忘的差不多了 : ggg12345:程式實作那麼多可應用, 幹嘛特舉 OS ? 還 ggg12345:教軟體工程冽?OS有driver, 軟工的不冒煙? : 推 cyu021:事實上寫過OS才對OS有深刻的印象與了解 : 推 leicheong:事實上裝過一次LFS才對Linux有深刻的 : → leicheong:印象與了解, 也是同一道理. :P : → ggg12345:很多人不認同裝個軟體能學到軟體工程耶 ! : → lg31cm:很多人軟體工程都碼是掛在嘴上 : → lg31cm:軟體工程不從實作出發,只要畫畫圖就好? : → lg31cm:沒看過別人怎麼寫OS怎知道模組該如何劃分? : → lg31cm:也難怪碰到有人CS畢業不知道mutex有API可用 : → lg31cm:還自己硬幹旗標的笑話 ====================================================================== ※ 引述《ephesians (ephesians)》之銘言: : ※ 引述《ggg12345 (ggg)》之銘言: : : 似乎軟體工程搞不好, 感覺是教 OS 這個課的人的責任 ? : : 劉建民:「軟體業不是靠天才建立的,在大學就應該打下軟體的基本功,而不是只 : : 在寫網頁。」臺灣近幾年廣設大學,培養許多資訊人才,為何沒有促成軟體產業發 : : 寫網頁與OS比較,誰高誰低? : : 為什麼寫網頁不算是寫軟體? 是因為大部份在於文件編輯嗎? : 或者是因為對寫網頁來說,軟體的模組劃分已經被大大簡化,根本學不到精髓? : : 看完這篇,不很清楚它在講什麼,到底是台灣人的基礎軟體設計能力不夠,還是 : 台灣人只專注於教導軟體設計基礎,忽略了高層次的創造力? : : 也許是我誤解了. 要求高低層次的融會貫通,其實是資科資工的風格. : 而資管的要學的是趨勢研究,譬如對Web 2.0甚至Web 3.0有創新見解. : : → lg31cm:台灣有強調軟體設計基礎嗎? : → lg31cm:你網頁寫的再厲害你會寫 AJAX engine嗎? : → lg31cm:講難聽點那種後端應用一堆高中也會 : → lg31cm:創意要有扎實的技術作基礎,不然只是空談 : → abcdefghi:沒技術門檻的創意一出來立刻就會被淘汰. : → abcdefghi:完全不管現實技術的創意叫作 科幻小說 =================================================================== ※ 引述《clliu168 (風)》之銘言: : : 寫網頁與OS比較,誰高誰低? : 就層次上來說,OS 高 : Computer Sciense 的核心科目沒幾顆,OS 就是其中一門 : 資格考有人在考怎麼寫網頁的嗎? : : 以 Computer Science 的學校訓練來看,寫網頁根本不應該列入一門課 : (我知道有不少學校把這個也當成一門課在上) : 因為寫網頁偏重的是創意的表現,並不是基本功 : : 會計系統牽涉到的還有 domain knowledge,並不單單只是 Computer Science : Computer Science 的課程也不會教你怎麼寫會計系統 : 那通常都是工作的時候,需要用到,再去搭配會計 expert 或自己去瞭解會計 : : OS 就是 Computer Science 的核心,如果你想要接觸到系統的東西,OS 就是 : 一門很重要的課. : : : 而會計系統的設計也是創造力的發揮. : : 會計系統的創造力應該還好,重點是你得要解決會計問題,讓會計人員覺得好用 : : : 看完這篇,不很清楚它在講什麼,到底是台灣人的基礎軟體設計能力不夠,還是 : : 台灣人只專注於教導軟體設計基礎,忽略了高層次的創造力? : : 那篇我覺得寫的還好啊,為什麼你會覺得這麼嚴重 :) : 基本工很重要,就是這樣 : : 就算演變到現在,Computer Science 本質都沒什麼變,核心課程也還是那些 : 很多東西都是從基本的核心去延伸出來的。 : : 這裡有一段話是張真誠教授的經驗, 這個軟體的基本功要不要對那個 OS 習題做 : trace ? : http://www.cs.ccu.edu.tw/~ccc/article/software.htm : 這裡有一段話是張真誠教授的經驗 : : 軟體技術靠的是創意設計與純熟的經驗,單靠逐行追蹤( Trace )別人所開發的 : 程式,而欲取得技術將無異於緣木求魚。我念大學時,曾經依照書本上的原理,親 : 自動手開發過 PASCAL 的編譯器,及組譯器( Assembler ),也曾經逐行追蹤過 : PDP-11 的 I/O Driver ,這些苦功只能作為實務與學理的互相印證而已,對於 : 軟體技術開發能力的提昇十分有限。 : : 推 lg31cm:我以前的學校還特別開一門課追蹤程式 : → lg31cm:本來就可以從別人的code學到東西 =========================================================================== ※ 引述《MasterChang (我愛ASM)》之銘言: : 我是念物理的,沒有寫過OS,只唸過Operating Systems: Design : and Implementation,寫過 RTOS@80188 ,若像OS架構這樣龐大的 : 東西,以目前各大學商業導向教學的傾向,就算把OS列入核心課程 : ,對於學生真正在課堂上收益以及是否就真的會寫OS我是很懷疑。 : 另文中提到追蹤 PDP-11 這顆迪吉多早期CPU 就真的無益於軟體技 : 術開發嗎?應用程式也許,不過現在HDL 語言應用程度來說,看看 : 老CPU架構也不錯。 =========================================================================== ※ 引述《ggg12345 (ggg)》之銘言: : 張教授是認為 trace program 無助於 "取得技術" , 對 "軟體技術開發能力" : 的提升 十分有限, 這總是一種個人的經驗談, 為何雙方說詞差距這麼不同, : 有過經驗的應該可以分享一下看法. : : 推 lg31cm:從別人的程式可以學到模組如何劃分 : → lg31cm:版本控制等,這不是軟體工程是啥? : → lg31cm:況且不懂技術光會講軟體工程,能開發軟體嗎 ====================================================================== ※ 引述《ji3g45j (pig)》之銘言: : 我認為OS真的是個增加軟體設計能力最好的範本 : 文中提到將OS中某個模組拿掉,練習寫一個功能一樣的模組"裝"上去 : 這個過程就大概讓學生了解模組是什麼,該怎麼設計一個模組,如果 : 去trace現代的OS kernel更能夠學到很多高效能的寫法 : 我ㄧ直認為寫軟體系統就跟蓋房子一樣,只是寫軟體太簡單了,工具的使用實在是 : 太簡單了,不像是蓋房子,一定要先做到90%的規劃,才能開始動工,才能開始 : 雇挖土機、起重機來蓋一棟大樓 : 那軟體呢? : : 不乏有非常多的人不做任何規劃就開始動工,導致寫出來的系統 : 沒有模組,無法再度被使用,老是在抱怨bug太多做不完。 : 真的!!做越多的規劃,越能夠避免掉房子蓋了又拆再重蓋,直接在紙上走這條路 : 就會讓我們在軟體系統的設計上順暢許多,bug也能夠在控制的範圍內 : ======================================================================= ※ 引述《lg31cm (我住5F)》之銘言: : ※ 引述《ji3g45j (pig)》之銘言: : : 真的!!做越多的規劃,越能夠避免掉房子蓋了又拆再重蓋,直接在紙上走這條路 : : 就會讓我們在軟體系統的設計上順暢許多,bug也能夠在控制的範圍內 : : 補充一下,不只是這個原因,而是這個時代維護、改寫、重用前人的程式 : 比自己重新寫一個的機會要高很多。 : : 假如學生時代就能培養快速 tracing code 的能力,以後工作也會非常 : 有幫助。尤其網路上可以找到一堆 code,但是如何修剪成你要的,去掉 : 你不要的,瞭解你需要的?何不在學生時代就培養這種能力呢? : : 當然我同意在一些基礎學科,如資料結構、演算法等從0開始寫程式 : 的重要性。 : : 但是讀別人的程式學寫程式是最有效率的途徑,已故的 UNIX 大師 : Richard Steven也有同樣的看法(記得 Knuth 也有同樣的見解) : ======================================================================= : 從推文可以知道認同的並不少. : trace os, 更改模組, 替換成自己寫的模組 有助於 : : 1.認識 模組分解 : 2.版本控制 : 但可能還有 : 3.測試樣本與測試程式的建立 : 4.外部相依模組與移機相容 : 5.除錯 ※ 編輯: ggg12345 來自: 140.115.1.146 (07/03 18:53)
文章代碼(AID): #16YYeaDg (Programming)
文章代碼(AID): #16YYeaDg (Programming)