《机器学习》 第 1 章 绪论 读书笔记

西瓜书 周志华 2016 年 12 月第 14 次印刷

1.1 引言

机器学习:利用经验来决策

1.2 基本术语

根据数据是否拥有标记信息分类:

  1. 监督学习 supervised learning
    • 分类 classification
    • 回归 regression
  2. 无监督学习 unsupervised learning
    • 聚类 clustering

1.3 假设空间

假设空间指的是所有跟问题相关的假设所组成的空间,学习过程是从假设空间中进行搜索,目标是找到与训练集「匹配」(fit)的假设。

在这么多的假设中,可能存在一些假设,得出的结果和训练集一致,这些假设组成的空间叫做「版本空间」(version space)。

1.4 归纳偏好

对于数据集中没有出现过的情况,算法可能会按照自己的偏好来预测结果,这种情况称为「归纳偏好」。为算法选取偏好时,可以使用「奥卡姆剃刀」原则,即有多个假设与观察一致,则选最简单的那个。但是什么是最简单的也需要仔细思考。

没有免费的午餐定理(No Free Lunch Theorem, NFL)

  1. 在所有问题出现的机会相同时,所有的算法的期望性能相同。
  2. 任何一个算法都有表现好的问题,也有表现差的问题。
  3. 针对具体的学习问题研究算法。脱离具体问题,研究什么算法更好毫无意义。

1.7 阅读材料

其他科学研究中采用的假设选择原则
古希腊哲学家伊壁鸠鲁 「多释原则」:保留与经验观察一致的原则。


每周分享第 1 期

这里记录过去一周,我看到的值得分享的东西,每周六更新。

新闻

1、伊朗迷你裙消亡史_手机网易网
历史居然可以导流……

2、欧盟GDPR有多狠?未合规的数据处理活动或将被叫停! - 大数据 - DBAplus社群——围绕数据库、大数据、PaaS云,运维圈最专注围绕“数据”的学习交流和专业社群 关于 GDPR 你需要了解的一切 - 少数派
最近收到很多跟这个相关的邮件

3、2018互联网女皇报告中文完整版呈现!

4、如何评价ry(Ryan Dahl)的新项目deno? - 知乎
这个新闻关键不在于这个新的项目,而是在于国内和多的开发者在项目的 Issues 页面灌水,引起其他人的反感。

工具

  • Kanbanist | The Missing Kanban Board for Todoist
    前几天还在考虑如何将 todoist 与看板结合,也看了一下 todoist 相关的 api 文档,之后在网上搜索时就发现了这个产品。功能还不是很强大,不知道作者什么时候可以完善。

文摘

1、 大学的双休日应该如何充实地度过? - 知乎
这一个回答是我见过关于大学如何渡过比较好的解释,希望还没有毕业的同学可以不辜负四年。

你如果找准了目标,自然自己会有一个答案。每个人只要认准一件事情好好做下去,最后的结果不一定会差。虽然我自己是走传统路线的学生,GPA+英语+竞赛都稍微拿得出手,但是其实我并不喜欢现在的自己。其实你发现,除了顶级大牛,大多数大学所谓的好学生,其实都是一个模子刻画出来的。国家奖学金(其他综合奖学金)+90左右的均分+各类学科竞赛+各类荣誉称号+各类传奇的社会经历活动等等。当然,本科毕业后,人生不会太多波折,但是回首望去,这样的本科未必真的是自己想要的本科。

2、前几周加了民科微信群(不知道有没有人还记得当年发现电荷不存在的“民间科学家”),很难理解他为什么会这么执迷不悟,下面这一段话大概可以解释一下。

一个人不需要做什么惊天动地的大事,但是对自己做的事情必须有认同感,如果做学术的自己都觉得自己在灌水,理由是身边大多数人也是在灌水,那么我不明白我为什么要去做它。

3、哪些经济学论文让你发出「脑洞才是第一生产力」的感叹? - 童话李的回答 - 知乎
生活处处皆皆学问,从篮球比赛中的「手感」出发,抽象「这个球命中概率是否与下一个球命中概率正相关」,然后去统计数据研究,最后给出下面的结论。

The belief in the hot hand and the “detection” of streaks in random sequences is attributed to a general misconception of chance according to which even short random sequences are thought to be highly representative of their generating process. (一小段完全随机的结果,却被认为对整体有很高的代表性。)

4、我的5个经济学思维 – 左岸读书

折现、机会成本、边际效用递减、沉没成本、复利

图片

1、以 GDPR 为背景创建的图片
以 GDPR 为背景创建的图片

视频

1、2018 4 18 德云一队新街口剧场《朱夫子》高峰 栾云平 - YouTube

金句

1、坚持读书,坚信自己可以读完一些东西,坚信自己可以承受读书的强度——无论读的是什么,这过程本身就是一种信念,并且这份信念会让我们抵达心中的目的地。

