宅男程序员给老婆的计算机课程之12:作业点评

原创
开发 开发工具
这个系列来自一位宅男程序员,这个系列是他写给老婆的电脑课程。以下,开始本系列的第12篇——作业点评。

【51CTO独家特稿】h1. 作业分析

作业是课程的一部分,实际上,还是这个课程最重要的部分。

如我在前面课程中提到的一样:

很多初学者,或者说,编程的伪爱好者,他们,会热衷于去四处请教大师,下载各种经典书籍,企图读一本编程圣经,然后一夜脱胎换骨。

这是,不可能的。

同样的,如果仅仅是看了这个课程,而不做作业,那么在看课程前后,个人的能力是不可能有变化的。

充其量,跟看了一部或许好玩的小说差不多。

作业并不是考试,而是课程的延伸,是没有可能参照着课程的内容,然后对作业做出回答。

每节课,仅仅只是指出一个方向,然后需要大量时间的去朝这个方向做学习、探索,然后以作业的形式做出对这个方向的回答。

这才是学习。

花几分钟看几眼课程,然后就期待自己技术能力有变化?能够有改变,从不会做作业变成会做作业?

别开玩笑了,如果能够这样,那么程序开发会是一门非常没有技术含量,非常没有含金量的行业。

只有用心好好完成了作业之后,才有可能获得知识。

这个课程的作业,也完全不是:

小明有5个苹果,他吃了一个。然后给小寒了一个,求太阳到地球的距离。

这样无厘头的题目。

每节课的作业,都是跟课程有直接关系的。

h2. 第一课

1. 用500字讲述什么是Programming Methodology?

2. 列举10种Data Structure.

3. 列举10种Algorithm.

这课的作业实际上是在问,你对“编程本质”的内容掌握了多少,如果不够熟悉,了解得不够多,要赶快去学习。

h2. 第二课

1. 列举10个Python Web框架

2. Python有多少种不同的解释器?

3. Perl 跟 Python 有什么不同?

这课的作业,同样是在问具体到Python这个语言平台,在实际开发中可供挑选的现成工具有哪些?问的是对自身工作所使用的平台熟悉程度。这课的作业,也完全可以根据使用的语言不同,而改成别的技术题目。

这课讲的是实际中对工具掌控的熟悉程度这个方向,如果熟悉,那么这三个问题是很容易回答的,如果不熟悉,而为了做作业去打开Google,搜“python web框架”,然后填名字。那么就完全木有做作业的意义。

h2. 第三课

1. 找出一篇看上去很厉害的文章。

2. 找一本书,开始看,作为期中考书目。

这课讲的是阅读的重要性,两项作业,一个要求阅读的广度,一个是要求阅读的深度。

作业是要做的。OK,这课讲了阅读的重要,明白了,然后就洗洗睡了?自身的阅读的东西,无论是广度还是深度,都跟以前一样,那学这课程有个毛用?

宣称喜欢这个课程,并且表示关注、期待的同学,请问,你选择的期中考书目,已经翻了几页?

如果一页还没有翻;那么请好好问一下你自己,你究竟是不是要学习提高改变自己的?

h2. 第四课

1. 林仕鼎是百度首席架构师吗?

2. 看完曹政所有的blog。

这一课其实还是在讲阅读的重要性,以及对事物的好奇心。

如果,你对技术有热情,有追求,课程中居然出现了“百度首席架构师”这样的字眼,你必然会对他有无限的好奇,会去刨根问底的了解他。

那么,是很容易就发现林仕鼎根本就不是百度首席架构师,相反,caoz曾经更符合这个身份。

我列举了两个hacker风格的IT人物,一个是caoz,一个是云风。

作业有一项是看完caoz的所有blog,他的blog很好看的。如果你真的看完了,那么,请问你是否有完成这课实际上还有另一个隐藏的“作业”,“看完云风的所有blog”?

如果没有,那是什么阻止了你?一个非常优秀的技术博客知识就放在你眼前,你,为什么不去看?

OK,没有时间,很忙,这些我很了解。

我只问一个:是否有过要把云风的blog也看完的念头?

如果连这基本的好奇心、求知欲都木有的话,那还是洗洗睡吧。

h2. 第五课

1. NoSQL的方案,如MongoDB还解决了SQL的什么问题?

2. NoSQL的应用场景有啥米?

这课是讲数据库,分析、比较了SQL、NoSQL,同样的,需要课后去做更加深入的了解并且思考SQL、NoSQL的适用场景。

