青少年高级语言编程入门-C语言实现-前言

前言

为什么要写这个主题

        按照惯例,这是一段吹捧这个主题和作者的话,不仅是给主题镀金,也是告诉读者,作者很牛,读这篇文章肯定没错。我也希望这样,奈何作者鄙人出生草根,实在对不起读者。但这个主题是我多年学习和教学经验的积累和总结,目的是希望帮助青少年学习高级语言编程和与从事少儿编程的教师做交流。

        上世纪80年代(1984年2月),邓爷爷提出计算机要从娃娃抓起,提出这个理念的时候,我还没转世。伟人就是伟人,高瞻远瞩。在90年代,准确的说是97年,那时香港回归祖国怀抱,大家都在迎接千禧年。我终于接触到电脑了,那时后上电脑课两个人用一台电脑,一人一张1.4M的软盘,用的是DOS操作系统,学的是WPS,也就学了一年,学的是什么都记不得,但这是我与电脑的首次邂逅。

        千禧之年,我进入高中了,QQ、网吧、Windows 2000,《第一次亲密接触》陪我们走过了高中。家门口通了3年多的火车每天准时的往来,班次越来越多,一个在云南农村的孩子渴望坐上火车到省城,甚至省外。这个愿望一直激励着我努力读书。我有个小学同学,初中毕业去读了职高,学的是计算机。从他那里,我看到了第一本关于编程的书-QUICK BASIC,我好奇里面的流程图,也仅仅局限于流程图,因为没条件上机编程。但编程这个概念一直深受的吸引着我的好奇,不知是对流程图还是编程的向往,我想去大学学计算机,里面的流程图和英语的编程语句,也激励着我用心学好数学和英语。

        也许是以上的两个激励,我如愿的坐着绿皮火车到省城去学计算机了。大学4年,一直爱好写程序。因为是计算机专业的,开的课也都与计算机相关,大一基本练习使用电脑,大四各种奔波,也就有两年算是高强度学习。C语言是计算机专业绕不开的课,之后可能就开设C++,Java之类的。大学的编程课,分理论课和上机课,老师在教室吧啦吧啦讲两节课,晚上上机实践操作。这个情节我现在想来,就像学一门语言,老师不断的讲,但不让你跟着讲,让你回家自己练习。

        学校官方开设了C语言和C++,后来自学过一段时间的Java,那时候Java是热门编程语言,然而半途而废。后来因为毕业设计,自学了C#,毕业设计就用C#做了一个局域网即时通信软件,可以文字聊天,传输文件什么的。毕业了,没有如愿的从事码农工作。而是去了保险公司做IT,做了5年IT,才知道我们为什么干不了码农,接触计算机太晚,学的不够深。做IT的几年,接触了oracle数据库,学了asp.net,经常用计算机处理一些数据和维护各种各样系统,也开发了一些小系统。

        之后的5年,去做了保险销售管理。为了续保管理,接触了开源的小黄豆CRM系统,为了让系统更符合要求,又学了JavaScript、ajax,与其说是学,我觉得是根据前期积累的编程知识和计算机应用知识现用现学。期间python语言火热程度一直居高不下,又花了一年的时间学了python语言。

        以上经历,也许是80后与计算机的一个缩影,是一个时代的印记。然而在毕业后的这10年,一直在零零碎碎的提升自己计算机方面的知识。

        这几年,信息技术和互联网已经改变了人们的生活习惯。除了BAT这些科技巨头的,越来越多的科技企业崛起。在大国重器播出后,自豪感爆棚。之后又陷入了深思,深思来源自己学计算机的经历,汉芯事件,中科红旗,然后到5G时代的华为,和最近的木兰事件。相比大飞机、高铁、航母这些巨无霸,芯片、基础软件、智能技术这些“小”的方向来说,也是未来的方向。然而在距离邓爷爷提出计算机要从娃娃抓起的30多年后,我所处区域的下一代还未开设信息技术课。

        随着计算机技术的发展和全球对未来一代计算机科学教育的普及和支持,给孩子提供了好的条件学习计算机技术。我希望能用青少年计算机技术(computer science)来称呼我们对未来孩子进行的计算机教育,而不是少儿编程。少儿编程更多的是教孩子一些编程中常用的逻辑,用这些逻辑来完成任务,用scratch教会做个动画,或者玩个游戏。而计算机科学,还需要进一步了解一些计算机的相关知识,比如了解常见的操作系统,了解编码,能熟练的使用计算机等,这些常识更普遍适用于未来的一代。

        为什么说现在的条件更适合开展青少年的计算机教育。代码编程对于学习者的要求比较高,而这些年崛起的基于图形化拖拽式的编程(scratch),也是目前少儿编程主流教学方式,在吸引孩子兴趣和易操作方面,大大的方便了孩子学习。越来越开放的全球协作编程环境,以GitHub为首的开源和协作平台,我们可以很容易的获取并学习优秀的源代码,甚至参与到项目的开发中。现在少儿编程处于风口,涌现出了一批少儿编程公司,然而行业中公司良莠不齐,也给青少的选择和真正的学习造成了困惑。

        2019年,我辞职开了一个信息技术服务公司,从事少儿编程教学和研究。像之前说的,我一直不想用“少儿编程”这个概念,我更希望用少儿计算机技术来称呼我从事的行业。在用什么课程,用什么工具,如何教孩子的准备上,我们足足花了半年多,期间也让我深入了解到处在风口上的少儿编程,基本都是基于开源的scratch来开发的,然后圈起来收钱,缺乏有公信力的机构和教育基金支持,整合国内外一流资源,为青少年提供优质的资源,像code.org那样。

        80后的经历,与计算机的不解之缘,目前从事的行业,让我更加觉得计算机技术在青少年中普及的重要。现在的条件,也越来越利于在青少年中普及计算机技术。

        在为青少年普及计算机技术的过程中,我们为青少年设计的课程中,从6到16岁,所学的概念都是差不多的,比如程序设计中的序列、分支,循环,算术运算,逻辑运算,函数这些概念,只是根据不同年龄用不同的方式实现罢了,用code.org的图形课程实现,用scratch实现并扩展,到最终的高级语言实现,都在不断的强化和扩展这些概念。就像我们从小学就开始学的”+“这个概念,一开始可能只是简单的同类数量相加,到后来扩展到各种各样的加,本质都是加,但应用的场景不一样,加的概念也就不一样了。我们在设计高级语言编程课的过程中,也借鉴了这种思考方式,把同样的概念用不同的方式表达实现。

        结合教授青少年C语言的过程,与我一直不断的学习和应用高级编程语言经验,我希望用一些生活中的例子来开展编程教学,同时用C语言来实现编程。同时以自顶向下的方式来教授一种学习高级编程语言的方法和技能。这些技能虽然用C语言来展现,展现的过程中有两条主线,一条线是从生活实例出发,另一条是通过编程的方式思考和计算机编程来解释或实现生活的实例,这些基础概念能让青少年快速学习一门高级语言。

        比起大V,各种IP。自身的草根经历,难免会有让大神贻笑大方的地方,也恳请手下留情,如果提出错误和不足之处,让我能不断迭代,进一步完善我们语言入门课,鄙人不胜感激。

你可能感兴趣的:(青少年高级语言编程入门-C语言实现-前言)