python】小朋友要学编程,先教什么编程语言好?

2020-03-26 15:45发布

我妹妹今年一年级了,想让她去学编程,可是不知道先学什么,Python她这个年纪能接受吗?

我妹妹今年一年级了,想让她去学编程,可是不知道先学什么,Python她这个年纪能接受吗?

2条回答
给你三个亿
2楼 · 2020-09-08 09:36






说说我自己的经历。211大学,光学工程研究生毕业,和程序猿完全不搭边。

毕业后进了成都某国字头研究所,在行业里摸爬滚打了四年,2018年机缘巧合在家养病,开始了编程自学。选择编程的原因很简单:成本低,一台电脑足以;见效快,没有实体行业的周期流程,马上就能看到效果。

于是乎就下定决心要学Python,想法很单纯,就是把这门语言学好。殊不知这才是一个巨坑的开始。

2017年10月,开始了Python学习。有同学要问了,**为啥是Python?**说来也简单,因为Python火啊:人工智能战胜那谁谁了,Python写的程序;朋友圈里有人分享Python的培训课了,号称最易学的语言;某程序猿用Python写了脚本,爬取100G的羞羞的小图片…我一个零基础自学党,哪经得住这般凶猛的攻势,**只需要简单易学这一个理由,**就乖乖臣服在Python的脚下了。

总有技术大神自我感觉良好,觉得Python这也不行、那也不好,不如淘汰了吧。**我觉得你完全是站着说话不腰疼。**一种语言能够流行,一定有它的历史定位;就好像国家要发展技术,但也不能所有人都当科学家吧,没农民伯伯你还要不要吃饭了。

开始时总是痛苦的,即便是最简单的语言。2017年8月~2018年2月,零零散散的学习了Python的语法、基础知识。把当时看过的、浏览过的、买过的资料罗列一下:



Django官方文档:官方文档有一个快速上手的实例,新手可以跟着做一做,但实际上Django的官方文档不太适合完全形态的小白,更适合一定水平之后的查阅。



廖雪峰的官方网站:廖大的教程算是我的Python启蒙了。完全为小白准备,浅显易懂,由浅入深,非常推荐新手从这里起步。



《Python基础教程》:可以反复阅读的入门书籍,但是又比廖大讲的要深,要有耐心看。



《Python核心编程》:着重点为Web编程的基础教材。是激起我Web开发兴趣的一本书。



《流畅的Python》:这本书也很厉害,非常深入的剖析了Python的关键特性、底层实现,但是毫不枯燥,甚至读起来是相当有意思的,帮助开阔视野。



《PythonCookbook》:类似新华字典一样的存在,需要用到哪个模块,像查字典一样去查阅本书就可以了,不用通读。虽然我从来没去查过。



《笨办法学Python》:英文名LearnPythontheHardWay,很多人认为是入门圣经的一本书,然而这种只顾结果,不管过程的方法我实在是欣赏不来,最后快速浏览完了。见仁见智吧。



《利用Python进行数据分析》:Pandas大佬写的,肯定对数据分析理解很到位的。稍微有些枯燥,但绝对是学习数据分析的好书。



《Python数据分析与挖掘实战》:偏重用实际项目进行学习的类型,看着比上面那本要有意思些,适合自律能力不强的同学。



《用Python写网络爬虫》:教你如何在网上爬取各种羞羞的小图片的书…还不错,需要一定基础知识。



《Python自然语言处理》:处理自然语言,相当有意思的方向,可惜我时间完全不够,就看了一点点。



《深度学习》:学习人工智能的教材书。基本都是统计学的知识,专业度很高。



**那段时期我相当的迷茫,并不清楚应该用Python干什么,甚至不知道学了有没有用处。**直到2018年2月的时候,看到了这本:《跟老齐学Python:Django实战》,才惊喜的发现原来Web开发才是我的菜:啥数据分析、人工智能、语言处理,我这种粗人还是不要去碰了。这本书我翻来覆去看了4个月,期间除了正常的生活耗时,几乎所有空余时间都在学习。

其他看过的相关资源在这里:



LayUI:**很好用的前端框架。**因为不懂前端,所以需要LayUI这种开箱即用的框架快速开发。与Bootstrap有点类似。



