初一学生自学编程学哪门语言好
各位 V 友好。
初一的侄子得到了人生第一部笔记本电脑,提出想学编程。本人圈外人事,不懂编程。所以想跟 V 友们咨询一下。
不知哪门语言适合初一学生入门,有什么书籍或在线课程推荐。
谢谢大家。
各位 V 友好。
初一的侄子得到了人生第一部笔记本电脑,提出想学编程。本人圈外人事,不懂编程。所以想跟 V 友们咨询一下。
不知哪门语言适合初一学生入门,有什么书籍或在线课程推荐。
谢谢大家。
别想太多
对于大部分人来说浏览器是最常用的,所以将浏览器自动化是个好主意,可以想一想有什么在网页上的操作需要更改,可以以此目标写 Chrome 扩展(JavaScript).
在这里推荐<一路编程>(Learning to Program)这本书,书中贯穿的项目就是写浏览器的扩展,针对的就是完全的新手,所以比较容易,由于作者本身不是科班出身,也是半路出家的程序员,所以他对教外行人编程很有心得.
如果他没有什么工作能够自动化,那么编程的话就比较困难,学习编程的话就比较困难,首先是没有太大的乐趣,然后是很难达到实用的水平.
如果只是要领略大概的感觉,那么学习比较出名的动态语言会非常好,例如 Python 和 JavaScript,学习的时候不要有压力,不要有太大的期待.
程序员的工作大部分依赖命令行,而不是 GUI,大多数的用户是截然相反的,能够认识到这点对于学习真正的编程非常有帮助.
一旦学了命令行,那么马上就有大量的工作可以自动化了,学习比较好的脚本语言是顺理成章的事情,对于后面的学习是非常有帮助的,如果最开始不会命令行的话,那么在 GUI 上自动化的前景就非常的困难和暗淡.
至于怎么样让他认识到这种文化我不太要清楚,因为之前也没考虑过这个问题,算是抛砖引玉吧.
比如说知乎上的那个轮子哥,他就是编程能力很强的人,在中学阶段就开始自己写程序了,这段时间的学习生涯,对于他学习数学以及后来从事程序员的工作应该是起了很大帮助的,他的个人经历可以在网上搜得到.
我认为他的这种经历是令人羡慕的,是值得去追求的.
当然前提是他是比较正常的小孩,而不是那种能够天天与枯燥的教科书和题目打交道而从不厌倦和休息的人.
我这里有个善意的提醒,虽然你的侄子主动的提出要学习编程,这个是很了不起的想法,作为成年人,应该尽力的去支持他.
但是期待不要过高,因为初中生的各项能力都有限,编程这件事情是很困难的,尤其是编写实用化的程序,可能这件事情比在班里考第 1 名难多了.
如果他决定不放弃要一直努力的话,请多给他几年时间.
如果他放弃了,或者最后没有编写出实用化的程序,那也是正常的现象.我相信即使如此,这段尝试也是很宝贵的经验和财富.
计算机系是大学中退学率最高的系,很多人就因为学不会编程而而转到别的系去了.[1]
而且即使是顶尖的大学,教授们对如何教授编程技能甚至编程技能,是不是可以被教授的,目前都感到很困惑.[2]
[1] Nearly half of students drop out of computing courses
https://www.rte.ie/news/education/2019/0213/1029434-student-drop-out-study/
[2]Ben-Menachem M . A philosophy of software design[J]. Computing reviews, 2019, 60(9):337-337.
小甲鱼视频教程
https://www.bilibili.com/video/BV1L7411T7gP?from=search&seid=17094679539197421857
廖雪峰博客教程
https://www.liaoxuefeng.com/wiki/1016959663602400
主要是简单。。。想搞界面编程也容易。一门语言打天下。
javascript 也挺好,但想玩好还得有不少其他知识。
因为像 C 这种语言的话是系统语言,当初它被发明出来是用来写 Unix 操作系统的,所以说是妥妥的为大编程而设计的.
它是尽量的模拟计算机的底层,用很精炼的语法对冯诺依曼计算机进行了刻画,写起来非常困难,如履薄冰.
如果所学的领域需要对硬件有很强的控制性,比如说对于性能有苛刻的要求,对于实时性有要求,那么选择 C 是非常好的,但是初中生大多不会有这样的要求.
很多人大学都学过 C 语言,但基本上学完就忘了,原因就是这样,因为大多数人的工作根本就用不到它学了也是白学.
C# 也是类似的东西,属于强制面向对象的语言主要是用来替代 C++ 的(或者说模仿 Java),主要用来在操作系统之上构建大型的复杂的程序.
中学生往往也不会用到.
除了上面所说的大编程往往用不到之外,还有就是大编程,所需的语言往往都是编译型的(C#算是半编译),这就导致反馈循环非常慢,也就是说做出更改之后是否正确,要等比较长的时间才能知道,而大多数的小编程语言都是很轻松就能交互式运行的(REPL,read-eval-print loop),这对于程序学习过程中的试错帮助非常大,尤其是对于没有老师的人来说.
推荐 JavaScript 和 Python 是最明智的选择,它们是这个时代最流行的脚本语言.前者主要用于浏览器,对于任何人来说都是用得到的,后者是数据科学的母语,现在的人工智能是由数据科学支撑的,所以也是人工智能最重要的基础设施之一.还有就是如果你关注新闻的话,会发现很多地方准备将 Python 列入中学生的课程,好像有的省份还准备要考试,也许他提前学会了,在某个时间点也许能用得上!
肯定是学英语
上面那些说什么 C 、Swift 、C# 的,还有说看什么组成原理的,那根本不适合啊,人家孩子又不是想要当程序员打基础,只是单纯想做一些尝试。
我觉得语言 Python 或者 Javascript 都挺合适的。重要的是对于编程思维的吸收,易得的成就感和对于算法,数据结构的理解。没有必要一开始就啃 C 这种硬骨头。
千万别从 C/C++开始
兴趣比别的都重要
最好跟着例子学习语法,不要直接看语法和数据结构,否则很快没兴趣了
可以问问你们班主任学校有没有组织这种班,一般都是选拔数学比较好的人去
在校理直气壮去电脑房还能参加比赛,如果拿到名次,还能保送重点高中(不知道现在还有没有这种说法),不更好?
1 、兴趣驱动的,就是先通过搜索引擎多看,觉得什么酷炫,然后依样画葫芦,别人用什么语言就跟着用,这种要真的自驱+能发现乐趣才行
2 、功利 /粗暴的,直接上 NOI 就完事了