@
enaxm 所以说是你先跑的题……
问题虽然是经,然而必要性上……恰恰相反,也许大多数人都需要反省——比如说,为什么会觉得算法和数据结构对写好代码重要?
倒不是说数据结构跟算法不重要,但是大部分现实情况下更重要的显然有很多,比如对要首先解决的问题本身的清晰理解,比如你所谓的“学科的知识体系结构”;反过来,上来就讲算法和数据结构如何关键的,基本就是外行。
实际上,对数据结构跟算法一窍不通的情况下,许多人已经有很多机会足够写出能合理解决问题的“好”的代码了。需要做的无非就是自己发明一遍当前需要的具体数据结构跟算法罢了。这比发明整个知识体系可是容易得多;能写“好”代码的,大概人人都有自己造出过没学过的算法和数据结构轮子的经历。(反倒是见得多了就没那么容易造新的了。)
另一方面,只会解决点书本题目而实际工作中用不大会的(不管科班不科班)到处都是一大把,还真没法指望“哪怕就只是当成工具来用会用比不会用的人当然要强”。
按你思路理解的科班在系统的学科知识积累上应该有明显优势,基于一般人对高等教育的认识来讲,看似是顺理成章地没问题;可惜现实就是这行的科班的专业整体教学质量从根本上就特别不咋地,观感落差巨大。我之前主要就是提醒这点事实罢了。
我说的科班还真不止是本科教育。像我拿来当例子的 PL 课一般本科阶段根本就不会开。(要算上跨专业什么的,本科教学质量其实还算是比较好的了。)
当然,本科教育是批判的重点:因为“写好代码”现实根本不会被作为专业和研究方向,之后的课程撑死能教的是“写怎么样的代码”,却不会再继续教“怎么写好代码”,没在本科阶段教好或者至少能让学生找到方向养成习惯,那基本就完犊子了。所以这里再怎么水也不应该流于通识教育。
而我说的质量差,主要也不是出自教学方法的问题(否则也不只是个别专业的问题),而是从材料质量开始的低劣——基础都别指望能教清楚。
你讲的另一方面则是显得叶公好龙,实在没法让人参考。
——形式化方法?和写好代码的关系是什么?你真的了解你在讲什么吗?你有应用过这样的方法解决过你遇到的“写好代码”相关的问题过吗?
我得说你明显发散过头了。形式化方法在“写好代码”相关的领域中专指建立特定的模型实现几个很具体的目的(现在能以代码体现的,基本只有规格化和验证)手段,知识工程的模型都很难算得上多少形式化,啥时候还和 consulting 行业能攀亲带故了?
LZ 另一个关心的话题是“哲学问题”。超过这个范畴,形式化方法和正经的哲学相关的部分还真有点关系,但这里都没提到,也都是陈年旧帐了,还没提什么前沿理论的必要。