V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ant_sz
V2EX  ›  程序员

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

  •  
  •   ant_sz ·
    shanzi · 2012-08-22 11:46:38 +08:00 · 6454 次点击
    这是一个创建于 4289 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人大四,虽然不是计算机专业选手,但是所见所闻还是能凑出一点见解的,写这个文的目的是让即将或者很快就要进入大学阶段的v2exer提前提一个醒,那就是,在大学学习计算机,自学的能力是很重要的

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

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

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

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

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

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

    以上,结论,在大学甚至不是不是计算机专业都不重要,不要指望学校教育能让你养成良好的编程习惯或者老师们能解决你的困惑。自学才是正道
    72 条回复    2016-03-26 10:27:36 +08:00
    NemoAlex
        1
    NemoAlex  
       2012-08-22 11:52:50 +08:00
    国内大学的所有科目几乎都是这样的
    fangzhzh
        2
    fangzhzh  
       2012-08-22 11:52:53 +08:00
    lz是否知道这个世界上有公开课这个东西,公开课还有作业,还有考试,还有考过了发一个MIT的证书.
    Amztion
        3
    Amztion  
       2012-08-22 11:52:53 +08:00
    膜拜
    tttwww18
        4
    tttwww18  
       2012-08-22 11:53:13 +08:00
    学校很多时候教的都是入门的东西,很多课程在短短一个学期根本就不可能讲全面,只能给你讲讲基础,关键还是要靠自学。师傅领进门,修行在个人。
    hyq
        5
    hyq  
       2012-08-22 11:54:45 +08:00
    最鬱悶的是編譯原理只上了半本書,大學白上了
    glasslion
        6
    glasslion  
       2012-08-22 11:56:07 +08:00
    我大学时考试要是纸上写程序,就谢天谢地了。我们院的老湿最喜欢出名词解释题,专业课要背的比政治课还多
    hbc
        7
    hbc  
       2012-08-22 11:58:54 +08:00
    @fangzhzh 人家只是想告诉像我这种大一新生大学计算机教育的状况啦……
    wening
        8
    wening  
       2012-08-22 12:05:42 +08:00
    @glasslion 真是同感
    楼主说的其实就是大部分高校的实际情况
    不得不说,我们和国外的计算机水平是有差距了
    楼主所说的,我个人认为是最重要的原因之一
    sophy
        9
    sophy  
       2012-08-22 12:09:23 +08:00
    西电老乡。。。嘿嘿嘿
    nicolazj
        10
    nicolazj  
       2012-08-22 12:24:44 +08:00
    楼主 讲的在理,当初大学 网络课什么上的真是吐血 全是脱离实际的
    tangyuan
        11
    tangyuan  
       2012-08-22 12:25:36 +08:00
    难道现在还是这样吗?我知道我上大学56年前是这样的,这几年还没有改善?听说也有学校在教python和php
    liliang13
        12
    liliang13  
       2012-08-22 12:27:16 +08:00
    @wening 而且我觉得差距不是一点半点。。。看国外的公开课神马的,才觉得这才是大学。。
    jiangle
        13
    jiangle  
       2012-08-22 12:27:42 +08:00
    自学能力确实很 重要
    YUCOAT
        14
    YUCOAT  
       2012-08-22 12:30:46 +08:00   ❤️ 2
    其实楼主,作为计算机专业的学生,我给你补充一下:

    第一:楼主对计算机这个专业认识有点片面,计算机专业,不仅仅是编程!因为我们还有数字电路,模拟电路,嵌入式,计算机网络,通信,人工智能,信息安全。编程是计算机行业最普遍,最辛苦最不值钱的行为之一!当然也是最基础的行为之一。

    第二:学校里面传授的计算机的基础知识,比如:计算机操作系统。而不是传授流行的知识,比如Android程序设计!因为流行的技术更新快,消失快,所以不适合拿到课堂上来。流行的这些是不是不要学了呢?当然不是,它学要学生自己去学,而不是等待老师去教。你也知道,时髦的技术更新快,老师也肯定是跟不上的。

    第三:自学是根本!
    Ricepig
        15
    Ricepig  
       2012-08-22 12:31:16 +08:00
    我感觉大学里还是需要教授更加基础一点的内容,新兴语言和新兴技术作为选修吧。

    很多学校软院虽然无法完全英文授课,但是使用的课程教材和大纲已经比较新潮了,这点还是重要的进步。

    还是要分清楚“计算机工程”和“软件学院”的区别的。
    66450146
        16
    66450146  
       2012-08-22 12:42:06 +08:00   ❤️ 1
    我跟一些老师谈过,其实他们中有一些还是相当有实力的,比如跟我很熟的那位就对Hadoop的性能参数非常熟悉。他们也开了一些相对较新的技术的选修课,比如iOS开发、云计算、ucos之类的。但是这些课程因为学分并不高,而且是选修课,几乎没有学生花很大的精力在这上面,也教不了多少东西。

    也有必修课的老师跟我聊过,关于教材的选择。最后老师选择了C++ Primer Plus,可是同学们则是几乎人手一本谭浩强——大多数人对书的质量没有那么高的要求,他们只关心能不能看得懂。

    必修课的设置则不是这些老师自己能够决定的,改变的过程实在太长,压根没办法跟上日新月异的技术进步。至于课程设置为什么改变不了其实大家都懂的……除了骂一句狗日的官僚作风之外没有更好的办法了。

    对于我自己的经验来说,还是有一些靠谱的老师能够做靠谱的事,但是只靠上课不一定能看出来,得自己去发掘了。
    bigeagle
        17
    bigeagle  
       2012-08-22 12:44:24 +08:00
    樓主是數學系的這種事情我會隨便亂說麼?
    davidx
        18
    davidx  
       2012-08-22 12:53:25 +08:00
    @sophy 西电垃圾啊...
    kokdemo
        19
    kokdemo  
       2012-08-22 12:54:13 +08:00
    樓主是數學系的這種事情我會隨便亂說麼?
    sophy
        20
    sophy  
       2012-08-22 12:54:27 +08:00
    @bigeagle 啧啧
    hexy
        21
    hexy  
       2012-08-22 13:21:13 +08:00
    做个大的项目,或者多做小项目比看啥书都快。
    binux
        22
    binux  
       2012-08-22 13:33:02 +08:00
    我觉得大学的课程设计还是合理的,虽然赶不上潮流,但是大学不是技校,还是以基础性教育为重。
    大学的计算机课程设置都是有用,必要,而且并没有过时的。(64位和16位CPU在教授计算机原理的时候有什么不同?)

    缺陷只是,你并不知道你学的这些东西有什么用,仅此而已。
    zellux
        23
    zellux  
       2012-08-22 13:45:13 +08:00   ❤️ 1
    我们学院的基础课教育还挺好的,用的教材是《Computer System, A Programmer's Perspective》,大一下大二上各上一学期,一共上一年。

    课程 Lab 和 CMU 15-213 的内容差不多,上半学期的 lab 涉及了位操作、buffer overflow 攻击、汇编指令优化 (Y86),下半学期的 lab 偏系统编程,要写一个简单的 shell、malloc(给定 sbrk 函数)和一个 http proxy。总的来说所有 lab 认真坐下来收获很大。

    大三上还有一门借鉴 MIT 6.828 的操作系统,lab 是实现一个支持文件系统和多任务调度的简单内核。如果之前那门基础课认真上了,这个 lab 做起来也不怎么困难。
    DeeCheung
        24
    DeeCheung  
       2012-08-22 13:46:46 +08:00
    推荐些资源
    http://www.youtube.com/user/wecolab/videos?view=1
    http://sls.weco.net/CurrentSemester

    台湾辅仁大学的教授弄的比较接近当下的技术学习。
    zellux
        25
    zellux  
       2012-08-22 13:50:30 +08:00
    另外我觉得使用英文教材和英文试卷挺好的啊,英文 slides 用中文讲也很正常嘛。
    iwinux
        26
    iwinux  
       2012-08-22 14:47:54 +08:00
    @zellux WOW~你是什么学校的?
    oa414
        27
    oa414  
       2012-08-22 14:59:33 +08:00
    我也很想吐槽一下……作为一个马上开学的大一新生,虽然认识只是皮毛,但发现认识的在一些985,211的学生(开学大2)的同学对计算机的认识还不如我……

    我的观点是:
    1.当前中国大学大多是学校的计算机教育确实很悲剧……
    2.计算机包含的方面有很多,精通任何一门都不容易,当然选择哪方面深入要看学生的兴趣。
    3.自学确实是根本

    我曾经有一个计划,写一个面向计算机相关专业的学生的toturial,简单介绍一下这个东西的方方面面,告诉0基础的那些同学,C语言不只只只是谭浩强,还有K&R,告诉同学们有 Brian Kernighan,Stevens等优秀的作家,告诉同学学计算机应该用*nix,以及其它方方面面的东西。

    但是自己觉得没办法写好,就搁浅了。

    如果有兴趣,大家合作一份如何?平时在网上混,知道有两三个不错的大学老师,还有一些同样的自学的强人,还有一些或许愿意贡献一点文章的牛人,我们可以发邮件或发帖询问愿不愿意合作创作。

    项目可以放在github上,大家合作完成。
    yeshiwei
        28
    yeshiwei  
       2012-08-22 15:04:27 +08:00
    所以真想学计算机应该去数学院,或者物理学院,甚至外语学院。
    zellux
        29
    zellux  
       2012-08-22 15:16:17 +08:00
    @iwinux 复旦软院
    io
        30
    io  
       2012-08-22 15:31:11 +08:00
    谭浩强有什么不好?
    hu437
        31
    hu437  
       2012-08-22 15:53:48 +08:00
    同意@YUCOAT的看法
    1、C语言这个课程是当作编程入门课程讲的,使用什么版本,什么IDE,编译器,手写或者是上机这些都不是问题的关键所在,关键是通过C语言让学计算机的学生理解计算机编程是一个什么东西。

    2、流行的东西,像android,学过java和操作系统的人学android肯定会很快,学过TCP/IP的人再学计算机网络,路由和交换等也会快速入门。看看近十几年的计算机发展,本质上其实没有什么特变变化。操作系统、数据结构、编译原理、计算机网络、C语言、软件等不说学到精通,即使是学到一般,再学习新的东西也会非常快,在现有的计算机体系下,即使是出现新的技术也当能快速入门。

    学校里面教框架使用,android开发,系统开发等远不如教基本原理对将来的作用大,我想这也是为什么很多公司不喜欢要培训学校出来的,而更喜欢科班毕业的。

    3、我上学的时候也觉得学校教的东西过时了,也常喜欢研究些新的技术或东西,但工作几年后回头看才有上面的想法,如果现在让我重学一次,我定不会再说操作系统、计算机原理、数据库原理、编译原理、计算方法等这些课过时,没意思,老旧了。

    4、大学自学最重要,这一点何止是计算机,任何一门课都是这样的
    iEverX
        32
    iEverX  
       2012-08-22 16:21:01 +08:00
    说一下自己的学校,和楼主说的还是有许多不同的。。

    1. C语言,教学环境和考试环境确实是VC6,但是考试是机考,没有笔试。也没有VC6相关的问题。。
    作业都是编程题,提交到评测系统进行评测
    2. 数据结构,和C类似。自己不写的话,即使过了,也就是个及格
    3. 就像@YUCOAT 所说,大学里教的是基础,组成原理、操作系统、网络等等一个计算机方面的根本

    另外,国内的计算机教学确实有很多问题。。关键是动手过少,项目经验少。。
    再另外,自学很重要,但哪个学科不是这样??
    mikale
        33
    mikale  
       2012-08-22 16:39:22 +08:00
    大学教育根本不需要涉及流行的,我认为大学教育连java都不应该教..能教lisp或者C语言就够了

    其他的应该多教数据结构这些东西
    holsety
        34
    holsety  
       2012-08-22 17:09:12 +08:00   ❤️ 1
    手写代码,呵呵

    其实只是想让你体验一下在纸带上打孔的艰辛而已。
    PrideChung
        35
    PrideChung  
       2012-08-22 17:09:22 +08:00
    同楼主一样很反感在试卷上手写代码,找工作的时候面试也很讨厌这个,毫无意义。
    hoogle
        36
    hoogle  
       2012-08-22 17:20:33 +08:00
    大學教育沒必要追流行,,不是職業教育。。 老師可以隨便點一下。。 還得靠自學。。。。。
    Matrix42
        37
    Matrix42  
       2012-08-22 17:30:09 +08:00
    我是走了无数弯路。。。
    colincat
        38
    colincat  
       2012-08-22 17:40:24 +08:00
    @hu437 很赞同,
    1.学习这件事情来说看你自己观念,如果你本身就不想学,老师再教也没用,俗话说:师傅领进门修行靠个人;
    2.在大学学到的东西虽然很多是基础的,但是确让你基础更加牢固,不管技术再怎么更新也很快能适应,讲的是原理,并不是技术,也就是说大学并不是技校;
    3.在大学你有充分的时间实践,机会不是别人给与的,是自己争取的,相信每个大学的计算机系都有牛人吧;
    4.新技术一定要掌握,老的原理也不能丢弃,计算机本质的东西不会变太多,新技术不过就是一层一层的封装而已;
    5.学好英语,自己看英文书籍,能力都是培养出来的,最近看英文的技术书受益很多,国内大部分书真的是骗钱的,好的真是少之又少;


    最后还是一句,能力决定一切,不论你在哪里,从哪里来,真本事在手才是王道!
    GeBron
        39
    GeBron  
       2012-08-22 19:46:28 +08:00
    好像非计算机专业基本不上 算法与数据结构 这门课,得靠自学。。。
    ant_sz
        40
    ant_sz  
    OP
       2012-08-22 21:05:09 +08:00   ❤️ 1
    @binux @YUCOAT @hu437

    语言和编译器是很相关的,单纯讲述语言而忽略编译器的差别问题很大,在16位时代,int的的取值范围是 -32768 到 +32767。 但是VC6是32位操作系统和CPU下面的产物,int的取值范围其实是原来long的长度,而在64位计算机和编译器情况下,这个范围就更大了,这是很重要的差别,我觉得大学的计算机教育应该重视这种差别,才能让学生正确的树立对语言和编译器的概念。

    有多少人认为IDE和语言是一体的?实际上,VC6也是VC这个IDE加上一套独立于这个IDE的编译器和工具链所组成的,完全可以不使用这个IDE直接在命令提示符中调用编辑器,很多计算机教学都没有清楚地说明这一点。

    现在很多大学计算机教育的实际问题不是教授原理还是贴近实际的问题,而是很多课程只是照本宣科,没有充分的将其中的原理抽象出来,不能很好的传达思想,同时又没有很贴近实际,讲述的内容不能很好的应用。

    相比为了更好的讲述操作系统,而自己写出 Minix ,为了更好的演示数学计算而逐步开发出Matlab这种计算机教育的境界,我们还是差的很远。
    YUCOAT
        41
    YUCOAT  
       2012-08-22 21:37:46 +08:00
    @ant_sz
    写Minix要求太高了,在全国高校里面,有能力自己写操作系统的老师就只占少数。哪怕是写个bootloader。我说一下我们学校计算机专业的情况吧,他们都比较浮躁,大一还好,大一过后老是找不到自己的方向,不知道怎么学,学什么,久而久之,对计算机就抱一副无所谓的态度。到了大三大四,很多人眼看要毕业了,但又没学到什么东西,心急如焚,C语言都忘得差不多了,于是赶紧跑去培训机构培训一把。其实很多普通高校计算机专业很多学生是这样的,至于名校是怎么样,我就不知道了,我不是名校的。

    我们国家IT和教育两者同时落后的时候。IT教育肯定更加落后,这不是我们这些学生可以改变的。我们不要对他们抱太高到期望,自己拿者一本经典慢慢啃,学到东西了就对着键盘慢慢敲,遇到不懂的就上网搜索,这应该是最明智的做法了。当然,如果有一个好的环境,可以和周围的同学老师相互讨论。
    sinxccc
        42
    sinxccc  
       2012-08-22 21:46:01 +08:00
    @ant_sz 取值范围这种东西只要原理掌握了16位的32位的64位的或者哪天再蹦出了128位的,有什么差别么?另外即使工作之后在8位16位的机器上写程序的机会也是有的⋯⋯

    我觉得第一门基础语言课用 IDE 也是有好处的,可以让从来没接触过编程的人迅速跑起一个程序来,关注语言本身,而不是花上半学期去纠结如何编译的问题,可以减少很多挫折感。技术细节什么时候补都可以,接触多了自然就了解了。

    对于最后一句,国内的话 skyeye 是个很成功的例子⋯
    zyAndroid
        43
    zyAndroid  
       2012-08-22 22:07:09 +08:00   ❤️ 1
    今年刚大学毕业,东北某部属211院校,本科,计算机专业。
    有三点经验之谈跟大家分享。
    1.基础课很重要。C语言、数据结构、算法、操作系统、组成原理。这些课一定要好好学明白,别因为老师怂 自己也认怂不学。英语也很重要,因为计算机这行的外文文档很多。
    2.逃课很重要。除了上述课程,其他自己不感兴趣的,或者明显就是在忽悠人的课程(譬如马哲),能逃就逃。
    3.逃课的时间用来学习算法,练习编程。学校有ACM实验室的,请务必参加,对学习和领会算法很有帮助。平时多学些酷酷的东西,对未来发展很有帮助。比如本科毕业生里知道python和django的基本凤毛麟角。
    基本就这些了,放眼望去,那些在大学里依然是乖孩子,争当党员的上进孩子,基本毕业之后就失业了。身为计算机专业的学生,他们只学会了重装系统,而且还是TM windows系统。
    新生们,好自为之吧。
    shanks
        44
    shanks  
       2012-08-22 22:14:15 +08:00
    @zellux 复旦威武啊。。。CSAPP做教材确实很好,而且一年能讲多少我也蛮好奇的。。。
    (其实我是羡慕嫉妒恨啊摔 T_T 都是211,985咋就差那么远。。。
    zellux
        45
    zellux  
       2012-08-22 23:06:44 +08:00
    @shanks 我们基本上都讲了,除了性能测试那一章跳过去之外。当然其他章节也有不同的侧重,比如下半学期重点就放在 memory hierarchy、cache 和 memory management 这几个章节,networking 和 signal 两部分讲得不详细,主要靠 lab 学习了。
    silverbullettt
        46
    silverbullettt  
       2012-08-22 23:37:41 +08:00
    @YUCOAT
    "编程是计算机行业最普遍,最辛苦最不值钱的行为之一!"

    同学, 你知道编出好程序有多难么?你知道好的程序员有多值钱么?不要宣传这种观点。
    写操作系统这事我就干过,只要有耐心肯定能写出一个(非常)简单的来,而且市面上已经有这方面很好的指导教材。但是大学里的老师啊,唉我就不说了,技术和学术水平好的可以说极少,有水平同时又教得好的,凤毛麟角啊。这样的老师我上了三年学就碰上过一个。
    当然你说自学是根本,太同意不过了。其实如果有高人指点更好,但是高人可遇不可求。

    @zellux 跟我们软院比,复旦是相当与时俱进啊。

    @shanks,我念的也是985,也就那个样- - 不必羡慕嫉妒,自己肯努力,方向找正确,绝对有成就。比方说CSAPP,学校不用做教材,我们完全可以自己学嘛。

    @ant_sz int 的定义本来就是不比 long 长,不比 short 短,设置成跟 long 的长度一样很正常啊。学校的教学没有将原理教给学生是一方面,另一方面几乎完全与工业界脱节啊!即教不好恒久不变的原理,又不教瞬息万变的新技术,所以不对学校报什么期望是明智的。

    @hu437 我个人认为用C语言这个课程当作编程入门课程讲,实在太不妥了。C 语言必须学,但是放在入门不合适啊。不过


    @glasslion 我们的考试也有名词解释,我靠出这种题的人简直是……不说了,你懂的。

    唉,好久没吐槽计算机教学了,今天又来发泄一下,心情瞬间愉快了少许,哈哈哈。
    不过光抱怨是没有用滴,只要对计算机抱有浓厚的兴趣,还有什么能阻挡你成为高手呢?
    Mutoo
        47
    Mutoo  
       2012-08-22 23:44:37 +08:00
    其实。。。99%的人只是陪读而已。我们自己学吧。
    clowwindy
        48
    clowwindy  
       2012-08-22 23:58:35 +08:00
    大学有时间不妨认真看一些书。

    http://book.douban.com/doulist/1643064/
    quake0day
        49
    quake0day  
       2012-08-23 00:05:39 +08:00
    支持在纸上手写代码
    binux
        50
    binux  
       2012-08-23 00:13:20 +08:00
    @ant_sz 又不是真的要让你学过之后就用汇编干活,及时是课程设计,也不会要求int的范围。

    开《编译原理》就写一个词法/语法分析器,开《形式语言与自动机》就写个完整的正则解析器,,开《计算机图形学》就写个引擎?

    你以为大学学几年啊,《编译原理》也就玩玩lex/yacc,《形式语言与自动机》只要求*?+,《计算机图形学》用一下OPENGL。实际上从电子电路,到计算机组成原理,到软件工程,都是有课程设计(实践)的,但是你要求所有这些都能达到拉出去就能干活的程度,这根本不可能。计算机教授的包括电子,通信等相关科目,随便拿一个出来就够一辈子了,大学3-4年你想学到什么程度,你能学到什么程度。
    undeadking
        51
    undeadking  
       2012-08-23 00:33:36 +08:00
    吐槽一个教育落后的国家的教育没什么建设性,没有方向和指导的自学纯粹是抓瞎。

    我可不信你就随便看几本书做几个项目就能悟出版本管理,代码规范之类的东西来。虽然大学多数教师的水平都不怎么样,不过还是有少数能作为灯塔来指明方向的。在国内有多少靠谱的技术社区?不去学校学习难道还指望社区么?
    ant_sz
        52
    ant_sz  
    OP
       2012-08-23 00:58:10 +08:00
    @binux C语言作为一门接触编程语言的基础,一个基本的数据类型的范围难道不重要么?数据取值的范围会随着环境的不同而不同这种基本的概念不应该在学习编程早期就建立起来么?

    我承认很多学科要学一辈子,但是不是所有上大学的人都立志去研究计算机学科一辈子。你就用那一辈子的方法给那些只学四年就要上战场的人合适么?

    值得反思的是,我们的大学教育到底要培养什么样的人才,你是要培养程序员?可是你教授的东西脱离现实,让学生毕业后怎么快速进入工作? 你是要培养学术人才?但是目前来看连基础的概念确立都存在问题,计算机教师教授知识的水平也一般。

    我们目前的计算机教育难道不值得反思么?难道您觉得现在这样是is just perfect?
    ant_sz
        53
    ant_sz  
    OP
       2012-08-23 01:06:23 +08:00
    @sinxccc 我认为数据类型宽度会随着计算机环境等因素的变化而变化是一个缩影。我们现在的计算机教育忽略掉太多这样的原理了。

    我们现在计算机教育普遍不能将数据类型的宽度随环境变化的原理教授出去,而是让学生死记硬背那几个数字,让学生以为无论到了什么时候int类型的宽度都是那样。这是不对的,当学生面对更新的硬件,也不能适当的利用它更新的性能,而偶尔遇到一些小型的资源特别紧缺的设备(比如8位的芯片)他仍然按照16位的处理方法编程,就会导致很大的错误。这不得不说是一种教育的失败
    binux
        54
    binux  
       2012-08-23 01:35:30 +08:00
    @ant_sz 明明说的是汇编好吧,决大部分计算机毕业生毕业后是不使用汇编的,这不是教授重点。数据的范围已经在计算机组成原理等众多课程中教授了,写程序不一定要用IDE,这在《编译原理》中已经教授了。而c语言课程作为计算机语言这一个目的来教授,这样的细节并不是这一门课的重点,变量、分支、循环,这才是目的。

    计算机学科已经非常广了,更不论它与其他学科的关联性,不是每一个计算机毕业的都是写c的。计算机的课程设置中同时有电子电路基础也有WEB技术,那你去问问有多少计算机出身的前端会分辨二极管的极性。

    大学依旧是通才教育,只不过领域被缩小了,但是还不足以小到能够在4年的时间内入门,因为门还是太多了。而这门是必须你自己去入的。
    Hyperion
        55
    Hyperion  
       2012-08-23 08:51:56 +08:00
    围观, 首先, 计算机这东西不知道自学, 必定悲剧, 这点应该没人反驳吧? (特例不算, 强调普适性)

    然后, 知道自学, 那学校教什么还有什么区别吗?

    最后, 还是决定不吐槽本楼其他回复了, 每个人的思想都是不一样的, 争论无用.

    @binux 不知道怎么分辨二极管还不如去街边卖红薯 0_0... 我觉得应该问"怎么分辨三极管的脚"比较好...
    qq286735628
        56
    qq286735628  
       2012-08-23 09:00:25 +08:00
    大一中无意见到某公司的岗位要求,然后大学按着这要求过来了,马上进入第四年
    shanks
        57
    shanks  
       2012-08-23 09:35:29 +08:00
    @zellux
    @silverbullettt 好书确实是可以自己看,但是你该明白我们已经把多少时间浪费在应付渣渣教材的上课和考试上面。。。。我一直都没想明白,为什么不直接用各种经典教材而要用国内某些渣渣教材呢?还有一些本校出的渣渣教材战斗机我就不吐槽。。。
    只是我非常不喜欢一门好端端的计算机组成原理弄成单纯的背书。。。我自己看CSAPP效果比老师讲课不知道好多少。。。Orz
    humiaozuzu
        58
    humiaozuzu  
       2012-08-23 09:51:08 +08:00
    @shanks +1

    我们一学期有大量的时候都是赶完全无用的作业,我们甚至有傻逼老师要求作业抄题目,然后说这是尊重老师。
    一学期11门课,就算专门学学校的东西都不够,该学的更不说了。

    PS:鄙人在某全国前十的学校的软院
    binux
        59
    binux  
       2012-08-23 10:15:32 +08:00
    @Hyperion 总之,自学是需要的。但是大学的课程设置也是合理的,自学一般是不会去学《形式语言与自动机》的,但它实际上很有用。大学的课程和实际使用之间有一层纸,你需要靠自学去捅破它。但是无论你愿不愿意,觉得是否有意义,大学系统的计算机课程设置,在你捅破与实践的联系这张纸后,会让你受益的。
    shanks
        60
    shanks  
       2012-08-23 10:18:09 +08:00
    @humiaozuzu 就是这样。。。所以有时候确实蛮无奈的。。。。
    (PS:全国前十的学校和全国前十的软院可是不同概念的=_,=
    silverbullettt
        61
    silverbullettt  
       2012-08-23 14:06:41 +08:00
    @shanks 我也也是软院的,周末都TMD有课- - 多少考试都是考前突击但求一过,所以省下了不少时间。而且时间是挤出来的! 至于教材,我是这样想的,老师换一套教材就要重新设计课程,重新备课,而且他自己也要熟悉教材的风格以及内容。有多少老师有这个“闲情逸致”或者说“雄心壮志”来做这件事?其实教我们组成原理的老师还不错,但CMU已经探索出更好更新的教学方式(CSAPP),我们应该果断跟进。学校跟不上,我们自己来。

    @humiaozuzu 软院苦逼啊= =

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

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

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

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

    其实不能完全怪老师。过去的知识积累的慢,老师有时间机会能够沉淀下来寻找那些不变的东西——即知识。现在变化太快了,换谁都难到达能够跟上时代与时俱进的程度。换句话说,老师跟学生的起点是一样的。
    shanks
        67
    shanks  
       2012-08-23 18:50:36 +08:00
    @silverbullettt 我表示悟性不够不知道去学自动机。。。目前升大三当中,比较关注系统底层的东西,但是对纯理论的貌似没有很大兴趣。。。(特别是偏纯数学方向的,各种计算的 = =
    这种书看名字就觉得看不下去的样子真的大丈夫??
    hpyhacking
        68
    hpyhacking  
       2012-08-24 05:41:14 +08:00
    吐槽无用,趁早退学吧~
    marvinII
        69
    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
        70
    Allianzcortex  
       2016-03-26 09:24:58 +08:00
    @zyAndroid 东北某部属 211 ,我猜是 HEU ……?
    zyAndroid
        71
    zyAndroid  
       2016-03-26 10:23:14 +08:00
    Allianzcortex
        72
    Allianzcortex  
       2016-03-26 10:27:36 +08:00
    @zyAndroid 猜错了⊙﹏⊙b 汗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1041 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 22:19 · PVG 06:19 · LAX 15:19 · JFK 18:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.