追梦人物的博客:这位兄弟写的Django教程非常的实用,适合零基础学习Django的同学。后来我斗胆在自己的博客上写Django教程,也是受了Django先驱们的影响。



《Bootstrap实战:从入门到精通》、《Bootstrap入门经典》:Bootstrap也是后端程序猿的神器。简单易学,你甚至可以直接在官方文档Copy代码,运用到自己的项目中,以至于书籍的作用都不太大了。



《轻量级Django》:*不推荐。*书中知识点很零散,新人看肯定会一头雾水,老手看又不太有用。



《Django架站的16堂课》:*不推荐。*和上面那本类似的问题,不如老齐那本精辟。



虽说是打算一心奔着Django开发去了,但是一整天都集中精力、只学一种东西是很难的,至少我的毅力支撑不下来。而且当时也有一种奇怪的想法,觉得现在大家都用手机上网,光学个PC端的技术行不行啊,不如学下Swift吧,做个自己的app挺有意思的。

**于是我刚从Python的迷茫中爬起来,又迷茫在编程语言的汪洋大海中了。**学Swift看的书有如下:


《IOS开发指南:从HelloWorld到AppStore上架》:很厚的一本书,知识点讲得很细,可是我却没有耐心看完。另外Swift更新得很快,书里的有些代码在我这里跑不起来,更加打击兴趣。

《疯狂Swift讲义》:这本书实际是后面才买的,没来得及看,据说不错,姑且列在这里参考。


心浮气躁的结果就是Swift根本就没学好。没事儿,还有时间继续学。

好在另一方面,在2018年8月15日,我的个人网站成功上线了:


能够发布各类文章,上传并处理图片;可以微博登录,也有消息通知;能建立分享我喜欢的书籍,用到了雷达图、地图等可视化工具;甚至还捣鼓了HTTPS安全链接。老实说我是相当有成就感的,毕竟是自己的孩子一样,中间的艰辛只有自己懂。

可是当完整的架设个人网站后,才明白自己那点可怜的前端知识太不够用了。

那怎么办,试着学一学呗,学习才是程序猿的天性。但是又实在不想像学习Python一样从基础学起,可以说心态已经崩了。考察了一些流行前端框架,最后选择了Vue.js,还是老原因:**比较容易上手。**于是又陷入了瞎tm看资料的毅种循环:


Vue.js官方文档:Vue的优点就是中文文档相当的顺滑,讲得也比较容易懂。英语不好的同学可以放心了。

《Vue.js实战》:偏实战的教材,顺带还讲了些搭建前端工程的内容。


但是前端哪有那么容易学的,尤其是我这种门外汉。曾想过用前后端分离的形式重构我的个人网站,因此还学习了DjangoRestfulFramework,搞来搞去还是没明白如何把Django和Vue揉到一起去,作罢。好在这些知识也不是白学了,了解了前端工程、Webpack以及其他一些概念,至少能看懂大佬们在网上骂的是些啥意思了,挺好。

Django暂时够用,Vue、Swift又学不动,不学点啥又觉得浪费时间,蛋疼。2018年9月的一天清晨,我花了五分钟时间思考了一下人生:不行,怎么着还是得学一门静态语言,不能总被大佬们嘲笑吧。但是要学也得有个动力吧,于是又开始新一轮折腾:学习C#编程的Unity3d。总之还是不想学C#基础,太枯燥了我会吐的,不如直接学Unity吧,跨平台的特性又满足了我之前做手机app的追求,多好。

于是从2018年9月至今,我都在看这本:《Unity5实战:使用C#和Unity开发多平台游戏》,同样是没日没夜的学。这本书非常对我的胃口,也是偏重开发项目的,跟着学能做出一个FPS的3D游戏来,特别有意思。其他还看过、买过的资源还有:


Unity官方教程:Unity的官方视频教程,其中的入门游戏非常值得一看,可以对Unity有基本的了解。

《Unity5.x:从入门到精通》:官方工具书,印刷很精良,也是字典一样的书。

《Unity3D\2D手机游戏开发》:这本刚买还在路上,好像也是侧重做项目的,姑且列着。


