五千年(敝帚自珍)

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

共:💬209 🌺336
分页树展主题 · 全看首页 上页
/ 14
下页 末页
      • 家园 月色MM带起的东西正是IT届争论不休的东西

        什么语言好,国内计算机教育等等问题。这个一扯开就没完没了了。每个人的经历不同看法肯定是大相径庭的。我的看法其实有些偏激,如果你们去翻我以前的帖子,你们会发现我建议初学者从汇编开始。【原创】程序员的入门语言 我一直认为熟悉计算机解决问题的方式才是程序员趋向成熟的标志。

        对于初学者来说,任何语言其实都没太大区别(尤其对于成年的文科生)。也许解释型的Python会好一点。但几乎所有初学者都要经历让第一个程序跑起来的痛苦——打字错误、语法问题、陌生的开发环境等等。不管什么语言,这些东西对于一个完全空白的初学者区别真的不大。只有当我们掌握的两种以上的语言和开发环境,回过头来才能品味出其中的区别。而通常在那时候这些问题都不再关键。我们那时候更多地会关注这个语言实现什么东西会更方便——或者说更有用。但这个问题对于初学者来说还太早。

        有兴趣往下走的初学者还需要经历许多很基本的东西,比如敲入别人的程序或例题,让他们跑起来;学会使用基本的语法单元——表达式、数组、循环等等;学会用语法元素表达一个指定的过程;这期间还需要掌握初步的排错能力;这些东西其实所有语言都没有太大的分别。

        接下来到如何写出好程序的时候,分歧就十分严重了。然而在我的观点里,我只会说那些语言容易写出好的代码。没有糟糕的语言,只有糟糕的程序员。因此我认为更接近底层的C是一个不错的入门选择。我承认对于初学者来说C里面的指针是一个难点,但是谁能够说让初学者了解什么是对象比了解指针更容易?

        楼上说的阉割的C真是一个很精彩的词。其实何止阉割的C,大部分用Java的、甚至用Python也同样是阉割的(阉割了OO——所以不能XX)。不过C被阉割之后就真没什么用了,而其他的语言由于自身的库和语言特性还不至于惨不忍睹。所以现在职场中充斥着大量被阉割了而不自知的程序员。

        我之前提过一句所有语言都不好学,事实上支撑初学者走下去的通常只能是兴趣,这些兴趣在一开始的时候并不是搞出什么功能,而是——哇靠,终于正确运行了!有这些兴趣支撑,什么难点都有机会跨过。而C出师之后路就要宽很多。这就是为什么我觉得C是一门不错的入门语言。

        通宝推:刹那芳华,
      • 家园 我想你说的这些我是能理解的.

        就是C要真的用起来,需要深度研究,我这样的就比较难了...

        那如果是小孩子想学点编程,学了python,对他们以后深入学习编程有用吗?要培养小孩子这方面的兴趣,应该学什么怎么学呢?

        • 家园 VBA,这个最直观,容易上手,还实用。

          前提是你得有一定的EXCEL基础,对面向对象的语言有一个直观的认识。

          • 家园 这个主要是用来做什么的?

            能说说吗?

            • 家园 这得从EXCEL说起

              本质上EXCEL是一种功能强大的数据处理、统计、分析。内置有强大的函数,可以完成特别复杂的工作,不仅仅是简单的加减乘除,还有数理统计、财务、日期时间、数学、查找、数据库、字符处理等等。月MM喜欢玩债券,EXCEL里也有算债券用的函数。

              我是做期货的,我就使用EXCEL来收集网络数据、处理数据并把数据制成各成图表,如线图、柱图、散点图、K线图。

              但是呢,我每天在EXCEL上的工作很繁杂,但是又是重复的,天天用鼠标点来点去又很麻烦,有没有办法让重复的工作自动搞定呢,这就需要宏和VBA了。

              EXCEL本身自带有宏功能,就像录音机一样,把我们固定的要重复的操作录下来,只要用快捷键执行一次,就能把录下来的操作完全的执行一次,不管这个操作有多无聊,需要用键盘和鼠标多少次。如果你能看到宏的代码,你就会发现其实它就是一串VB的代码。如果需要个性化的操作,比如说修改一下参数啥的,就要修改其中的代码。当然,你也可以完全自己写出代码来执行对EXCEL的操作。

              VBA的本质就是以EXCEL为平台,使用VB的代码对EXCEL进行操作的编程语言。其语法规范思想同VB完全一样。

              如果你对面向对象的语言有所了解的话,EXCEL包括他的表格、单元格,行列等等都是对象,删除、复制、粘贴、计算、新建、插入、保存都是方法,函数当然还是函数,诸如此类,很好理解。

              这个语言的好处是好理解,在学习的时候,你完全可以自己先在EXCEL上乱弄一气,把你的操作用宏录下来之后,再对照一下宏的代码,你就知道刚才乱弄一气代码是怎么写的。在开发程序的时候也是如此,不用自己一行行的写出来,把操作先录下来,修改一下,加点变量,改改参数就可以了,非常方便。

              网上有很多EXCEL的教程,比如说VERYCD上,可以从关于宏的部分开始看起。

              • 家园 嗯,看来是实用类的,

                也想去了解一下了...

                大家告诉我这么多东西,我都想学,可惜只有一个脑袋一双眼睛...

        • 家园 python对深入学习编程当然有用了

          python可不是玩具,目前的应用非常广泛。mit那个编程的公开课也是以python作为起点的。学习编程最重要的是学习用计算机的方式来解决问题,用哪种语言学习起不到决定性作用,选一种简单易上手的语言可以把注意力更集中到要解决的问题上,而不是纠缠于语言的各种细节。当然想深入学习的话,光学一门python,到了某个阶段之后可能还得学习其他的语言,比如c/c++, java之类的。不过一旦入了门之后(掌握一种语言之后),再学习其他原理类似的语言也比较容易了。计算机软件行业是个高速发展的行业,指望一种技术/语言吃到老,那是不可能的。另外,我觉得现在的程序开发人员至少应该掌握一种开发高效的脚本语言(python/lua/javascript)和一种运行高效编程语言(c++/java/c#),从这个角度来看选择python作为起点是合适的。

          培养小孩子兴趣什么的我也没什么经验。python上手非常简单,基本的语法几天就可以学会。然后可以结合小孩子的兴趣或者他们学习的课程写一些小程序什么的。c的那一套教学方法拿到python上都可以,如果他们有更高的要求,利用标准库,python比c也更容易满足。另外给你个建议,小孩子模仿能力强,你费劲心思解释让他们理解,不如让他们动手做做说不定效果更好。开始讲语法前你可以让他们抄一段程序,然后结合这个程序讲一下语法,然后再在这个基础上教他们不断地改进增加功能。即使他们不一定完全能懂你所讲的,也可以让他们对编程有个直观的感受,破除神秘感,增强信心。语法什么并不是最重要的,通过阅读程序,让他们理解甚至习惯用计算机解决问题的思维方式更重要。

      • 家园 c最重要的是体现一种工程哲学

        c最重要的是体现一种工程哲学。许多人都知道c是和unix相伴相生的,c/unix搭配,体现了一种精神境界,或者说一种工程哲学。所以c是有内涵的。这一点其它语言都难以相比。

        培养小学生计算机科学,要看面向的目标是什么,如果面向的是网络程序员之类的普通IT从业人员,则c未必可取,如果瞄准Ken Thompson、Linus Torvalds那样的天才,那么c是非学不可的。

        楼主是从量子力学、相对论那边一路走过来的,您觉得到计算机这地界了,是该学c还是python呢? :-))

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


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

Copyright © cchere 西西河