h2. 第六课

1. 使用一种编译语言实现 Singleton 模式

2. 使用一种动态语言实现 Singleton 模式

3. 说说对 Provider 模式的理解。

如果连最简单的Singleton模式实现都是上网google的现成代码,那。。。还是那句话,洗洗睡吧。。。

这课讲的是设计模式的必要以及局限,如果只是看到后面对设计模式局限的调侃,而无视了前面提到的:“开发中非常必要的知识,实际上,是非常基础的知识”。

你究竟对非常基础的设计模式了解得多深入了?第三题换个模式,你说得出理解么?

h2. 第七课

1. php 的 Smarty 模版的设计哲学是什么?

2. perl 的 Mason 模版的设计哲学是什么?

3. 什么是gettext?

4. 前端javascript实现的模版中,目前最成熟的是哪个引擎?

这课是讲模版,模版有很多现成的实现,作业纯粹就是在要求去了解、认识各种模版技术的实现。

h2. 第八课

1. 说说对 restful 的理解

2. 什么是 reverse proxy ?

restful / reverse proxy等,都是跟controller相关,但延伸出去的相关知识。

相关性究竟在哪里?这个可以做为独立的一课去讲述,但也完全是可以自学了解的。但这绝对不是在跟小明讲了1+2=3后,问太阳与地球的距离。

h2. 第九课

没有作业。

h2. 第十课

1. ED开发圣经PEAA究竟是哪本书?

2. 数据库三范式是什么?

3. 关于Domain Model,什么是充血模型?什么是贫血模型?

第一题纯娱乐,第二题是确认课本知识掌握;第三题则又是在要求延伸阅读,实际上,也是在为下一课做预习。

h2. 第十一课

1. N-tiers架构的噩梦场景是?

2. 什么系统/场景需要充分使用特定数据库的特性?

这课作业是在要求对课程做思考,写课程时,我实际上是码了很多字,去描述N-tiers的噩梦场景。但后来我又全部删除。

因为,我前面已经讲了很多关于分层、封装的问题,也提供了The Law of Leaky Abstractions的连接,对N-tiers有了解,对分层的问题有了解,那么如果还不能认识到N-tiers这么一个多分层的技术的噩梦场景是什么的话;那么我还是只能说:洗洗睡吧。

整个课程,是在强调对数据库的封装。为了避免产生封装就是好的教条思想产生,所有我又加了“使用特定数据库的特性”这个作业,要求去思考一下相反的场景。

作业:

1. 补做之前的所有作业

51CTO系列:

  1. 宅男程序员给老婆的计算机课程之0:认清本质
  2. 宅男程序员给老婆的计算机课程之1:认清实际
  3. 宅男程序员给老婆的计算机课程之2:怎么看待牛人
  4. 宅男程序员给老婆的计算机课程之3:架构比较
  5. 宅男程序员给老婆的计算机课程之4:SQL vs NoSQL
  6. 宅男程序员给老婆的计算机课程之5:设计模式
  7. 宅男程序员给老婆的计算机课程之6:模版引擎
  8. 宅男程序员给老婆的计算机课程之7:运维的重要性
  9. 宅男程序员给老婆的计算机课程之8:控制器
  10. 宅男程序员给老婆的计算机课程之9:数据模型
  11. 宅男程序员给老婆的计算机课程之10:做,就对了!
  12. 宅男程序员给老婆的计算机课程之11:域模型
责任编辑:彭凡 来源: 51CTO
相关推荐

2012-03-01 09:27:23

宅男程序员

2012-05-02 13:30:50

2012-02-06 10:52:14

宅男程序员

2012-02-14 10:33:12

宅男程序员

2012-02-21 09:37:07

宅男程序员

2012-02-01 10:19:02

宅男程序员计算机课程

2012-05-21 09:04:12

宅男程序员

2012-03-20 09:44:40

宅男程序员

2012-02-15 14:40:17

宅男程序员

2012-04-26 08:12:01

2012-03-27 09:43:28

宅男程序员

2012-02-09 10:02:41

宅男程序员

2012-03-05 09:48:03

宅男程序员

2012-02-12 13:31:36

2011-05-11 09:42:27

程序员

2012-04-09 09:42:56

2022-04-11 15:59:21

计算机

2023-08-07 12:11:26

CPU存储器SSD

2020-11-13 15:31:31

程序员计算机考研

2013-03-27 09:59:33

程序员编程
点赞
收藏

51CTO技术栈公众号