作者ggg12345 (ggg)
看板Programming
标题[结论1]不能卖os, 也要学写os: 从程式范例教软体工程
时间Tue Jul 3 18:51:15 2007
感谢很多网友的回覆指点.
关於 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)