Unity又激起了我学习的乐趣,看着自己写的脚本居然能编程游戏运行起来,真是很有意思,如同当时Django一般初恋的感觉。所以我在想程序猿是不是都需要新知识刺激一下,才能保持兴奋的头脑。另外C#也是越写越喜欢,总有一种严谨地做工艺品的感觉。当然我这种不学基础、逆练武功的做法一定有碰壁的时候,这个时候再回过头去学习C#的基础就没有那么抵触了:


《零基础学C#》:非常基础的入门读物。


花了3天时间就把上面这本书看完了,这在1年前是不可想象的。我终于理解了,原来编程真的是不挑语言的,编程思想是通用的,之前所有的碰壁,终究变成了内力一样的存在。期间还顺便看了下《node深入浅出》、《了不起的node.js》,了解一下这个神奇的前后端通吃的语言。


**回过头来看,1年时间这么多东西能看完吗,我是不是有毛病。**但是当我真正被海量信息疯狂灌注时,甚至觉得是快乐的,总比不解渴的小水管强吧。有句话说的很对:程序猿就像好奇的猫,追着毛球的线头玩,最后一个毛球在脑袋里搅浆糊。可是根据我的亲身经历,当猫也没什么不好。

时代变了。编程语言终究只是一个工具,而工具一定要备全才行。先学锤子还是先学剪刀,真的没有那么重要。

重要的是你必须时刻保持前行。



ann
3楼 · 2020-10-20 09:31


随着时代的发展,人工智能等走在时代前沿的学科,正在被一点点简化,并融入到少儿教育中,这其中最具代表性的非少儿编程莫属。从小接触编程、系统地学习编程知识,对于孩子大脑的开发、编程思维的提升非常有帮助。

适合儿童学习的少儿编程语言有哪些?大多数孩子接触编程,都是在学龄阶段以图形化编程为切入点,然后逐渐过度到Python、C++等编程语言的学习。所以今天小贝老师着重向打大家介绍Scratch和Python这两种使用率最高的少儿编程语言。

 

首先来说Scratch。

Scratch是一款可以制作游戏、动画、工具的图形编程。简单地说,Scratch能够通过有限的命令、代码块,输出各种、甚至无限的可能,一旦掌握了Scratch,孩子们就能自由自在地挥洒它们无限的创意,享受创造的乐趣。而且Scratch编程的操作自主性非常高,不像学科辅导,需要通过老师一题一题的教导来完成的。在Scratch编程学习的过程中,老师更多承担的是辅助的角色,通过引导式教学不断启发孩子的思维,充分释放孩子们的想象力和创造力。

Scratch是一种用解构和重构世界的数字化工具,学习Scratch对孩子的思维模式的完善有很大帮助。未来AI的发展,会让很多职业消失,孩子们需要掌握用数字化的思维去理解这个世界,这样才能和AI交流,控制AI来辅助自己高效的处理事务,而不是被替代。

接下来我们再来说说Python。

少儿编程的教学难点在于用儿童理解的语言向孩子们传达编程内容。Python简单易入门的特点,对于孩子们来说十分友好。比起C语言、C++来说,Python更容易被孩子们接受,而且更具亲和力,容错率也更低。基于上述特性,Python非常利于孩子们良好的学习编码习惯的养成。 

值得一提的是,Python有更多的拓展素材,更多的拓展素材意味着孩子们可以利用Python做更多的事,完成更多的高级任务,实现完整应用程序所需的各种功能。等到小朋友们逐渐具备少儿编程这种计算编程能力之后,他们自主学习的能力和理解能力将会得到极大的提高。

很多家长在给孩子选择编程课程的时候,都会多多少少存在焦虑的心态,其实大可不必,因为少儿编程重点不在于学习编程软件的使用和编程语言,而在于思维的锻炼。让孩子在愉悦的学习环境中,尽情的将自己内心的想法表达出来,通过项目制的学习方法,掌握分析问题,解决问题的能力,才是学习编程的意义。