2、许多时候,我们身处信息传导的末端。当一个问题反复多年都没有解决方法的时候,就应该怀疑是否信息上游的路径已经锁死?可能在你自己原有的知识体系和知识框架内并不存在解决方法,无论耗费多少时间和精力都不能解决问题。那么,这时候应该考虑迁移到其它陌生的领域中去,也许,你要的答案早就放在那里,只是你一直没有发现而已。你的问题,也许对那个领域里的人而言,只是他们工作的一个副产品,甚至都不会太在意。——和菜头

3、所有的科技公司,解决的都是人、信息、物品三方之间的关系。简化来说:谷歌解决的是人与信息的关系,亚马逊解决的是人与物的关系,Facebook解决的是人与人的关系,微软,解决的是企业人的问题。 ——如同答辩老师对我所说,做硬件才有意义。

4、元认知是对认知的认知。元认知是自省的能力。一个人能够理性的反思自我,自然就会知道许多麻烦,并非是外界的存在,而是自己暴戾所引发的。执迷于无知,甚至以无知为傲骄,才是最可怕的贫穷。

5、我觉得大多数幸福的人的生活就是这样的,没有什么高大上,也没有那么多的风花雪月,而就是这样简简单单、快快乐乐地用自己的努力和自己心爱的人一起为更美好的生活脚踏实地地奋斗着。

6、当一个学生从某一所知名大学毕业后,他不需要再把母校的名字天天挂在嘴边;当一个学生从一所二三流大学毕业后,那所学校今后会因为曾经出了这样一个学生感到自豪。这样的大学经历就堪称完美了。——快要离开学校时,思考自己的价值。


月读|软技能——代码之外的生存指南

本月推荐的书是 John Z. Sonmez 写的《软技能——代码之外的生存指南》。本书作者之前是一名程序员,目前更多的是充当程序员的人生导师角色,通过博客、播客、vlog等多种形式介绍自己的软技能,借此希望能推动其他人事业进步,过上更充实的生活。

本书总共分成七大篇:

  • 职业篇,介绍了程序员从公司选择、面试、工作、辞职、创业等职业相关的方方面面内容
  • 自我营销篇,从博客开始,打造自己的个人品牌
  • 学习篇,作者自己领悟的「十步学习法」学习新的知识
  • 生产力篇,自由职业者的自我管理方法
  • 理财篇,探讨收入、投资、债务以及退休等问题
  • 健身篇,下面的图片就是作者本人,和一般的程序员形象有很大的区别
  • 精神篇,心灵、情感等问题探讨

作者博客

从上面的介绍可以看出,这本书基本上把一个程序员可以面对的所有问题,都给囊括了。从形式上来看,这本书像是各种主题的博文合集,有些散乱。总的来说都是关注于「更好地经营生活」。

自我营销

这一个主题是书中我最感兴趣的内容。知识付费的兴起,朋友圈中经常能看到有人分享付费课程的图片,图片中的老师各种头衔酷炫狂霸叼咋天,自我营销的成本真的是已经低到一种程度。万物互联,每一个人都有一次成名的机会。

本书中的自我营销,介绍了一系列的过程,作者推荐个人品牌的建立从博客开始。对于程序员来说,维护一个自建博客是很轻松的事情,而且可以分享的内容也很广泛,工作中的技能学习、遇到的问题分析。将博客当成自己的名片,从而实现让更多的人认识你,认可你。

书中介绍维护一个博客,要从两个方面入手,一是内容质量,二是更新计划。之前,自己的博客都是随心所欲的更新。重新思考一下,给博客增加了几个栏目:

  • 【每周分享】:每周六不定时更新,记录过去一周,我看到值得分享的内容
  • 【月读】:每月不定时更新,推荐本月我阅读的一本书
  • 【数字生活】:我的数字生活实践
  • 【博客公告】:分享与这个博客维护相关的内容

另外一方面,对于我这样的博客来说,最主要的流量来源是搜索引擎,所以花时间进行了一些 SEO 优化。通过在百度搜索和谷歌搜索相关页面提交网站,实现文章更快的收入。除此之外,需要在社交账号中更多的绑定博客,寻求其他的主动点击。

生产力

这个主题,是我大半年以来一直感兴趣的。之前没有注意到,像作者这样的自由职业者更应该是效率大师。其实各种效率方法流程大致相同,更多的是细节的实现。作者在做周计划时,倾向于利用看板来展示任务,这个给我一个新的启示。我考虑过利用 Github + Zenhub 来管理一些大的项目,不过平时没有什么动力打开 Github 网站。

Github Issues

所以,需要一种更加简单地方法。网上查找了一下,发现一个网站 Kanbanist | The Missing Kanban Board for Todoist。Kanbanist 最大的优势是能直接读取 Todoist 的数据,用起来会更加方便吧。不过,如何融合进入日常工作流中,又值得我自己仔细思考一下。

Kanbanist

总结

读这本书,最大的感受是读到很多点的时候,我都打开了电脑进行实践。功利地说,这是一本实用的书,推荐大家有空都来挑选自己感兴趣的内容阅读。


博客折腾记:使用 Travis CI 自动部署

前几天,看到其他人在 V2 上讨论利用 Docker 更新 hexo 博客。不过自己对使用 Docker 不是很感兴趣,倒是了解到 Travis CI 的作用。

