七周学会做搜索引擎

别逗了!……什么?是真的?!

痛点

我在大学里开设一门《信息系统开发》课程,授课对象是信息管理专业高年级的本科生。

作为最后一门系统类课程,这门课需要大综合,就是把之前学到的知识都用上,做一个实际的系统出来。

系统开发需要进行多个步骤。规划、分析、设计、实施和测试维护。每当课程进展到了实施环节,就总会有学生来我这儿哭鼻子。

呜呜呜……

你怎么了?

我不会写代码!

怎么可能呢?C语言是必修课,许多学生还选修了Java和ASP.Net。如果你不会写代码,C语言课你怎么过的?

学生每到这个时候都很坦诚——背下来了,就考过了。

背下来了?!这是编程好不好?绝对的实践类课程,你背了管什么用?我的三观受到了强烈冲击,立即感到脑缺氧。

学生这时候往往还不忘给我伤口上撒一把盐——“比思修还难背,考完就忘光了”……

许多学生刚开始学编程还有些新鲜感。但是如果遭遇到挫折,会立即选择四散奔逃。问题在于,他们第一门接触到的编程课是C语言

语言

计算机语言有高级语言和低级语言之分。如果你觉得高级语言好,低级语言不好,那就大错特错了。二者实际上是一个连续光谱上的两端而已。

最低级的语言只由0和1构成。计算机看得懂。人要想看懂……反正我是不去尝试的。

高级语言计算机看不懂的。开发者用着越舒服,这语言就越高级。如果电脑能听懂和执行人话,那它就在使用一种非常高级的语言。

天底下没有免费的午餐。语言的“高级”也是通过权衡换来的,牺牲的东西叫效率

如果你要设计的东西效率优先(例如操作系统或者导弹防御系统),那么应该选择低级语言。否则还是选择高级语言吧,别折磨自己。

小测验:C语言是高级语言还是低级语言?

别背了。我知道那本非常流行的教科书说它是高级语言,但它其实是披着羊皮的狼而已。

C语言有指针。指针可以直接对内存操作,可控性高效率也就高。可是缺乏计算机体系结构知识的学生学起来却一头雾水。

C语言是计算机专业的必修课合情合理。因为这是计算机专业毕业生吃饭的家伙。如果你用的是iPhone,其中大部分的App都是用C语言的一个变种Objective C写的;如果你用的是Android,那么手机操作系统是C写出来的。

可是信管专业的学生编程应用是哪些?开发个网站系统,做数据分析和数据可视化。C语言真的用得上吗?就算用得上,非得统一设置为编程入门课吗?

有没有适合非计算机专业学习的编程入门语言呢?

借鉴

MIT之前数十年都采用Scheme(Lisp语言的一个方言)作为6.001计算机导论课程的入门语言,培养了许多计算机科学界的优秀人才。

选择这门语言就是因为语法极其简单,半个小时就能讲完语法,后面专注介绍编程的思想。

这语言看起来很奇怪,满屏幕都是括号。

可是一旦你真正掌握了Lisp语言,那就是科技竞争中的核武器啊。《黑客与画家》中,格雷厄姆提到了他们公司自己的案例,那简直就是在碾压和欺负用其他语言的人们。

后来,MIT教学团队采用新崛起的Python语言替代了Scheme (Lisp),给学生的编程学习提供了更加无障碍且充满乐趣的路径。

为什么MIT不用C语言作为学生的编程入门课?MIT计算机系的教授不懂C语言吗?还是MIT的学生天资不足,难以学会C语言?

自己琢磨吧。

现在的程序开发,大都采用“搭积木”的方式。开发者会大量采用其他人制作的模块或者函数库。一种编程语言,如果有很多人用,社区就会更健康和强大。你使用这种编程语言,手头儿就会有更多类型的积木,会比其他人更好更快地搭出一个符合需求的系统。

如果你来了兴趣,打算学Python。如何入手呢?

课程

Udacity平台上面有一门课很受学生喜爱,叫做”Intro to Computer Science”。主讲者是弗吉尼亚大学计算机科学教授Dave Evans,曾荣获弗吉尼亚州的大学教师最高奖。

2013年,我学了这门课。课程介绍很简洁——“七周时间,从小白到会写搜索引擎”(意译)。

搜索引擎?!

Google是个印钞机,它的成功让人们对于搜索引擎开发羡慕而又觉得遥不可及。这门课的最大贡献就是破除了迷信。如果一个毫无计算机常识的初学者可以通过七周的学习掌握构建搜索引擎的基本方法,那这种技术还有什么神秘可言?

虽然不是初学者,但是我之前并不掌握Python语言。

我反复听过Page Rank的概念,但是从来没有真正深入了解甚至实践过。

而且据说Udacity平台的证书可以帮助学生在硅谷找工作哦。

我开始了尝试。

该课程根据MOOC的理念从头设计。2-3分钟一个单元,随时都有可能蹦出来问题。大多数问题直接在视频停止的截图上给出选项或者文本框要求回答,把教学和实践的互促过程设计得非常紧密。

课程里面还穿插介绍了很多有趣且实用的科技史知识,开阔了学生的眼界。

七周的时间里,这门课不仅介绍了Python作为结构化语言部分的基础数据结构,还让学习者自己从头用Page Rank算法搞了个小型搜索引擎出来。

最为贴心的是,所有编程环境都在线上提供,学习者只要拥有一个浏览器就行了。

尽管学生做出来的这个搜索引擎实用性并不高(想跟Google竞争市场还差得很远),但是——太有成就感了!

2014年的1月,我拿到了课程的证书。至今我还记得那种喜悦,那是一种眼见得汗水化作了收获的奇妙感觉。

延伸阅读

数据科学相关文章合集(玉树芝兰)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容