作者 IT圈版主 明劼
所以这就开学了。昨天拿到我的课表,选的一门大学预科课程(AP)计算机科学基础。这门课本来是想直接考的,然而听同学说知识点挺多覆盖面很广,就选了——毕竟,花一年拿下总比装逼失败要好多了。
然而,我突然发现计算机课程的安排是这样的:第一年学习Java基础,然后五月考试;第二年学习Python基础,然后五月考试;第三年学习C++,然后五月考试。仔细思考,你会发现这种课的安排是非常不合理的。(这篇文章主要用来吐槽他们的安排)我作为一个对Web前端操作比较熟悉的人,JavaScript/HTML/CSS这种语言的工作模式和操作习惯我是再熟悉不过了。不过当你的老师突然扔给你一个Eclipse,还有一本字典厚的Head First Java,你除了一脸萌(Meng Bi)还能干嘛呢?为何不去让学生自己选择喜欢的课程,哪怕因为师资不够让学生自主学习,然后在期末进行考试?这样做可以让我们选择自己想要的发展方向——一个想要发展Web的学生,你把他的时间全部强制压在开发安卓App上,这不是相当于浪费时间吗?
还有一个点就是学习的深度:听别人之前跟我说过,有些非常厉害的大神能够精通数种,甚至数十种计算机语言。没错,学习多种编程语言必有前途,就好比你精通多国语言一样,不过注意前提是要精通。按照我们学校的安排方式,每种语言只让你学习一年,然后马上给你切换到其它的语言上,你能学多深?我仍然记得在初中时编程选修,学了一整年的Python,学到嵌套循环(还没讲完)就结束了。这种学习的模式,我觉得让我看半个暑假的Head FirstPython都比上这一年的课效率高。
不用对号入座——我的确有看到就在我们的社区里,有一些自称“开发者”的网友们可能只会打包一个网页,或者套用别人的模版生成一个程序,或者网址。别说写代码,读代码他们都不一定读得懂。在这点上,我可能会说连我自己都没有好好去学过HTML,不过我一直在实践中学习。和其它的开发者,特别是一些资深的开发者交流会提升自己很多很多。我的一位韩国朋友曾经在我写代码时跟我说过,有时候,在Stack Overflow(国外科技类问答平台)上搜索答案并自己改写可能会比看书更有用。这不代表做伸手党——如果你去这些平台上发一句类似于“如何用JavaScript实现图片的高斯模糊”这样的主题,真的不一定会有人理你。写出自己的需求,做一个大致的框架,才会有人真的去回答你,跟你探讨实现方法。
你看我又写偏了。标题的问题大家可能在进来前就知道我的回答了,要精,不能乱。但是毕竟是一门大名鼎鼎的AP课程,所以…… 他们总有这么安排的理由。相信大部分语言是相通的,知道了算法和实现方式,你就会发现学编程不难。我也可以这么说,你只要学精了一门语言,学其他的也就容易了。
从此,精通数十种计算机编程技能,不再是梦。