参考使用 Travis 自动构建 Hexo 到 GitHub | Zthxxx’s Blog使用travis-ci自动部署Hexo到github和coding - 掘金这两篇文章,完成了博客自动部署的修改,也解决了一些,之前没有在意的问题,写下来备忘一下。

介绍一下与这个博客先关的 git 项目。博客相关的原始文件放在 xiang578/blog,主题文件放在 xiang578/hexo-theme-even: A super concise theme for Hexo(我对这个主题有一些修改,所以自己 fork 了一份,最后发布的文件放在xiang578/xiang578.github.io: Welcome to My blog!(实际上这也是一个备份,访问时的文件是从 coding 服务器上读取的)。

按照上面两篇博文配置好 Travis CI 之后,每次向存放博客原始文件的仓库 push 时,travis-ci.com 都会拉取代码进行 build ,成功之后会出现下图。

之前都是使用 git clone 下载主题的,如果把本机上的博客相关文件直接推送到 github 上会遇到问题。简单地说就是一个 git 文件夹包含了另外一个 git 文件夹。所以,需要使用 git modules 来解决。通过这种方法可以在 clone 主仓库时,会自动clone子仓库。

博客仓库中会链接到其他仓库,其中 @ 之后的那一串就是 commit 编号,主要是用来做版本控制的。

完成这样的设置,修改主题文件后,需要先将修改 push 到主题的仓库,然后在博客文件夹下 push 修改到远端仓库。最终,才能再网页上看到修改效果。


月读 | 数学之美

其实从《数学之美》这书名上看就可以知道,这是一本科普类的图书。这本书收集吴军博士早期发布在谷歌黑板报上解释搜索相关的数学原理的文章。吴军博士之前在谷歌和腾讯都从事搜索相关领域的研究,自然而然的有很多独特见解。除了这本书之外,他还有《浪潮之巅》、《大学之光》等科普图书,也是值得一读。

虽然是科普类读物,但是本书还是有一些阅读门槛的。大二的时候也看过这本书,当时的数理基础不够,囫囵吞枣翻完后。事后大概只记得自然语言处理、马尔科夫链等等的名词。这一段时间正好自己也在做文本搜索相关的工作,所以又从图书馆中借来一读。

本书大概介绍了 Google 整个搜索引擎的基本框架,包括资料获取、分词、索引、排名、分类、相似度计算等知识。这一次读完之后,印象最深刻的是关于从通信模型推导出语言翻译模型的转变。这里和大家分享一下我的简单见解,如果想要更加深入的理解可以阅读《数学之美》的第 5 章 隐含马尔可夫模型。

大二的时候上过《通信原理》这门课,其中讲解如下图所示的简单通信系统。一般包括五个最基础的要输,分别是信源、变换器、信道、反变换器、信宿。从字面上很难理解这些东西是,所以简单的解释一下。通信系统是对通信过程的抽象概括,比如你和其他人发微信时,你就是信源,信息的发送方。变换器的作用是编码,计算机只能处理 0 和 1,所以需要将你的消息通过一定的方法(协议)转化成为由 0 和 1 组成的序列。之后的信道指的是信息发送的通道,可以理解为发送微信时需要有网。反变换器顾名思义作用和变换器相反,从一个二进制序列还原成和你聊天的人(信宿,和你聊天的人)可以理解的消息。

当时学到这里的时候,没有去发散思维,思考这个模型在其他领域的应用。《数学之美》书中,讲到统计语言模型时,将它衍生到机器翻译的过程中。在日常生活中,我们和其他人交流的时,一般是在脑子中有一个想法(信源),然后在说出来(编码),声音在空气中传播(信道),最后被另外的人(信宿)听到,并且在脑子中思考理解(解码)做出相应的回应。对于翻译问题,可能我说出来的是中文,如果听到的是美国人,他需要将你说的转化为英文。所以产生的一个问题是,如何实现将中文与英文对应起来,也就是翻译问题了。为了解决这个问题,科学奖们运用了贝叶斯概率、隐含马尔科夫模型、大数定理等数学知识来处理。

这只是书中的一个简单例子,吴军博士在自然语言处理与搜索领域的经历令人难以望其项背,书中关于这两个领域在近代的发展的小故事比比皆是,作者更是和这些人谈笑风声。所以,我推荐所有对数学有爱好的人,都可以看一下这本书,感受一下数学原理的力量。


利用 GTD 原则完成一次讲座

前几天,在导师的邀请下,给17计算机班的同学们进行了一次分享讲座。内容大概是关于去年在滴滴实习时做的一些工作以及主观意愿下的大学学习建议。作为一个号称实践 GTD 的人,必不可少的要将 GTD 原则使用到这一次分享准备过程中。

自然式计划模式

这样子的一次活动,正好符合 GTD 中关于项目的定义。《搞定1》第 3 章中提到了「控制项目:纵向管理项目的5个阶段」。现在结合五个阶段,来复盘一下我准备讲座的过程。

1. 定义目标和原则

你为什么做这件事?
做这件事的真正目的或动机是什么?
做到什么程度才算是成功?
你的目标是否足够清晰明确?
什么样的行为可能会损害我正在进行的工作?
我怎样才能防止这类情况的发生?

我决定做这一次分享时,主要有下面的4方面原因。

第一,整理。每一次分享都是一次自己我反思。所以我需要整理一下之前在滴滴工作时留下的资料,以及梳理前几年的学习感悟。
第二,演讲。说句实话,我的演讲的能力很弱。体现在,口齿不清楚、演讲时语速太快和听众没有交流。众所周知,演讲能力是现代社会必不可少的一项能力。提升演讲的关键在于实践,所以给其他人讲解我熟悉的内容正是一次绝好的机会。
第三,回馈。虽然私下里和其他人骂过很多学校和学院的规章制度之类,但也不能忽视学校所提供给我的成长机会和空间。之前书记也在一次党会上说过,我们很多党员的材料中,只有那一年考了多少名,又获得什么奖这些的,没有和群众交流。
第四,参考。作为一个软弱的人,我很少会去谈给其他人有什么影响,也不会整天去批评这个那个,只希望自己的经历给其他人一个参考。所以,我很喜欢学院里面搞的《榜样的力量》栏目。通过这些,可以了解到学长学姐有多么努力,获得了什么样的成就。事实是,我们这样的普通学校中,很多优秀的人都已经模板化了,集中在绩点多少高,获得过什么奖学金,当过什么部门的什么而已。真正的大学教育,应该培养的学生达到「千人千样」。

2. 展望结果

成功是一番什么景象?听上去会怎样?有什么感觉?专注!创造出清晰可见的结果。只做积极性思考,不考虑不利因

对于我个人来说,这一次分享是一次宝贵的锻炼机会。是实践 GTD 原则,是完成一次公众演讲,也是完成一次和学弟学妹的交流。不过,由于个人经历的限制,我所分享的东西,终将是少数同学所感兴趣的,只希望这部分人听到我的一些观点,未来的学习会有那么一点点不同。也许多年之后,互联网上有一段文字记录,提起那个晚上我所讲的观点。

3. 头脑风暴/集思广益

在这张的纸的反面的正中央写上项目名称,开始头脑风暴。追求数量,不求质量,不判断,不质疑,不评估,不批判。
不要急于分析组织。1)目的?2)害怕什么?3)我所不知道的?4)有哪些不利因素?

