开学之际想发个文章吐槽一下中国的计算机教育

2012-08-22 11:46:38 +08:00
 ant_sz
本人大四,虽然不是计算机专业选手,但是所见所闻还是能凑出一点见解的,写这个文的目的是让即将或者很快就要进入大学阶段的v2exer提前提一个醒,那就是,在大学学习计算机,自学的能力是很重要的

吐槽开始
首先是c语言,据我所知,目前c语言教育的大纲和普遍使用的课本都几乎是十年前的版本了。虽然c语言在这十来年改变并不大,但是这些课本往往与实际脱节,教学时脱离编译器和运行环境孤立的讲课,比如对于数据类型所占的字节数,是跟编译器、系统环境等相关的,而大多数课本上都还停留在16位cpu时代的情况,大多数课本和老师授课时根本不会强调这点

再说上机,因为课本是老版本,所以上机的工具也是老工具,至少就我们学校而言,上机实践使用的是古老的vc6和更古老的turbo c,也许这两个产品的确非常经典,初学时拿来练手也就罢了,但是不应该在考试的时候将这两项作为考察的内容,有的甚至考察某个按钮的意义,如果你是一个vs2012或者gcc或者clang选手,那你就抓虾了

再说考试,一般来说考试分为上机和笔试两部分,上机咱就不说了,让你用古老的vc6或者turboc写个程序,笔试方面,没错,让你在纸上写程序,然后老师在纸上读你的程序,中间没有经过任何计算机编译和运行调试。你的成绩就出来了

最近还流行独立的软件学院,还有国际化教学试点,也就是英文授课,英文考试。实际情况是,的确给孩子们发了英文课本考试也是英文试卷,可是学校哪里找那么多高水平的英文授课教师啊?有的老师是对着英文ppt讲中文,有的正相反,而其中英文能说得很好的寥寥无几。

对于算法和数据结构,我深深的认为对于其中每一个,都要手动实现一边才能掌握,当然这个还是得靠你自己,老师在布置作业时一般不会强制你实践,原因是不容易判定你到底是否完成了,一般这类学科的作业是习题,只有一两次针对重要算法的大作业需要你自己实现。明白算法的执行过程和动手实现真心有差距。真正写过一便才能了解到细节!

另外,学校里教学涉及的内容很窄,必修的方面除c语言外一般最多是java和cpp,最近移动开发比较热门,故而有一些csharp或者android的选修课,此外,基本不会有热门技术或者技术热点的教学,新兴语言、web开发等方面教学都很少。

以上,结论,在大学甚至不是不是计算机专业都不重要,不要指望学校教育能让你养成良好的编程习惯或者老师们能解决你的困惑。自学才是正道
6483 次点击
所在节点    程序员
72 条回复
silverbullettt
2012-08-23 14:06:41 +08:00
@shanks 我也也是软院的,周末都TMD有课- - 多少考试都是考前突击但求一过,所以省下了不少时间。而且时间是挤出来的! 至于教材,我是这样想的,老师换一套教材就要重新设计课程,重新备课,而且他自己也要熟悉教材的风格以及内容。有多少老师有这个“闲情逸致”或者说“雄心壮志”来做这件事?其实教我们组成原理的老师还不错,但CMU已经探索出更好更新的教学方式(CSAPP),我们应该果断跟进。学校跟不上,我们自己来。

@humiaozuzu 软院苦逼啊= =

@undeadking 在学校学习仍然应当以自学为主,。我现在觉得现在上大学的价值是这一期间有较多自由的时间,可以拿来自己思考自己学习。能作为“灯塔”的老师不是少数,是极少数。自学还得靠悟性,不仅是学的时候要悟,给自己制定学习计划的时候也要靠悟。

@binux 所以说连自动机都不知道去学,或者不知道学来有什么用,乃是悟性不够也~

关于教学问题我还专门给学院写过信,但是想想发现,教学教学,有“教”也有“学”,与其怪老师不负责任没教好,不如怪自己不肯努力没用心。说到底乃是“兴趣”和“主动”的问题。但我已渐渐不习惯听老师讲课这种学习方式,接受知识的效率太低。
binux
2012-08-23 14:46:31 +08:00
@silverbullettt 自动机到处都有。。《形式语言与自动机》比如什么什么范式,什么NFA转DFA,不说自学,你确定用过?
silverbullettt
2012-08-23 14:50:53 +08:00
@binux 就说NFA转DFA,我前几天刚用http://v2ex.com/t/45147#reply6
binux
2012-08-23 15:01:24 +08:00
@silverbullettt 并不是所有人都去写编译器的。那你自学过《数字信号与数字系统》吗?
mechiland
2012-08-23 15:06:21 +08:00
上学期间就没怎么上过课。几个月前尝试在大学里面讲了点东西,写到我的博客了: michael.nona.name/archives/the-last-class-review/

其实不能完全怪老师。过去的知识积累的慢,老师有时间机会能够沉淀下来寻找那些不变的东西——即知识。现在变化太快了,换谁都难到达能够跟上时代与时俱进的程度。换句话说,老师跟学生的起点是一样的。
mechiland
2012-08-23 15:06:25 +08:00
上学期间就没怎么上过课。几个月前尝试在大学里面讲了点东西,写到我的博客了: michael.nona.name/archives/the-last-class-review/

其实不能完全怪老师。过去的知识积累的慢,老师有时间机会能够沉淀下来寻找那些不变的东西——即知识。现在变化太快了,换谁都难到达能够跟上时代与时俱进的程度。换句话说,老师跟学生的起点是一样的。
shanks
2012-08-23 18:50:36 +08:00
@silverbullettt 我表示悟性不够不知道去学自动机。。。目前升大三当中,比较关注系统底层的东西,但是对纯理论的貌似没有很大兴趣。。。(特别是偏纯数学方向的,各种计算的 = =
这种书看名字就觉得看不下去的样子真的大丈夫??
hpyhacking
2012-08-24 05:41:14 +08:00
吐槽无用,趁早退学吧~
marvinII
2012-08-24 07:32:24 +08:00
这和你的期待有关。就好比你有一天欲火焚身,就冲进了个发廊,结果人家就只理发。

大学不是在教你C语言,是在教你结构化程序设计。就是要你在多年以后面对一切混沌时,你也能拿起笔在白板上画个菱形,表示你要分而治之了。这和语言关系不大,实际上我们多年都学的pascal,很好,IDE turbo pascal也很好。

MIT的同学是不是应该抱怨SICP怎么还用古老的scheme呢?应该用objc呀。

-----

纸上写程序也没有什么不对,方式而已。只是逼着你通盘思考而已。几年前,一个师兄给一款PDA写一个http client时,就是在本子上先画流程图,写出来。然后一次就过了。

看看coders at work里,不少也是这么干的,包括伟大的先知don knuth.

-----

大学里,稍微年长一点的老师,其实都有水平,只是深藏不漏而已。想想他们当初可不是凭着某某信息系统拿到学位的,那是定理自动证明,程序设计方法学之类的时代,那时男人都很健壮,女人都很美丽,程序员都很快乐。
Allianzcortex
2016-03-26 09:24:58 +08:00
@zyAndroid 东北某部属 211 ,我猜是 HEU ……?
zyAndroid
2016-03-26 10:23:14 +08:00
Allianzcortex
2016-03-26 10:27:36 +08:00
@zyAndroid 猜错了⊙﹏⊙b 汗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/45750

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX