现在小学阶段学scratch编程这种,值得去学习么?

  • 星欣我心
    本来对这块也是毕竟模糊的
    不过现在因为奥数竞赛被抑制,编程学习感觉热起来了

    我是儿子在学校报了兴趣班(每个人每学期选择一样兴趣,如 足球、写字、绘画等,我挑了编程),现在是四年级
    然后学的是scratch,毕竟图形化的。儿子虽然学了点,但是感觉玩的目的更大(网易咔哒里有很多小游戏)

    这学期琢磨着是否要学点网课。学而思网校里面是phyton,但更多是scratch。
    我一朋友的女儿大我儿子一岁,是五年级,他说女儿报的编程班是C++,现在信息技术竞赛都是比C语言
    我这朋友的理念,虽然现阶段学习更多会选择奥数,但是对以后没用。编程学学以后都可以继续提升

    然而我对计算机这块不是很懂,网校我看scratch学习的是最多的,好像没看到学习C++的
    对此也是有点迷茫,是否该学学?
  • h
    huzhiyangqaz
    我建议学 c,适当培养编程兴趣,有天赋的话走竞赛路子
  • k
    khunter
    五年级,逻辑思维能力还没有完全建立起来,学C++有难度吧
  • h
    huzhiyangqaz
    scratch 这种对编程技能的提升毫无帮助,不如学 c 一步到位,之后再学其他编程语言都比较轻松,而且 c 也不是很难

    其实我觉得比较适合教学的编程语言是 pascal,语法很严谨,也不像 c 那样那么依赖难理解的指针,但现在教 pascal 的似乎不多了
  • B
    BigBangBang
    20年后,编程还是现在工作模式吗?
  • 小螃蟹
    一定要php或者Python起步。比这个弱的都是玩具。
  • s
    somesun
    没锤子用
    培训班骗钱的
  • s
    shiningplus
    别听楼上某些人瞎扯,千万别学c或者c++,我强烈不建议任何非计算机系的人学的第一个编程语言是c或者c++。

    ==================================================================================
    不推荐c或者c++,有以下几个原因

    1. 我在读大学计算机系的是,老师介绍c语言,第一句话肯定是说c是中级语言,意思是这门语言并没有高级语言那么高级抽象仍然涉及一些计算机本身底层知识,譬如指针。有一本很有名气的教材csapp(深入理解计算机系统)就是用c语言来辅助讲究计算机结构。严格的说没有对计算机堆栈等基本知识的理解,就根本不能对指针理解透彻。对于非计算机专业的人一开始是要享受编程的乐趣,而不是纠缠在一些计算机底层的一些知识。

    2. c本身是旧时代语言,有很多过时的设计,从.h头文件设计,甚至连字符串都没有一个完整的实现。推荐一个初学者接触的第一个语言是一个连内置字符串都没有的 编程语言吗?

    3.对于现代绝大多数计算机编程,大多数已经都不用c或者c++开发了。c乃至c++也就占据需要涉及到计算机底层以及需要榨干性能的场景,譬如嵌入式开发,游戏开发等等。

    我同时也不推荐java入门,因为java的核心就是面向对象,对于刚入门的人,面向对象只会加重理解负担。

    我一向推荐初学者python,然后跳过所有面向对象等等的高级特性。

    [本帖最后由 shiningplus 于 2019-3-12 15:28 编辑]
  • 血拼一族
    展开讲讲
  • J
    JustusHitler
    因为难度大啊,学python吧
  • h
    huzhiyangqaz
    什么理由?我很好奇

    c,pascal 这类传统面向过程语言有着非常严谨通俗易懂的语法,编程过程中所有内容都能自己控制,有想法很快就能写出来实现,对于学习算法,培养兴趣,锻炼逻辑思维能力再好不过了

    第一门语言直接接触 python 这类的现代脚本语言才是大忌,对将来计算机竞赛和更深入的学习毫无帮助
  • c
    copper641的马甲
    民工从小开始培养??
  • h
    huzhiyangqaz
    你扪心自问,到底是 c 简单还是 python 简单?

    c 才几句语句?都十分基础,数据结构也十分简单易懂

    python 面向对象的抽象思维你怎么跟小孩子去讲?多态,鸭子类型怎么解释?迭代器生成器这种坑怎么让小孩子去理解?

    python 远学比 c 难得多好么
  • f
    fadeaway
    想要996吗
  • a
    adds
    五年级学c++太跳了吧
    C我觉得可以,简单实在
  • s
    somesun
    其实我不建议无关的人过早学习编程,
    因为没有必要,学了也不会带给你所谓什么逻辑提高,这种能力本来就在那里,你有的话本来就有,就算大学毕业学编程也很容易

    学编程的唯一理由就是解决问题

    你得先有问题,再谈学习
    说实话,仅从学习语言来说,什么语言并不重要,除了c++确实比较难,其他语言都差不多

    但你如果是抱着学习语言的目的,90%可能你坚持不了多久,也做不出任何东西
  • s
    shiningplus
    不推荐c或者c++,有以下几个原因

    1. 我在读大学计算机系的是,老师介绍c语言,第一句话肯定是说c是中级语言,意思是这门语言并没有高级语言那么高级抽象仍然涉及一些计算机本身底层知识,譬如指针。有一本很有名气的教材csapp(深入理解计算机系统)就是用c语言来辅助讲究计算机结构。严格的说没有对计算机堆栈等基本知识的理解,就根本不能对指针理解透彻。对于非计算机专业的人一开始是要享受编程的乐趣,而不是纠缠在一些计算机底层的一些知识。

    2. c本身是旧时代语言,有很多过时的设计,从.h头文件设计,甚至连字符串都没有一个完整的实现。推荐一个初学者接触的第一个语言是一个连内置字符串都没有的 编程语言吗?

    3.对于现代绝大多数计算机编程,大多数已经都不用c或者c++开发了。c乃至c++也就占据需要涉及到计算机底层以及需要榨干性能的场景,譬如嵌入式开发,游戏开发等等。

    我同时也不推荐java入门,因为java的核心就是面向对象,对于刚入门的人,面向对象只会加重理解负担。

    我一向推荐初学者python,然后跳过所有面向对象等等的高级特性。
  • J
    JustusHitler
    c比较底层,光学语法数据结构很难让小孩产生兴趣,没有正反馈小孩马上就腻了。python这种开箱即用,集成很多api,很容易有产出,比如我写几行代码就能做爬虫,能给人正反馈不无聊。而c这种太底层了,学了干点什么事都很麻烦,不如python这种有乐趣,更容易让小孩产生兴趣。
  • 柳河
    现在流行函数式编程,c不适合了
  • h
    huzhiyangqaz
    我觉得你方向偏了

    学生阶段,特别是小学生,学习编程并不是为了之后去开发网页开发应用,而是和学奥数一样,作为一个提升逻辑思维能力的手段

    简单讲,小学中学的编程教学,都是偏向竞赛,培养学生逻辑能力的,教的也大多都是数据结构,算法,图论方面的知识,学这些东西,语言支不支持字符串并不重要,毕竟用不到

    同样的,初学者抛弃面向对象,学 python 有什么用,这样只是学个皮毛,连囫囵吞枣都不算

    我比较推荐的是用 Arduino 之类的单片机引入 c 语言的学习,既能培养孩子的动手能力以及对 ee 学科的兴趣,也能提升编程能力,特别是对计算机硬件原理可以有个整体的理解,比学 python 来搭网页,搞图像识别这种花里胡哨的应用更适合小孩子入门
  • h
    huzhiyangqaz
    这些是实打实的基本功,开始时不学,以后肯定会吃苦头回过来补课的

    用 Arduino 之类的引入,自己搭建设备,正反馈明显的多

    python 你觉得好学,是建立在已有知识基础上的,你用 python 写爬虫,得了解 http 协议,了解数据库,了解 html,css,这里面没有一个是简单的,你说小孩子上手能弄明白么?而且学这些对小孩子逻辑思维能力的提升有帮助么?

    小孩子学编程不是为了应用,而是和学奥数一样为了提升逻辑思维能力,这个你认同么
  • f
    fruitluffy
    作为一名中学信息学奥赛教练,完全同意你的说法。
    我的建议是六年级暑假开始C++,兴趣保持python。
  • f
    fumeflow
    会了思维 后面就算编程变了 也是最会编程的人最先适应新的环境 而不是完全没学过编程的人 是吧

    学了知识和思维终归不是错的
  • f
    fumeflow
    c一样可以做很多有趣的事情

    比如算前年5月2号到今天一共多少天、旋转个矩阵、做个矩阵乘法什么的

    这些python占不到便宜(除非用直接出结果的库函数)

    再深入一点 做背包等有趣的问题 NOI这种里面肯定有很多有趣的算法题的

    [本帖最后由 fumeflow 于 2019-3-12 17:09 编辑]
  • m
    masterfish
    其实马上c++20就出来了,由于module, concept已经成为语言标准,c++已经和过去完全不同了,现在学的c++基本已经过时了。
    还不如先学python,等需要更强功能再学全新的c++
  • m
    masterfish
    全新的c++有字符串类型,可以用auto来定义变量,有模块,有range,已经和以前的c++面目全非,和python越来越近了。
  • 双面胶
    很好,学个python一步到胃,毕业直接工作么?
  • c
    chachi
    python语法糖太多,太多省力的方法。对原理的理解有害
  • s
    shixn
    你把Python当c用不就完了

    那些高级牛逼炫酷的特性可以不用啊。。。
  • b
    b0207191
    编程语言我建议你不要开始:

    Java和C#是类似的语言,它们非常强调面向对象编程。虽然这对于专业软件工程师来说非常好,但这是初学者不应该处理的额外复杂程度。
    C和C ++也被软件工程师广泛使用,但也有一个陡峭的学习曲线。它为程序员提供访问的低级编程量非常适合编写效率代码,但不如初始语言那么好。
    Perl是一种脚本语言,如Python和Ruby,但它的语法有许多快捷方式,针对想要使代码简洁的专业程序员。因此,对于查看代码示例的初学者来说,Perl代码很快就变得难以理解。

    PHP专为制作Web应用程序而设计,它增加了孩子必须学习的几个先决条件(例如HTML)。此外,还有一些针对语言设计的争论点。 (但是,对于Web应用程序,它确实具有温和的学习曲线。)
    Visual Basic用于快速生成Windows的GUI应用程序。您无法使用它为Linux或Mac制作应用程序。它也比游戏更适合商业应用。请注意,“Visual Basic”与“Basic”不同(尽管语言类似。)
    基本已死。 Basic有许多不同的变体(例如QBasic,DarkBasic,BlitzBasic,SmallBasic,Basic-256等)但是每个变体都有糟糕的文档或小社区,这使得查找资源更难以了解它们。与Python不同,Basic只是一种学习语言,而不是软件开发人员实际使用的语言。
    帕斯卡比基本更死。
    HTML和Ajax不是编程语言,任何人都说“HTML编程”或“HTML编程”很困惑。 HTML是用于设计网页的文本格式。 Ajax是一种JavaScript编程,可以使网站更新页面内容而无需刷新页面。这些都没有教给初学者编程。
    TI计算器编程非常有限。跳过它。
    游戏创建工具包或游戏模型绕过了学习游戏所需的大部分知识,但是使用这些工具包可以制作的游戏范围通常是有限的。此外,在一个游戏创建系统中开发的技能通常不能转移到其他系统,甚至不能转移到一般的编程。
    Logo和Turtle历史上用于通过计算机绘制有趣的图片让孩子们进入编程,但现在已经过时了。 Scratch是Turtle和Logo的下一代形式。
    Lego Mindstorms提供了一种通过制作机器人来学习编程的有趣方式,但是这些套件通常很昂贵。然而,Lego Mindstorms并不是一个糟糕的介绍。
  • V
    VODKA
    你先搞清楚一件事:小学生学编程的目的并不是要去做软件开发。。。。。

    人家只是要开发一下智力,拓展逻辑思维好不好,c语言这种面向过程的语言对小孩逻辑思维的培养更有好处。。。。。

    所以俺的观点和你正好相反,就是要学c语言,而且带着硬件学,arduino什么的,玩嵌入式更有趣。。。。。

    本帖最后由 VODKA 于 2019-3-12 18:25 通过手机版编辑
  • k
    kives
    为什么不学swift,ipad上下个应用就可以开始学了
  • 蓝色的鱼
    游戏而已,不要当真,而且学程序重要的不是具体的语言,而是逻辑思维能力,只注重具体的语言学习而不重视逻辑思维能力的锻炼,就是本末倒置
  • 血拼一族
    想了想,还是delphi吧,没有太多语法糖,图形接口所见即所得,有完整的类型系统。
  • a
    adrftgyh
    还不如学易语言,或者写按键精灵脚本~~

    似乎大部分人都是把孩子当程序员培养???

    给小孩玩玩的东西罢了,弄那么认真干嘛?真的打算全民程序员?
  • 纸杯
    那么哪里有得学
  • j
    jianghutong
    小学喷了,还不如送去踢踢足球打打篮球
    从小培养做宅男么?
  • 星欣我心
    Posted by: HUAWEI ALP-AL00
    各位的回答都够专业,虽然我看得有点云里雾里,但是非常感谢。
    我初衷也是让孩子先有点兴趣,掌握初步的一些知识。毕竟小学时期,还是语数外更重要些。
    让他周末空闲玩下scratch,五六年级再接触python保持兴趣吧
  • y
    yang_yii
    小学其实多参加体育运动才是真的。
    编程的本质是对事物的抽象,小娃娃心智不成熟,社会认知少,能做到什么程度?
    学编程不像学写作文那样,掌握套路就能出像样的作品。学编程核心的是学调试程序的能力,这其实没必要过早让孩子学。
    从某个角度来说,小学阶段学奥数比学编程靠谱的多。
    当然现在天才小孩也多编程学习热。一定要学的话,强烈推荐学比较新的高级语言。各类脚本语言 > java/objective-c > c/c++
    没有必要拿c语言去为难孩子,光一个include stdio.h就给孩子说不清楚。
  • 离人最近的神
    我准备教小孩python,简单实用
    scratch 那套,跟玩乐高或MC没啥区别,我家孩子都已经玩得很溜了
    Unity3D 不支持python,我还在想要不直接学C#做马里奥玩
  • t
    titians
    我朋友程序员,好像就是让他儿子去学这个了。最近还去北京参加了比赛。有兴趣的话还是有点作用的吧。
  • 焚岚
    我现在就在进行Swift Playground的儿童编程教学,苹果在iPad上准备了一系列的入门教程,学习编程1,2,3涵盖了各种基础概念,Swift很好,而且不会出现scratch那种之后还要重新学一门代码的困惑,直接平滑过渡到移动应用和苹果体系应用的开发。
    作为开发者我推荐从这个入门,上限很高

    本帖最后由 焚岚 于 2019-3-12 21:37 通过手机版编辑
  • i
    isis520
    求问,直接C++吗?不从C开始??
  • 秃猫
    我儿子二年级的时候去青少年活动中心上过一段时间scratch,但是发现他听不懂,特别是涉及到函数,变量之类的概念,对刚学加减法的孩子来说还太难理解,如果作为编程的兴趣导入,我更推荐乐高的编程,从简单到难都有,还和各类传感器结合,也有实物,孩子更容易接受。
  • q
    qqsunan
    小孩子搞搞javascript就行,写油猴就现学现用
    楼上一堆简直了..
  • z
    zenodante
    千万别在小学学什么c,更别提c++了,语言特性是其次
    主要那些老师都是sb,这两个用的好,上道的,还用得着当这个老师?

    c和c++是具有巨大威力的核弹,有了指针你无所不能,让一个小朋友一上来就学这种东西就像小儿持利刃,没啥好结果的。

    安心学scratch,结合微软的平台玩玩bbc micro:bit。这个阶段绝对不要碰c系
  • z
    zenodante
    这些人懂啥c++,c懂的都没几个,能把c faq讲清楚的有几个
  • z
    zenodante
    c完全是失控的,你可以用goto,你可以乱飞指针,可以用switch加if else造出各种类goto的妖孽,没有一个好的引导小朋友的整体思路就完蛋了。
    先从scratch开始,写写游戏,然后python,有了基本素质再上c来理解底层,对照着汇编学的话,更有奇效,后面你用啥就都随意了,反正素质有了,啥锅都能用