上面写了这么多,终于到了最关键的一步。由于这是一次个人分享,所以也谈不上什么集思广益。不知道现阶段有没有什么头脑风暴的工具,我直接掏出几张草稿纸就开始搞了。上面的介绍也提到了,头脑风暴的原则,将大脑中的想法排空,为下一步工作做准备。

头脑风暴

4. 组织整理

在完成头脑风暴之后,我开始使用幕布来整理之前想到的想法。上图中蓝色的对勾就是在整理时的记号,标记整理到大纲中的内容。最后导出一张思维导图,到这里为止我就清晰的知道自己要分享的内容。

路径规划那些事大纲

5. 明确下一步的行动方案

目前我是在使用 Emacs 中的 org-mode 管理这些项目。所以,我就将自己要做的事情放到一个文件中。下图是完成这个项目之后的结果,当然也有些行动被我取消了。

组织

回顾

来总结一下这次讲座之后的想法。

从辅助工具上来说,自己的 PPT 水平很差,也就认为不能把时间都放在准备 PPT 上。所以思考过其他一些工具,但都不是很乐观。考虑过两种类型的工具,可以生成 ppt 的软件,比如 Marp(利用 markdown 生成)以及 org-ioslide (利用 org-mode 生成),这两个工具很难实现图文混排。另外,就是幕布的演示模式,使用时需要展开和折叠大纲,有点麻烦,也容易导致出错。最后,还是只能硬着头皮去做了一个简单的 ppt 。

幕布演示模式

从演讲效果来说,内容是很丰富的,但是我的演讲能力很差,之前在上面提到的问题,都暴露无疑,还是需要加强锻炼。也由于时间上的一些原因,我的准备不够充分,试讲次数也太少了,导致节奏控制也不好。还要对浪费17计算班同学的时间,表示一些歉意。

点击查看我使用的ppt,文字形式的分享等我有空再来整理吧。

参考


采访一则

前一整子学院内有关部门对我进行的采访,正好放在这里记录一下。【】这个内部是我现在补充的内容。

Q1:在大学学习的这几年里,可有一事令你感触颇深,对你影响巨大?能否与大家分享一下?

【没有回答,现在很难被一件事情所影响】

Q2:很少有人在人生的道路上总是一帆风顺,你可曾遇到过难以解决的挫折?你是怎样克服它的?

【没有回答,向前看,不回头】

Q3:学长一直以来都是成绩优异,然而大学生活必定不能只有学习,学长是如何合理安排自己的时间的呢?

最简单的方法是善于利用日历软件。每学期将自己的课表以及固定时间要做的事情(比如每周二、四下午都要训练)输入到软件里面,作为已经分配的时间。每周、每天将必须要完成的任务找到一个截止日期前的时间块填入。复杂一点可以去尝试学习 GTD。
【比起和安排时间,更重要的是控制欲望】

