关闭

如果你是本杰明·富兰克林,会怎样学习编程?

543人阅读 评论(0) 收藏 举报
分类:

优秀的编程方法是极难教的。编程书籍大抵都是这样开头的:“这是X方法的例子,还有下面这个例子”。教教基础是容易的,因为基础知识也就那么多。难就难在,要教明白每种选择带来的结果。一般我们会建议多写代码,慢慢提高水平。这是必要但非充分条件。要想学的更好,我们还要判断应该写哪些代码,以及如何改善这些代码。

我们接下来转向与编程紧密相关的领域——写作,寻求改善技艺的灵感。从很多方面看,编程就像是写作。二者的核心关注点,都是以容易沟通的形式表达自己的思想。我们会发现二者都很困难,因为我们的思想是高度密集交错的,而文本又是极其地线性化。利用文本,我们有无数中表达思想的方法,这使得学习写作的艺术,以及编程的艺术,变得很困难。

幸运地是,本杰明·富兰克林记录下了他锻炼写作技巧的方法。我们只需要查看Amazon网站上传记畅销书单,就会发现富兰克林的写作水平之高超。数百年后,他的自传仍位居畅销书之列。如果这都证明不了他的写作能力,我不知道到底还有什么可以证明。

本杰明在少年时期就找到了练习的方法,并且一直刻苦地按这种方法练习写作。下面是他的自传中相关介绍的摘录。

大约在这时候,我偶然看到了一本《旁观者》的零本,是第三册。在这以前,我从未曾看见过这个刊物。我买了这本散册,反复读了几遍,十分中意,我认为文章写得好极了,如果可能的话,我想模仿它的风格。

因此我从中选了几篇文章,简要地摘录下了每一句的大意,接着把它们搁置几天。然后不看原书,用我自己想得起来的合适辞句,把每一个句子尽量完整地表达出来,又凑成整篇的文章,使它表达得像以前一样地完整。最后,我把我自己写的《旁观者》与原文比较,发现了一些我的错误,作了修正。

但是我发现我的词汇贫乏,或是说我不能很快地想起适当的词来用。我想,假如我以前没有放弃写诗的话,那时候我的词汇一定会丰富得多了,因为经常不断地有机会寻找具有同样意义而有不同长度的词去适合诗的韵律,或是不同音素的词去凑韵脚,会迫使我不断地搜索具有不同形式的同义词,这将有助于我记忆这些不同的词并使我掌握它们。因此,我把其中的一些故事改写成了诗,过了一些时候,当我差不多已经遗忘了原来的散文的时候,我又把它们重新还原。有时候我也把我摘录的思想搞乱了,经过几个星期以后,设法把它们用最好的次序排列起来,然后再把它们写成完整的句子,组合成文章。这样做,是为了教我如何整理思想的方法

《旁观者》:1712年11月8日

《旁观者》:1712年11月8日

本杰明·富兰克林式编程练习模式

  1. 找一个你特别喜欢的程序,阅读它的代码。
  2. 记录下每个主要组件的角色、输入和输出。
  3. 记录下每个组件之间是如何交互的。
  4. 重写这个程序。
  5. 把你的代码与源代码进行比较。
  6. 记录下你要在哪方面改进,并学习相应的知识。

不要只是一味地写程序。通过学习伟大的程序,并尝试模仿这些程序,将会极大地提升你的能力。

如果你觉得本文介绍的方法有用,请与朋友分享!每一次分享,都是一份关爱!

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

机器学习中的过拟合问题以及解决方案

笔者希望该笔记能够记录每个机器学习算法的过拟合问题。 过拟合问题举例 右图在训练数据上拟合完美,但是预测第11个时候, 左图虽然拟合不完全,但是更合理;右图的-953,误差极大。 ...
  • sinat_26917383
  • sinat_26917383
  • 2016-06-08 20:24
  • 3388

程序员,我们应该如何去学习

IT技术的发展日新月异,新技术层出不穷,具有良好的学习能力,能及时获取新知识、随时补充和丰富自己,已成为程序员职业发展的核心竞争力。本文中,作者结合多年的学习经验总结出了提高程序员学习能力的三个要点。...
  • jdsjlzx
  • jdsjlzx
  • 2014-08-22 15:24
  • 4370

我是如何学习计算机编程的(斯坦福大学)

我在很小年纪的时候就开始学习编程,我学习编程的方法是创建大量的不同的网站。下面列出的是我创建的主要的网站,其中最早的一个是我11岁时开发的。我希望读者能从我这些复述中获得的信息是:如果你想学习编程,做...
  • txl16211
  • txl16211
  • 2014-11-15 21:22
  • 6275

一个今天胜过两个明天----------本杰明·富兰克林

一个今天胜过两个明天----------本杰明·富兰克林
  • Max__Payne
  • Max__Payne
  • 2011-03-01 14:25
  • 991

生活中的魔法数学:世界上最简单的心算法.Secrets.of.Mental.Math.(美)亚瑟·本杰明,迈克尔·谢尔默.李旭大.扫描版.pdf

  • 2009-12-16 13:12
  • 11.66MB
  • 下载

本杰明源程序加调试工具2.17版本

  • 2017-10-16 22:55
  • 15.47MB
  • 下载

易容语言中文编程·学习进阶

  • 2016-07-16 06:04
  • 134.01MB
  • 下载

英雄会第四届在线编程大赛·线上初赛:带通配符的数

输入格式 多组数据,每组数据两行,第一行是W,第二行是X,它们长度相同。在[1..10]之间. 输出格式 每行一个整数表示结果。 答题说明 输入样例 36?1?8 236428 8?...
  • tlxzsz
  • tlxzsz
  • 2014-03-20 16:03
  • 486

CSDN英雄会第四届在线编程大赛·线上初赛:带通配符的数

英雄会第四届在线编程大赛·线上初赛:带通配符的数 给定一个带通配符问号的数W,问号可以代表任意一个一位数字。 再给定一个整数X,和W具有同样的长度。 问有多少个整数符合W的形式并且比X大? 输...
  • u013027996
  • u013027996
  • 2014-03-27 19:45
  • 588

【行星解放资讯·Cobra访谈】EM2017.7.6 此博文包含图片 (2017-07-24 17:15:04)转载▼ 标签: 地球/26000年 物质执政官/耶稣会 13家族/光照派 黑暗编程/矩

【行星解放资讯·Cobra访谈】EM2017.7.6   (2017-07-24 17:15:04) 转载▼ 标签:  地球/26000年   物质执政官/耶稣会   13家族/光照...
  • moonufo17
  • moonufo17
  • 2017-07-30 07:36
  • 527
    个人资料
    • 访问:2616789次
    • 积分:30048
    • 等级:
    • 排名:第196名
    • 原创:433篇
    • 转载:1011篇
    • 译文:147篇
    • 评论:92条
    技术链接
    最新评论