青少年学习编程的意义和方法
来源:文理通识EDU|作者:林瀚
林瀚博士
中山大学数据科学与计算机学院教师
中山大学ACM国际大学生程序设计竞赛教练
曾带队多次获得ACM国际大学生程序设计竞赛亚洲区金牌。
1.中小学生为什么要学习编程?
首先,未来社会,随着信息技术和人工智能的发展,越来越多行业的工作离不开编程。美国前总统奥巴马就呼吁:“如果我们想让美国保持领先地位,就需要年轻一代的美国人掌握这种(编程)工具和技术,它将改变我们所有的做事方式。”中小学生现在学好编程,能使自己拥有一项重要的谋生技能。其次,学习编程可以培养孩子思考问题的能力,逻辑思维、抽象思维和计算思维都可以学习编程的过程中得到锻炼。再次,在中国很多学生都是到了大学才接触编程,但这个时间对于多数人来说太晚了,以我们团队老师在大学多年从事编程教学的经验,除了少数很有天赋的学生以外,绝大多数到大学才学习编程的学生在大学毕
业时的编程水平远远比不上那些从中学甚至小学就开始学习编程的学生。因此在大学前学习编程是很有必要的,考虑到在中国,高中生高考压力较大,应该让更多的学生在小学和初中阶段开始学习编程。
2.几年级可以开始学习编程?
这是个因人而异的问题,取决于你抽象思维和逻辑思维的能力。以我们的经验,小学六年级及以上的学生来说,这两方面的能力一般是足够开始学习编程的;对于更低年级的学生来说,我们需要进一步的评估,但我们鼓励小学四年级及以上的学生均可以尝试。
3.编程入门应该选择哪门语言?
我们建议任何一门主流的编程语言(包括C/C++/Java/Python等)都可以作为编程的入门语言,因为他们都包含了一门编程语言的核心要素,学会一门编程语言之后,举一反三学习其它语言并不困难。如果你准备参加中学生信息学奥林匹克竞赛(NOIP、NOI等),那么你应该选择C++,这些比赛以后将只支持C++语言。实际上,在这些比赛中主要用到的是C语言和C++中的STL。
4.数学或英语要达到什么水平才可以学编程?
学习编程只需要有一定的抽象思维和逻辑思维能力,可以说对数学知识没有任何硬性的要求,但学习数学有助于培养抽象思维和逻辑思维,数学成绩好也往往说明你这两方面的能力较高,因而数学好的学生
学习编程往往也比较快。中文的编程入门教材和资料并不缺乏,因而编程入门对英语水平没有要求;但到更高级的学习阶段,由于英文教材普遍好于中文教材,英语阅读能力强将使你可以更好地在优秀的书籍中汲取养分。
5.学习编程对升学是否有帮助?
按目前各个高校自主招生的政策,在全国青少年信息学奥林匹克联赛(NOIP)获得提高组省级赛区一等奖能获得绝大多数高校的自主招生资格,每年都有很多学生因为信息学奥赛获奖而提前和清华、北大等学校签一本约(即高考成绩达到一本线就可以录取)。高考改革走在全国前列的浙江省也于2017年开始设置技术科目,技术科目有不少考试内容涉及编程。高中入学和初中入学环节,也有越来越多的学校希望招收会编程的学生。高中毕业后选择出国留学,可以选考编程的AP课程,由于当前各国都很重视编程教育,因而选考了编程AP课的学生在申请国外学校时也有优势。进一步地,编程水平高也非常有助于你在国外到工作,因为程序语言是全世界通用的。
6.女生是否适合学习编程?
和男生相比,女生学习编程可能既有优势也有劣势。女生通常比男生更细心和耐心,更“坐得住”(尤其在中小学阶段),这是女生在学习编程方面的优势。
劣势方面,有些观点认为女生在抽象思维和逻辑思维方面不如男生,所以学习编程也不如男生。我们先不评价这个观点的正确与否,但如果这个观点是对的,那女生可能在绝大多数的领域都不如男生,这样的话,女生可能更应该努力提升自己的抽象思维和逻辑思维能力,而学习编程正是提升这两面能力的一个重要途径。事实上,现在不少有较多女性从事的职业,如金融、会计、法律等,对从业人员计算机水平的要求正在不断提升。
7.如何判断小孩是否有编程天赋?
判断小孩是否有编程天赋最好的方法应该就是让他尝试编程。而且我们认为,学习编程,后天的努力比天赋更重要。
8.如何学好编程?
我们总结了学好编程的七个原则:
1)从实践中学习。编程应该注重实践,而不是仅仅靠看书和学习理论。
2)从案例中学习。编程应关注问题和解决问题的方法及程序,而不是将重点放在程序语言的语法上。
3)从错误中学习。学习编程应该拥抱错误而不是爱怕它们,因为你没发现和改正一个错误,你的编程水平可能就因此而获得提升。
4)从互联网上学习。IT技术是日新月异的,书本上的知识容易过时,而优秀的程序员都喜欢在网上提问和分享,在互联网上总能学到新潮的技术,也经常能够很容易地获得问题的答案。
5)从同学中学习。和你在同一班上学习的同学往往和你面临同样的问题,你碰到的问题他或者已经到答案,反之亦然;你们一起讨论交流,是一个高效的相互学习的过程。
编程课的作用和意义6)持续写代码。编程不是像游泳或骑单车一样的习得性技能,习得性技能一旦学会就不会忘掉,但编程的技能需要持续的练习,否则技能是会退化的。
7)经常提问。会提问的人是会思考的。学习编程的过程中不可避免的会碰到各种一时解决不了的问题,经常提出并记下你的问题,哪怕你暂时不到答案。
9.编程是否适合线上学习?
一般来说,线上学习好处有许多方面,它让你不用来到学校就可以在家远程学习,让你可以反复观看回放的视频加深理解,让你的学习记录可以方便的保存下来……。线上学习的缺点则主要在于同老师的交互不足以及学习的氛围不够。具体到编程学习上,我们认为编程学习,尤其是入门阶段,非常需要有老师帮你解决在初学编程中遇到的各种奇葩问题,因而我们会非常注重助教利用QQ答疑等在线辅导的环节,帮你解决这些问题,从而克服线上学习的不足。
10.学习编程是不是将来只能做程序员?程序员这个职业如何?
未来社会,编程很可能是很多行业都会用到的技术,熟练掌握编程技能可以让你在金融、会计、医疗、翻译、新闻等行业中更加游刃有余,生物学、社会学、语言学等各个学科的研究也越来越多的借助于通过编程来帮助进行数学建模、数据分析和模拟仿真等。因此,学习编程未必将来以程序员为职业,但肯定能为你以后的职业选择和发展提供更多的可能。程序员、软件工程师、数据分析师等职业目前以及在可以预计的将来都是供不应求的,因此他们的薪水不管在国内还是国外,也都远高于平均水平。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论