Q4:作为信工学子,大家都知道你的代码十分厉害,能否跟学弟学妹透露一下学习的妙招?

平时多写算法题目或者是多做项目。刚开始可以从书籍、博文、mooc等渠道找到自己喜欢的内容模仿,然后自己在这个基础上尝试添加的代码。
【上一篇博文中有过类似的感叹,其实我的基础也很不扎实】

Q5:学长曾经参加过许多国家级乃至国际的竞赛,初次参加大型竞赛时可会紧张?你是如何克服这些心态上的问题的呢?

一般来说,编程比赛时间比较长,相对来说是比较自由的。紧张时可以尝试先趴着睡一觉,然后等到心情平复之后,再发挥出自己的正常水平就好了。不要有太多成绩上的压力或者是幻想。
【刚开始以为自己参加比赛能有奇迹发生,后来开始期待队友能 Carry。最后发现只能做自己,顺其自然。】

Q6:学长刚毕业就接到滴滴出行的offer,令人羡慕不已,每个人都想变得优秀,学长可不可以分享一下努力的过程?

凡事预则立不预则废。 很多时候,我们想要做的事情都是有前人做过的,所以可以从网上收集大量的资料。对于找工作来说,很多人会在博客或者论坛上分享面经,通过收集这些,看一下企业一般会考察本科生哪些方面知识,以及什么样的经历会给自己加分。然后朝着这些方向去努力。
【这些话是我自己经历找工作痛苦之后,才总结出来。人生就是一张信息战。】

Q7:图书馆是许多同学经常待的地方,你最喜欢哪一类的书籍?对哪本书印象最为深刻?

好像没有特别喜欢的一类书,大概什么类型的书都看,一般是了解到某一本感兴趣的书,就会去图书馆找一下。另外,我大部分时候去图书馆都是看报纸和杂志。
这么多时间下来,看完之后收获最大的书是《搞定I:无压工作的艺术》。这本书是 GTD( Getting things done) 的入门读物,主要介绍了一套个人任务管理的方法。如果你感觉生活杂乱无章,可以尝试学习这套方法来规划生活。
【不知道为什么,我一直想给身边的人推广 GTD 的原则。】

Q8:在学习与代码之余,你有什么十分热爱的东西,并为它坚持不懈吗?能否与大家分享一二?

写日记。这个爱好从高中开始,最初是写在笔记本上,由于不会搞手账之类的东西,日记的形式很单调。后来受到《晨间日记的奇迹》启发,开始使用为知笔记来记日记,可以同时记录今天拍摄的照片或者是视频。另外,每个日期开一篇笔记,每年都在同一篇笔记上更新,可以手动实现去年今日功能。
【记日记可以发现自己吧】

Q9:每个人都拥有属于自己的生活习惯,学长有哪些良好的生活习惯能与学弟学妹分享一下吗?

充分挖掘手机或者电脑的功能来体验数字化生活。推荐一些我自己使用的软件给大家吧。
个人任务管理:OmniFocus
笔记软件:Evernote、Wiznote
时间记录:Toggl、Forest
记账:MoneyWiz
如果想要具体了解这些软件如何提高工学学习效率,推荐大家去少数派上找相关文章阅读。
【其实我想说的是一个「数字游民」的概念,通过使用这些优秀的软件,记录自己的成长以及提高自己的效率。】

Q10:最后,请学长给学弟学妹们分享一段寄语,鼓励一下大家吧!

大学时光是短暂的,希望你们能早点找到自己想做的事情,并为之奋斗。

新闻稿的链接
查看更多我的随笔,请点击 ZenTalk


构建之法 第 0 次个人作业

最近重新看邹欣写的构建之法,发现他的第一章课后作业很有意思,所以决定自己也来写一下。有关的作业说明在2017BUAA软工助教 第0次个人作业 - ChildishChange - 博客园中。

结缘计算机

你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答)
计算机是你喜欢的领域吗?是你擅长的领域吗?
你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?

与大部分人差不多,在高考前我也没有对规划未来。考的也不是很好,没有太多的选择。所幸自认为还是有学习的劲头,想着大学找机会去转专业一波。当时也没有太在意专业的填报,最后机缘巧合来到了财经读计算机。大一下时,确实得到了转专业的机会。在面试时,突然感觉自己对转过去的专业也没有太多的好感,就和面试我的老师说放弃转专业,他们只能口头上鼓励我,男生学计算机也不错。大概就是这样子,就在计算机专业混到了大四。

比起这些博主来说,我没有他们那么强的主观能动性吧,能自觉地了解学习计算机各个领域的知识。而我从除了学校内的课程安排之外,自己了解其他知识都是浅尝而止。从大一开始差不多就点弯了天赋树,基本上课余时间都在写算法题目,参加各种各样的算法竞赛。幸运地拿了一些大大小小的奖,但是这也导致在知识面上和企业认为的计算机专业学生有很大的区别。目前来说,正在通过自己的努力,加强学习基础知识,希望能补齐自己的短板。