相关问题推荐

  • 回答 1

    可以试下在cmd命令行执行,编辑器中对turtle的支持度不是很好。

  • 回答 6

    人工智能是一门起步晚却发展快速的科学。20 世纪以来科学工作者们不断寻求着赋予机器人类智慧的方法。现代人工智能这一概念是从英国科学家图灵的寻求智能机发展而来,直到1937年图灵发表的论文《理想自动机》给人工智能下了严格的数学定义,现实世界中实际要...

  • 回答 7

    代理ip网址http://www.goubanjia.com/http://www.ip181.com/https://www.kuaidaili.com/python 环境安装requests库安装bs4库proxies设置代理服务器地址proxies = {'http':  'http://61.155.164.110:3128'}http://www.goub......

  • 回答 2

    要求:用户正确输入用户名和密码便成功登陆,分别有三次机会输入用户名和密码,超过3次便锁定分析:用两个while循环即可,代码如下:user_name = Brettpassword = 1314i = 0n = 0Is_exit = False  #进入循环标志while not Is_exit:User_name = input(please ...

  • 回答 2

    MacOS设置环境变量path的完全总结  一、MacOS加载bash shell 环境变量的加载顺序   mac 一般使用bash作为默认shell,Mac系统的环境变量,加载顺序为:1、系统级别的/etc/profile                                              ...

  • 回答 4

    当你运行代码的时候,需要你指定闹钟的时间,然后闹钟就会在指定的时间想起来。电脑pytho加载time模块,获取此时此刻的时间:import timet = time.localtime()print(t)时间是以字典的形式出现的。从字典里面提取时间信息:now = time.strftime(%H %M, t).spli...

  • 回答 5

    在几千条数据中有正负数,筛选出同一供应商下正负数相加为零的数据,正负数相加有可能为一正一负相加为零,也有可能是一正多负,也有可能一负多正,总体是将可以所有正负数相加为零的数据标注颜色出来。excel论坛上说计算量太 ...可以用pandas来处理...

  • 回答 2
    已采纳

    import sqlite3p = sqlite3.connect(file:memDB1?mode=memory&cache=shared, uri=True)p.execute('CREATE TABLE tbTest (fld1, fld2)')p.execute(INSERT INTO tbTest VALUES ('fld1', 'fld2'...

  • 回答 8

    向一个对象数组里面添加新的属性var arry= [{a:11,b:22,c:33,d:44},{a:11,b:0,c:0,d:44},{a:11,b:22,c:99,d:99}];var arry2=[];arry.map(((item, index)=> {arry2.push(Object.assign({},item,{mess1:item.c,mess2:item.d}))}))cons...

  • 回答 2

    我觉得getTopWindow() 应该是他自己写的函数 mask  应该是getTopWindow()函数中 return 出的一个什么玩意show()  jQuery的显示

  • 回答 9

    如图所示

  • 回答 12

    1、原型对象也是普通的对象,是对象一个自带隐式的 __proto__ 属性,原型也有可能有自己的原型,如果一个原型对象的原型不为 null 的话,我们就称之为原型链 2、 原型链是由一些用来继承和共享属性的对象组成的(有限的)对象链...

  • 回答 6

    使用VS code对JS进行Debug,需要安装一个插件,这个插件是根据你所使用的浏览器来的,不同浏览器对应插件不同,以下是插件对应情况,下载完相应的插件以后还要下载一个live server在浏览器下查看你界面运行效果,记得在到设置里修改下live server的端口号,然...

  • 回答 8
    已采纳

    没有基础,是可以学Java的,在网上也能找到很多免费的视频、学习资料等资源,只不过想要光靠自己摸索学透Java并不容易,最好是找一个比较靠谱的有实训的培训机构。不过,我给你点建议:1.脑子里要有编程思维,2.学习态度要有,3.了解了基本概念后,从图形界面...

  • 回答 7

    假设文本框的id=text1js:document.getElementById(text1).value = 测试;//即可

  • 回答 2

    这两个事件都是在js原生开发时经常会用到的,比如需要对页面dom进行动态处理,这时就需要用到DOMContentLoaded和[removed]事件,大家都知道,就是在dom构建完毕后,才可以对dom元素进行操作,否则会获取不到相应的dom元素,但是DOMContentLoaded和[removed]还...

没有解决我的问题,去提问