高校专业大揭秘 | 计算机(下篇)
文话童心隆重推出系列讲座——
“高校专业大揭秘”
隔行如隔山。某个专业未来的方向到底是做什么?孩子长大以后可能从事什么方面的研究?如果不是业内人士的话,很难了解。事实上,这样的困惑不只是在小娃的家长身上有,很多家庭到高中生高考报考志愿的时候都有这个问题。这些专业是做什么的?孩子能从小进行哪些铺垫?家长要想心里有数,就来听听专业人士怎么说吧~
COMP UTER
高校专业大揭秘
——计算机专业(下篇)
01
计算机专业是干什么的?
02
关于计算机专业的特色
03
我们的孩子应该从小需要具备什么样的素质
04
简单的聊一聊,学计算机专业可能会让你获得什么?
05
如何避坑
学计算机专业能让你获得什么?
那些你越早消除越好的误会
这个话题也特别重要,就是那些让大家尽量早点儿避开的坑,或者说是一些越早消除越好的误会。
第一个误解学计算机就等于编程、写代码,就等于出来做码农。是不是这样呢?不是的,编程是计算机的基本功,学计算机一定要学编程、会写代码,但是不等于只是编程,只是写代码。拿我的学生来举例,他们在研究国际上都非常前沿的课题。打个比方,如果说他们用一个月的时间做研究,可能其中只有一周甚至更少的时间在写代码。其他的时间怎么分配呢?前面会花一周的时间来理解这个问题,用一周的时间去设计、思考方法,用一周的时间写代码之后,再用一周的时间跑结果,并且分析结果,根据分析想到办法来改进,这是第一轮。之后会再来第二轮、第三轮……这样循环三、四个月的时间,甚至更久,才做出一个有意义的成果来。所以编程只是计算机专业的一个基本功,就好像写作文必须会写字、你需要一些写作的基础知识一样,但写好作文远远不等于会写字而已。
第二个误解是学编程会限制孩子的思路,让孩子变得失去创新性。我想如果大家听了今天这个讲座,就一定会觉得绝非如此。为什么会有这样的误解呢?是因为很多人觉得编程代码的语言规则都固定了,只能沿着这个规则去写。但其实你知道吗,解决同一个问题,用同一种编程语言,任何两个人写出来的代码都是不一样的。编程语言中的那些规则是什么呢?它们其实就相当于我们自然语言里面的词法、句法和语法。我们学中文,也要知道句子的结尾需要有逗号、句号、问号,有主谓宾这样的语法规定,学到更深的阶段的时候,你会知道我们的语句可以如何搭配,怎样搭配就不行等等。但尽管有了严格的语法规定,每人对同一个题目写出来的作文都是不同的。在编程语言里规定好的、固定不能改的,就是编程的语法,这个语法甚至只对这一种编程语言有效,就像我跟大家前面分享过的,我以前学的VB到后面的C到C++,到现在有时用python等,他们的语法都是不一样的。
当我把第一个语言学好,尤其是我后面把C语言的基础打好之后,我再学一个新的语言时只要一两周时间,就可以完全掌握它并去应用它来解决问题。我们学会了语法,才知道怎么样去写出好的程序来解决问题。而程序代码本身是非常个性化的,解决问题的思路也是千变万化各有千秋的。甚至在我的工作中,有时候我的学生们的思路和想法比我的还要精彩还更有效。
第三个误区是有人说计算机不就是工具吗?计算机这么普遍,所有人在大学里都可以选修计算机基础课,我学建筑可能也可以选修计算机课,我学经管也会用到计算机软件,干嘛还要专门去学计算机呢?但事实上,计算机的应用,以及研究如何更好地应用计算机,设计更好的方法,这些不等于计算机的使用。在很多其他领域,孩子们的爸爸妈妈们会用到很多软件,会用word、统计分析的软件、财务软件,图形处理软件等等。可是会使用不等于会计算机专业应用。如何使用一个软件或app其实并不是计算机系要教给大家的东西,我们在计算机专业中要学的是如何设计和实现这些软用或者app,让大家能够更好地使用它。就好像你可以选择住什么样的楼房更好?甚至可以分析说什么样的户型更合理,但是并不等于你会设计楼房一样。计算机专业学习和我们日常的以计算机为工具来做事情,也是类似会设计楼房和住楼房的差别。
最后一个误解,是很多人会认为女孩子不适合学计算机。这是我特别想跟大家分享,而且一定要避开的坑,这个误解太根深蒂固。当然现在也是一个现状,确实在我们系里面,男女生比例很不协调,男生是女生数量的好几倍。
我还记得在我参加清华大学招生组去某地招生的工作时,有一个妈妈,她女儿非常出色,跟我聊得特别开心,也可以有点小骄傲地说,我的人格魅力打动了她。于是那个妈妈跟我说,“老师,您就说吧,您是哪个系的?我就让我孩子去读这个系就行。”我就很高兴和自豪地说,“我是计算机系的呀,清华最好的系之一”。那个妈妈立刻楞住了,我看到她脸都红了 —— 你知道在这个年代看到一个大人的脸红了不是那么容易,因为大人已经非常善于控制自己的情绪了 —— 她非常尴尬,甚至有点儿结巴地说:“老师,这个对不起啊,我不是歧视您的方向……我呢,我就是觉得我们家是个女孩子,她可能学不好计算机,不适合学计算机。您看看除了计算机别的还有什么方向适合她?”
其实我当时心理挺受打击的,特别为这个孩子感到难过。那么优秀的孩子,全省排在前几名的,被自己的妈妈当面说她学不好计算机。我非常困惑,为什么人们觉得女孩子不适合学计算机呢?
后来我们也总结了一下,多数人首先是觉得女孩子编不好程序。我想告诉爸爸妈妈和孩子们,绝对不是这样。例如在清华大学,计算机系确实是最好的、考分最高的、也是最难的系之一。基本上从我读大学,就是20年前一直到现在,年级排在最前面的三个学生里面几乎总会至少一个是女生。其实我说的还有点保守了。20多年以来,有非常大的比例,很可能超过60%以上,年级第一都是女生,有些年级里甚至年级前三全都是女生。包括今年我做班主任刚带毕业的一届,2017年入学的,年级第一就是一个女孩子,她甚至带领着整个计算机系的超算队得了国际比赛的冠军!
所以说“女孩子不适合编程“完全不是这么回事,女孩子的细心专注和分析能力实在太适合编程了。我所在的研究组一直是国际上都非常好的,招来的也都是特别好的学生。记得在我读研究生的时候,我的师弟在那儿写着代码,就经常转过头来跟我说,“师姐你来帮我调调这个程序吧,搞不定了”。然后我就跑过去帮他去调程序。我们组当时参加信息检索领域最著名的一个国际评测,第一次参加就拿了第一名,而当时我们的队伍就是三个女生组成的:我,读博士,我的大师妹硕士二年级,另一个小师妹是刚入学的一年级硕士生。所以女孩儿不适合、学不好计算机的说法,是小看了女孩子们。
第二个原因是有人觉得学计算机太累。但其实在这个时代里,不累的工作很少,累不累还是取决于自己的追求。而相对不同的行业来说,计算机方向是相对工作环境相对更好的一个。你不需要在外面风吹雨淋,不像有的领域需要去工地的施工现场,或者到工厂里去,甚至不像一些文科要做田野调查。我们也有田野调查,其实是借用这个名字,做用户研究。我们的用户研究怎么做呢?我们发链接给用户说,请你做这个实验,然后我们直接从网上就可以收集到调查的结果,所以你有电脑就可以工作。未来我们其实会有越来越多的居家办公或者自由的工作场所,而计算机方向则是最适合以多变的工作环境去完成工作的领域之一。
总的来说,计算机是一个理工科的方向,在理工科里普遍女孩子会比男生少一点。但是我个人确实觉得它是很适合女孩子的,它不需要用到女性和男性相比体能上的弱势,反而能够发挥我们的很多长项。总的来说,这是一个有门槛的、靠实力说话的领域,所以只要你掌握的知识更多、能力更强,也就自然更能得到认可和尊重。
以上这些就是我想到的越早避开越好的一些误区:
第一,学计算机就只是写代码编程;
第二,编程会限制孩子们的思维的发展;
第三,我反正会用到计算机,那我干嘛还需要学它?
第四,女孩子不适合学计算机。
这些其实都是非常明显的偏见。在考虑未来的方向选择的时候,不要因为这些误区误导了我们的选择。最重要的就是你的兴趣和你愿意去迎接挑战和变化的时代、变化的任务,愿意去接受在这个不完美的世界里面,尽自己最大的努力让这个世界变得好一点点。如果你对计算机有兴趣,还有这样的期待和追求,那么选择计算机就没错啦。
提问
请问张老师如何看待现在流行的少儿编程课?且不说对将来学计算机专业是否有帮助,对提升孩子的能力,比如讲座中提到的理解能力、抽象能力、逻辑思维能力等是否有帮助呢?家长该选择让孩子上这种课吗?
回答
这个问题是很多家长朋友们考虑的问题,因为底下也有不少人问过我。我其实在最近的一两年里也好奇地让双双去试听过几节不同的机构少儿编程课,所以有一些体会。我对大家的建议是:
首先,事实上很多编程课大同小异,思路相对一致,他们绝大多数都会借助scratch这个平台。scratch是美国在前些年就比较流行的适用于儿童的模块化编程启蒙工具,是以所见即所得拖拉的方式来搭建程序的框架,我个人对这个scratch的框架是很认可的,很不错。
不同的编程机构就是在这个框架基础上设计不同的任务,有点儿像我前面提到的解决的问题。比如说设计一个任务,选择一个角色,让这个角色从一个地方往前走几步,取一个东西,然后再往前或者往别的方向走五步到达终点,中间可以说一些话,配一些什么样的音乐等等。这就是一个简单的编程任务了。通过这样的任务,让孩子感觉自己在做游戏,一边熟悉和尝试使用scratch这个编程工具,一边完成了一个程序,包括从开始到最后结束的一个完整的流程。任务一般会越设计越复杂,于是孩子运用到的一些编程的思想条件分支就会越来越多。所以,基本上我觉得总体课程设计大同小异。
那么这样又如何判断机构的好坏呢?我觉得大家在选择的时候,可以考察如下几个问题:
第一,选择一下课程的内容设置是否合理。如果大家不是计算机专业的人,怎么判断设置好不好呢?可以看看在教学过程中有多长时间是用来播放动画片。有时候动画片对吸引孩子的注意力引发兴趣来说是必要的,能够交代一个背景,把问题放在一个实际场景下,帮助理解问题和任务。但如果在一个课里,有1/3甚至1/2的时间都在播放动画片,那就不对了,就有点儿喧宾夺主了。
第二,就是看一下老师好不好,上课时是直接告诉孩子要怎么做,还是能够鼓励孩子有一些尝试和探索。这一点特别重要。当然在孩子学习使用Scratch平台的时候,需要知道要拖动什么,代表什么动作,需要被直接告知怎么操作,就像告诉一个从来没见过电视的人怎么用电视遥控器、不同的按钮是什么功能一样,这个没问题。但是在每节课去解决具体问题和任务的时候,他是不是限定死了你只能怎样做?如果老师说来我告诉你第一步怎么做第二步干什么,那就不太好了。还可以观察,老师是不是鼓励孩子试试看结果怎么样?哪怕他明知道哪里是错的。有没有启发孩子讨论一下问题可能出在什么地方?
第三,Scratch这种编程框架已经尽可能设计得让孩子容易理解和上手了,孩子更多的注意力会放在逻辑和流程设计上,而不是语法规则上。但是其实不同的孩子,他的思维发展能力是不一样的。如果你发现孩子在学的过程中,这个流程他不太能理解,他不知道为什么要这么做,而且即使讲了也不知道,讨论尝试也不知道,孩子甚至会感到烦躁、会过于郁闷——我确实曾经见到有孩子本来说起来还挺有兴趣的,但是学了编程课之后就彻底没兴趣了——那么这个时候就需要有警惕了,很有可能孩子的思维还没发展到这个程度。那么一定不要勉强,否则可能事倍功半,甚至起反作用。
如果前面的这几条考察都没有什么问题的话,如果孩子还有兴趣,而且越学越开心,那就不妨可以尝试一下。但如果觉得不是那么感兴趣也没关系,这其实不是一个非做不可的事情。在编程的学习过程中,孩子会训练如何把一个问题和目标转化成程序的方式来实现,孩子的抽象能力会得到一定的训练。但是在孩子小的时候只用这个训练还不够,我还建议在家庭的教育里面多培养一下理解抽象逻辑和分析。我在前面讲的时候尽可能用一些生活中的例子来说明,就是想告诉大家,这些能力真的不是一定要上编程课或是要怎样系统地学习才可以的,其实是在日常的聊天和生活中就可以得到训练的,这样的能力是爸爸妈妈们完全可以带着孩子一起去练习的。所以不用太焦虑。
最后,如果孩子到了五六年级或初中,确实思维发展到一定程度了,并确实对编程感兴趣,那就一定不要拦着他,可以让他去尝试编一些程序,解决一些真正的问题,当他发现自己的兴趣所在,那么确实越早产生兴趣就越能够接触到更多的东西,也会有越深的兴趣,形成一个正反馈。所以原则就是不要强求,根据孩子自己的情况顺应孩子的兴趣多加鼓励。
COMP UTER