记得之前有一句话说,「数学是神造学科,计算机是人造学科」。在三年多的学习中,无时无刻不感受到前人思维的巧妙与严谨。比如 CPU 中的加法器,能通过简单的元器件和门电路搭配实现二进制加法以及进位。另外,计算机专业也能及激发最深处的好奇心。当你查阅相关的文档,实现软件的某些功能时,是否能想起童年某个午后拼成的模型?

在计算机系学习

你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。(必答) (8.26修改)
迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。(必答)(8.24修改)
科班出身和北大青鸟有什么区别?
速成的培训班和打基础的大学教育还有mooc之间有区别吗?
学线性代数和概率论的时候,你是否有过这样的疑问「我们为什么要学这么多数学,这和我们的计算机有关系吗」,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?

对于专业来说,我记得辅导员曾经在年级会议上讲过这样一段话:「有些人和我说,为什么高等数学这么难?这些书都是在大学没有扩招前编的,以你们的成绩当时都可能上不了大学。而且,我们学校搞计算机系,只是发现有很多教计算机基础的老师才开设的。」所以,也可以知道这个专业在学校的尴尬地位。

托尔斯泰说「幸福的家庭总是相似的,不幸的家庭却各有各的不幸」。反而对于计算机专业来说,感觉「普通学校的问题总是相似的,强势学校的优点却各有不同」。蒋宇东在梦断计院 为梦前行中写道他自己的学校计院有三大问题:1.学生基础薄弱 2.学风不正,溃散成性 3. 实践环节薄弱,人才位置错放。之前,我也一直在想一件事情:是老师水平太差学生懒得学还是学生水平太差还是老师懒得教?看到上面的三个问题才明白,冰冻三尺非一日之寒,事物发展都是相辅相成的。学生大部分都是过来享受大学美好生活的,对于有挑战的专业基础课比如编译原理、离散数学等都会用脚投票让他离开课程表。有幸能勉强开下去的课程,也会被改成能突击几天通过的样子。

记得大二导师前往台湾进修前找我谈过一次话。他希望我能自己养成一些良好的学习习惯,多去钻研计算机专业知识。并且还说,学院每年毕业的学生中,没有超过十个学生明白计算机是怎么一回事?三年多的时间里,我也接触过网上的一些 Mooc,不过差不多完全听完的只有浙江大学陈越教授的数据结构和吴恩达教授的机器学习。能坚持学习完这两门课,背后都是兴趣使然。数据结构是 ACM 比赛中很重要的一个知识点,当时自己学校还没有开设这门课,而且看书自学也不是很懂,所以就花大半学期的时间在网上去学习。机器学习则是希望未来能从事机器学习相关方面的工作才了解的。

陈越教授放在网上的数据结构课程相对于浙大内部来说,最大的变化是将教学语言从英文变成了中文,而且也适当的删除了部分内容(不是很确定?)。之前也在知乎上看到浙大计算机专业的课程安排,主干课程选用外国原版教材,以及使用英文授课。另外陈老师在讲解相关算法时,只介绍原理和思想。相关的实践需要你课后花时间进行,并且要求提交程序设计平台上进行黑箱测试。对比后来在自己学校开设的数据结构课程中,直接给你展示代码,也不强求你写的代码能正确运行,只要粘贴在实验报告中提交即可。《机器学习》的课程展示了美国教育的特点,每一周的课程都会包含一个小 quiz ,以及在课程中插入适量的编程大作业,学习的困难程度也就可想而知。

这些授课方式的不同,我认为是不同大学对于教育的理解不同。对于浙大之类的重点大学来说,所给予学生的是精英教育,侧重于培养学生的计算机科学基础。而下面的学校更多是大学教育成为通识教育的产物,本应该培养专业型人才,传授计算机技术,却由于种种原因没有这样开展。Mooc 的出现,打破了原有的时间、空间的限制,让我这样的普通学习接触到了国内外顶尖大学的教育资源,有利于教育公平。但失败之处也在于它的灵活性,不得不承认需要很强的自我约束能力才能完整地学习完网上的课程,不知你还记不记得那个当时看得热血沸腾的课程时,被你遗忘在哪个角落了?

最后,我觉得 Mooc 还缺少的同辈压力。吴军博士在《大学之路》中写道「当许多聪明、求知欲强、具有同情心而又目光敏锐的年轻人聚到一起时,即使没有人教,他们也能互相学习。他们互相交流,了解到新的思想和看法、看到新鲜事物并且掌握独到的行为判断力。」这大概就是学什么不重要,重要的是和谁一起学吧。一些 Mooc 虽然提供在线社区交流,但还是没有线下那种碰出火花的感觉。

对比完这些,计算机专业学生的另外一个主题不可能忽视——“自学”。最开始的作业说明给出的很多参考博文也说明了这一点。我印象最深的一个方法是徐宥在掉进读书的兔子洞中写道的「一字不漏敲入一本书的程序成了我推荐别人学习语言的最好办法」。古语读书百遍其义自见,计算机是一门实践的学科,只有在实践中才会学习到技术的本义。目前,自己在看《机器学习实战》时(相关代码和读书笔记见参考链接5
),也差不多用的是这个方法,将书中提到的机器学习算法一个字符一个字符地敲进编辑器,一次又一次地调试运行直到出现满意的结果。

