五千年(敝帚自珍)

主题:【原创】三年级也可以学编程 -- 月色溶溶

共:💬209 🌺336
分页树展主题 · 全看首页 上页
/ 14
下页 末页
    • 家园 厉害,上来就学 C 啊

      女中豪杰啊。不过还是改学没指针,不用考虑内存分配的语言比较好。要不会脑仁疼,起皱纹,掉头发的。

    • 家园 能够找到错误,改正错误就是专业和业余的区别

      很多事情在于解决问题的能力。

      编程也是一样。

      你这段程序,最主要是调试。

      你运行你的程序必然会有错误。

      能够找到错误,改正错误就是专业和业余的区别。

    • 家园 理论上的东西大家说得比较多了

      那我就谈谈目前国内c语言教学的现状。我本人在工作中经常使用C++/python,也在大学里教过C语言。目前国内大学面向非计算机专业的编程课仍然以C语言为主,造成这种现象的主要原因是:1,国家二级考试仍然以C和basic为主,不过basic现在用得实在不多,所以学生们更愿意选c语言;2,c语言的教师很好找,计算机系出来的人都会。不过在教学实践上,目前国内教授的基本是经过“阉割”的C,对于c语言比较复杂的地方比如指针,内存分配,宏等,都不做重点要求,少讲,浅讲甚至回避,重点还是放在C语言的基本语法上。这也是经过多年的教学实践,大家对于现实所做的一个妥协。对于初学者而言,面临的主要困难有2个地方:1, 如何用计算机的方式去解决问题,也就是设计计算机算法;2,学会并使用编程语言实现算法。对于编程者而言,前者最重要,后者不过是为了实现前面的目的而附带学习的技能。

      在有限的时间内(16周,2节(课堂学习)+2节(上机实践)),通过学习c语言而达到上述两个目标事实上是比较困难的。所以目前的教育者们通过减少第二项的难度来节省出时间来提高第一项的学习效果。所以大家虽然还是在学C语言,但在计算机专业出身的人来看,这个C并不是真正的C。

      这样的效果如何呢?我认为并不是很好,对于以后需要用到c的专业来说,比如数学,物理以及一些工科,这样讲得太浅,受得训练不足。以后需要的时候还得自己花时间学习。所以这些专业很多时候要求为他们单独开设c语言课程,提高难度和深度。对于其他的专业来说,他们花了很多时间学习c语言,其成果不过是帮助他们拿了个二级证书。对于他们的工作意义不大。这是因为C语言是一种很适合造轮子的工具,但是大多数人更需要的是把现成的轮子按照自己的要求组装成汽车的工具。造轮子不但需要很多时间,还需要很多很专业的知识和经验,光会个c语言是远远不够的,所以对于非计算机的人从头造轮子并不实际。如果学完c语言,却不学数据结构之类的课程,用c语言做不了什么有意义的工作。至于其他的很有用的工具,例如网络,文本处理,图形界面,图形图像处理等等,就更得寻找第三方的程序库了。c可以使用的程序库确实很多,但是关于这些库的学习资料却很少,即使有大部分也是外文资料,对于使用者来说非常不方便。事实上大多数人找都找不到。相比之下,一些高级的脚本语言,例如python,不但内置常用的数据结构作为语法的一部分,也提供了很强大的标准程序库,学习资料也比较多。所以从使用的角度来看,学习python,c#/java的效益比c语言高得多。

      从学习的角度来看,c语言即使经过阉割后,学习难度依然高于python,以及经过类似阉割的c#和java。主要是c语言语法太灵活,针对初学者的陷阱比较多。我见过相当多的学生即使写过比较多的程序后,依然有时会把“==”写作“=”,或者在case后面忘了写break,在臭名昭著的scanf上栽跟头的人更是不计其数。python的语法则很简单不易写错,还可以养成良好的缩进习惯,内置的数据结构更是十分的方便有用。而且同样地功能用python实现,即使不用库函数,代码行数绝对要大大少于c语言。所以现在我如果能用python,绝对不会用c++的。

      所以我觉得如果想做长线投资,可以考虑学c语言,虽然java/C#可能更好一些。对于楼主的情形,python足够了。你自己也许有足够的意志和C语言各种陷阱做斗争,学完c语言古怪的语法(对于初学者而言),3年级的学生会不会用这种意志就很难说了,对于这个年龄段的孩子,培养他们的兴趣比教他们知识更有价值。

      最后我再补充一点,c语言的学习对于计算机工作原理的理解帮助十分有限。我当年学c的时候,对计算机如何工作仍然不理解,直到学了汇编语言之后,我才明白c语言为什么要设计成那样,c语言程序是如何工作的。因为它们的对应关系十分明显。单学习c是不会有太大的帮助的。

      • 家园 报价报得脑仁痛眉头皱,结果

        下河看到这篇文章,读了下月色mm的程序,更痛了

      • 家园 我觉得不是搞IT的话,最适合的语言是

        VBA.

        特别是VBA+EXCEL,实用、直观。二者还能相互促进,不断提高,实现办公自动化,足以解决工作中的大部分问题,是办公室小白领手中的大杀器。

        • 家园 python入门有河友推荐MIT公开课

          VBA在excel的应用入门有啥推荐的不?

          • 家园 这得看你的具体状况

            如果对EXCEL和VB一点了解没有,那就得两手上。先深学一下EXCEL,再攻VBA,我推荐伍云辉的 EXCEL VBA办公应用开发详解,里面也有很多VB的语言介绍,例子也很多,还有光盘。

            如果了解EXCEL,还懂编程(其它语言也可以),上面的参考书也不错,可以直接通过录制宏来上手学习。

            伍云辉的那本适合任何水平的。

            网上社区的话,就是EXCEL HOME,里面有大量的资源可以使用。

        • 家园 很适合现炒现卖,当场学以致用

          工科男,只在大学学了C,工作也没做技术,没地方用。

          反倒是工作中有越来越强烈的数据处理偷懒需要。

          实际的需要产生了驱动力 。

          读了读excel的帮助文档,网上看了些文章,觉得VBA很不错完全可以实现我想完成的目标。算法很快就想好(其实真正日常应用的东西没什么太高深的算法)基本表达式不会就查文档,用到什么现看现套。

          不管表达是否规范,不管语法是否优美,只要实现我要的功能就够了。

          楼上有几位说的很有道理,C很经典很基础,但学的时间短或者浅的话,难以跟日常的东西发生直接的联系。

          现在回想起来,当时学C带给我最多的是了解计算机解决问题的方法,使我有了一个定性的认识,然后可以在合适的时候找到合适的工具参考帮助文档去解决问题。至于表达式,早都忘光了。我甚至记不清for后面括号里是用;隔开还是用,隔开。

分页树展主题 · 全看首页 上页
/ 14
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河