在这样的学习中,我也可以回答这一部分的最后一个问题,我们为什么要学这么多数学,这和我们的计算机有关系吗?对于机器学习来说,本身是建立在概率论和线性代数的基础上,毕竟解释机器为什么能学习都需要用到霍夫丁不等式等相关知识。数学是一种工具,通过数学能将很多的计算机实践经验理论化,以此得到更好的发展。对比功力性很强的培训机构来说,接受科班教育的结果是有机会受到严格的数理化训练,这也能间接决定你在这个行业从事工作的层次和上限。

未来规划

对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?(必答)
你对于实现自己的梦想已经做了或者计划做什么样的准备?
你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?
实习经验究竟有多重要?是否需要马上开始积累实习经验?

前文也提到了,以我的目前的情况来看,大学中接受的教育和自己所学的技能都是和市场脱节的。所以,前一段时间也很迷茫,自己能做什么。所幸看到之前公司的同事所写的知乎专栏文章「谈“圈外”在校生如何更靠谱的拿到大厂算法/ML实习机会」(不知道为什么被删除了,所以无法提供链接),大意就是可以曲线救国,先就业再择业。

所以,我还是推荐出去实习的。不仅是走出象牙塔,感受一下工业界的需求。更重要的是大一点的企业都会安排专人对实习生进行相应的指导,使其能更快地朝工程师方向发展。

参考

  1. 现代软件工程 第一章 【概论】练习与讨论 - SoftwareTeacher - 博客园
  2. 2017BUAA软工助教 第0次个人作业 - ChildishChange - 博客园
  3. 蒋宇东:梦断计院 为梦前行
  4. 徐宥:掉进读书的兔子洞
  5. xiang578/MachineLearningAction: 《机器学习实战》

使用 TaskPaper 实现 3 Things

这几个月,一直在尝试 GTD 方法。有没有改善生活不知道,反正是软件尝试了一个又一个。前几天,又接触到了一款纯文本任务管理软件——Taskpaper。简单的尝试了一下,发现可以将这款软件结合进入 3 things 体系。

3 Things

看过很多时间管理的方法之后,才明白时间是不可以管理的。一个人独处的时候,明知道有很重要的考试需要准备,但还是会不知不觉地打开手机刷微信。很多时候,需要管理的不是时间,而是欲望。所以,在自我控制力很弱时,时间管理会加重你的疲劳感。

说到底,一个人的精力优先,能做的事情也很少。有一个很有名的原则叫做“二八原则”,套入到这里来就是,我们的生活是由 20% 的关键任务 + 80% 的普通任务组成。在理想的状况下,我们应该将 80% 的时间投入到那些 20% 的重要任务中。如何安排这 20% 的任务时,3 Things 的体系就孕育而生了。3 Things 指的是每天优先挑选出最关键的三件事情,优先处理。这三件事情的选择,需要结合你自身的目前情况、长久目标而决定。对于这个选择,你可以问自己,如果完成了其他事情,没有完成这三件事情,这一天不合格吗?如果完成了这三件事情,而没有完成其他事情,这一天合格吗?

Taskpaper

如同前文所说,Taskpaper 是一款纯文本软件,所以界面非常的简洁。下图右侧就是他的主界面,和大家经常使用的文本编辑器没有太大的区别。软件通过一些语法来实现任务管理,比如 : 实现一个项目,用 - 实现一条任务,再使用 @开头实现标签。软件更强大的地方在于,可以自定义 CSS 文件,所以可以很轻松地将一些标签搞上不同的颜色。

有点遗憾的是,TaskPaper 只用 macOS 版本,其他平台只能通过文本编辑器+插件的方式实现,比如 Sublime Text 中有一个能实现类似功能的插件 aziz/PlainTasks: An opinionated todo-list plugin for Sublime Text editor (version 2 and 3)

系统工作流

其实,能想起来用 Taskpaper 做三件事情,是受到了《18分钟》:如何用18分钟变身效率达人?| 狗熊月读64影响。视频中,大狗熊老师介绍了一个习惯,会每天在文本文档中,列出5项需要完成的任务(对的,比三件事情多出了两项),而且会对事情进行估计,包括四象限中的位置、预计完成时间以及和自己人生的那个目标有关。

四象限法则是时间管理中的一个重要理论,它将我们需要处理的事情分成了下图显示的四类,并且指导在日常生活中应该关注重要但是不紧急的事情,也就是第二象限。

一般的 GUI 任务管理软件,列出事情还算比较方便,但是做评论却没有那么便利。TaskPaper 比起在文本文档中直接写,体现出强大的整合能力。比如,我可以选定 MachineLerninginAction 的标签,可以快速的将我之前安排过的相关任务整合到一起。

所以,每天晚上睡觉前的 10 分钟,我会回顾一下今天完成的事情,并给第二天安排需要做的 3 Things。确保第二天醒来,我可以直接开始做当天的重点。达到从头到尾、逐一处理、不避不拖、一次一事的 GTD 执行境界。

参考

IMG_0233


「只言片语」| 2018/03/07

多年之前阅读《读者》时,最喜欢杂志中的语丝栏目。所以准备向其致敬,收集每周我在阅读中收获的只言片语。

1. 学习

  • “当我在你们这个年纪,有段时间,远离人群,独自思索,我的人生到底应该怎样度过。某日,我偶然去图书馆,听到泰戈尔的演讲,而陪同在泰戈尔身边的人,是当时最出名的学者。那些人站在那里,自信而笃定,那种从容让我十分羡慕,而泰戈尔正在讲对自己的真实有多么重要,那一刻我从思索生命意义的羞耻感中释放出来,原来这些卓越的人物也会花时间思考这些,他们也觉得这些是重要的。”
    • 语出《无问西东》的吴岭澜给学生介绍泰戈尔时。“自信而笃定”,简单五个字,回味无穷。
  • 凡是机器或者人工智能能够代替的能力,就是不值得花时间去训练的能力;凡是不能迁移到其他领域的能力,也是不重要的能力。
    • 机器学习的火热带来思考,如何才能避免自己在未来被替代。
  • 只要你停下来认真思考一下就会明白,投资比特币简直愚蠢至极。这是不安好心的坏人们鼓吹的疯狂泡沫,引诱人们追求不劳而获、一夜暴富的妄梦…… 你知道,黄金之所以具备流通价值,是因为人类根本无法轻易地得到黄金,因此黄金才显得稀有。相信我,人类完全有能力创造出更多的比特币——尽管他们会告诉你由于种种限制无法这么做。千万不要相信这些鬼话,当好处足够多的时候,坏事就会发生。
    • 根据所学为数不多知识判定,比特币之类的数字货币已经成为24小时不断线的赌场

2. 理性

  • 总体来说,给我的感悟就是老罗成长了,做实事才是真正锻炼人的,相比罗振宇哪个挤眉弄眼心高气傲的样子,罗永浩讲起来自己的产品那种娓娓道来朴实坦诚的样子让我能容易喜欢。
    • 语出知乎网友评价罗振宇对罗永浩的专访。记得有一段时间,疯狂地看罗永浩的演讲视频,完全被他的行为所喜迎,记得印象最深的一句是通过干干净净的赚钱,让人相信干干净净的赚钱是可能的。可不知道为什么不喜欢看《罗辑思维》,现在找到答案了。
  • 对熟人宽容大度,对陌生人零容忍。
    • 有另外一种印象:坏人远在天边,好人都近在眼前。
  • 罗辑思维搞了四年,知乎上大家骂了四年。四年中罗辑思维从最初一个靠打赏的小书童,成长为一个创业者,继而成长成一个做平台的知识服务提供商,甚至邀请了一众精英在主流媒体和新媒体上大搞跨年演讲,钱赚得盆满钵满,影响力也是一日千里。而那些罗辑思维的黑粉,四年来又收获了什么?罗胖的一句话,黑粉真的可以好好琢磨琢磨,原话忘了,大概的意思是:我不会再否定一个人,因为否定他,是关闭了我自己观察世界的一扇门。
    • 知乎网友对得到的评价。因为这个,开始接触一些自己之前无名抵触的东西,还是有收获的。
  • 毕业20年之后,去参加一下同学聚会,不是要你去攀比人生成就,也不是要你去利用同学资源,而是看看人生20年长跑之后,决胜千里的东西究竟是什么,输掉人生长跑的东西又是什么?
  • 我想不起来有什么真正的机会是稍纵即逝,追悔莫及的,我想不明白为什么人们非得那么迫不及待,惶惶不可终日。错过了成为 Netscape、Yahoo 的机会,你可以成为 Google ;错过了成为 Google 的机会,你可以成为 Facebook ;错过了成为 Facebook 的机会,你可以成为微信,成为滴滴,成为 ofo。如果区块链真的是一个大机会,它怎么可能会是一个手慢无的机会?况且,有哪个真正的大机会,从一开始就孕育出了空前绝后的大项目?有哪项有前景的伟大技术,不是慢慢成就它的伟大?
    • 区块链或者数字货币火热的反思

3. 欢喜

  • 世界于你而言,无意义无目的,却又充满随心所欲的幻想,但又有谁知,也许就在这闷热令人疲倦的正午,那个陌生人,提着满篮奇妙的货物,路过你的门前,他响亮地叫卖着,你就会从朦胧中惊醒,走出房门,迎接命运的安排。
    • 泰戈尔《爱者之殆》,可能现实中叫醒你的就是你自己。
  • 好看的皮囊是确实好看,有趣的灵魂是自以为有趣。
    • 取“好看的皮囊千篇一律,有趣的灵魂独一无二”之反

4. 番外

  • Timetrack:计时软件,点击图标就能开始计时,配合 URL Scheme 直接跳转到你预设的 App 中。

IMG_0233