《编程之道》的第二篇是“古代的大师(The Ancient Masters)”,不知道悟道非常深的作者为何在编程大师的前面加上了个“古代”来修饰,我们知道计算机的发展历史并不长,用上“古代”似乎有点过火了,难道“古代的大师”和现在的大师有所不同?让我们看看作者所写的相当抽象的描述吧。

摘录如下:

编程大师如是说:‘倘若三天不编程,生活将变得毫无意义。’

这句话是开篇语,只是我不赞同作者的看法,因为我认为编程大师不一定要每天都编程写代码。真正的大师,已经在注重思想方面的了,他可以当架构师、设计师,怎么还会执着于写代码呢?虽然说编程可以将大师的思想表达、实现出来,但不编程也不至于“生活将变得毫无意义”呀。

此外,如果真如作者所说,连大师几天不编程都觉得不当的话,那是不是说明作为一名初学者更应该非常注重通过编程来逐步学习呢?嗯,也许这就是作者的隐含意思。

“2.2 计算机巨擘图灵曾经梦到他是一台机器。当他醒来时,他惊叹道:‘我不知道——我是梦到了自己是台机器的图灵,还是一台梦到了自己是图灵的机器?’

不知这故事真或假,图灵用了相反的描述来说明自己做梦的事情。既然图灵都不知道自己是机器还是图灵自身,那么我们也没必要去追寻这个这么抽象的答案了。可以肯定的是,图灵几乎将自己与计算机融为一体了,就连思维也陷入进去了…

“2.3 一家大电脑公司的一名程序员参加了一次软件研讨会。他回来后向经理汇报说:‘为其他公司工作的那些程序员都是些什么人啊?他们行为拙劣,不顾及自己的仪表。他们头发又长又乱,衣服又皱又旧。他们闯进我们的会客组,还在我演讲时发出粗鲁的喧闹。’

经理说:‘我本不应该派你去参加这个会议,那些程序员是生活在物质世界之外的。他们认为生活是荒唐的,只是一种意外的巧合。他们来去自如。他们只为他们的程序而活着,无忧无虑地活着。为什么要用社会习俗来约束他们呢?他们活在此道之中。

从上面程序员的反馈中我看到的是一位大公司的程序员只会挑剔其他公司程序员的不足之处,而没有从自身开始分析两者的不同,这是不是作者在说明:永远不要自以为是,正确看待自身以及他人才有利于我们彼此。

而从经理的回答中似乎可以看出,经理理解程序员各方面的特点,似乎在体谅程序员。但是,“生活在物质世界之外”“认为生活是荒唐的”“为程序而活着”是不是也在另一方面强调、讥讽了某些程序员的不恰当想法、做法呢?这个值得我思考一番。

最后,“为什么要用社会习俗来约束他们呢?”是不是表明了作者赞同只要一个人各尽其能、各得其所就不应该被社会所否定、批判?是因为这些程序员能够实现其自身价值吗?

“2.4 一位初学者问大师:‘有位程序员,从不构思、编写文档或测试他的程序,然而所有知道他的人都认为他是世界上最棒的程序员。这是为什么呢?’

大师回答说:‘那个人掌握了道。他不需要实现进行构思,当系统崩溃时,他不会因此而闷闷不乐,而是心平气和地接受整个事实。他还从编写程序说明文档的需要之中超脱了出来,不在意是否有人看他的编码。

他也不需要进行测试,他的每个程序的内在都完美无缺,宁静而优雅,程序的用途也显而易见。的的确确,他已经进入了道的神奇境界。

这是奇怪,世界上真的有这位初学者所描述的程序员吗?而大师竟然也肯定了这类程序员的存在,而且是进入了“道的神奇境界”。我们知道,作者应该不可能拿道来作为反讽吧。可是,不构思、不写文档,系统崩溃了仍能兴平气和的程序员真的可以被肯定吗?不解…

希望各位也给个看法,指导一下我这个迷迷糊糊的蚂蚁,谢谢!

转载于:https://blog.51cto.com/haolloyin/351027

读《编程之道》-对于程序员的抽象描述相关推荐

  1. 读《编程之道》——程序员的心灵鸡汤

    前天在图书馆找软件工程类的书籍时,无意中发现让我立即盯住的书名<编程之道>.在这之前,我知道图书馆里面有<代码之美>.<代码大全>.<编程之美>等等书籍 ...

  2. 【读书笔记】 我编程_我快乐——程序员职业规划之道

    快要放假了,最后坚挺的时刻,读本书吧.<我编程,我快乐 --程序员职业规划之道>. 1, 当你开始做一个程序的时候,或许手头上有一个从网上复制的示例程序,看上去这个程序可以使用.为了满足你 ...

  3. 读《Java夜未眠程序员的心声》感

    读<Java夜未眠程序员的心声>感 在这个快餐文化盛行的年代,已经很少有人耐的下心来读书了,我指的是大量的读书,作为程序员,你选择了这个行业,就注定了与学习为伍,短短几十年IT业发生了翻天 ...

  4. 代码整洁之道:程序员的职业素养 读书笔记

    代码整洁之道:程序员的职业素养 作者:(美)罗伯特 C. 马丁(Robert C. Martin) 译者:余晟,章显洲 这是一本风趣幽默的关于程序员的故事书,这本书让我在专业技术之外,了解了更多程序员 ...

  5. ie 访问 java接口_2019年面试总结,100道Java程序员面试题(含答案)分享

    2019年即将结束,一边是大批同学涌入职场,另一边是大群职场人打算跳槽,在这个重要的节点,Java程序员如何才能把握时机,搞定面试官,拿到一份心仪的工作呢? 除了掌握扎实的专业技能之外,你还需要一份& ...

  6. Python 编程无师自通:专业程序员的养成

    Python 编程无师自通:专业程序员的养成 扫码 · 试读 在学习中拉开技术差距

  7. 8个全球性编程比赛,天才程序员的梦想舞台

    很多编程爱好者在学习之初,都渴望与全球的程序员一较高下,以证明自己的实力. 一些全球性的编程竞赛为他们提供了这样的机会,不仅可以与全世界的顶尖程序员们交流,还有机会获得丰厚的奖金和进入顶级公司的机会, ...

  8. 《C++编程惯用法——高级程序员常用方法和技巧》——2.9 静态对象的构造

    本节书摘来自异步社区出版社<C++编程惯用法--高级程序员常用方法和技巧>一书中的第2章,第2.9节,作者: [美]Robert B. Murray ,更多章节内容可以访问云栖社区&quo ...

  9. 《代码整洁之道:程序员的职业素养》一一1.5 参考文献

    本节书摘来自异步社区出版社<代码整洁之道:程序员的职业素养>一书中的第1章,第1.5节,作者:[美]Robert C. Martin(罗伯特 C. 马丁),更多章节内容可以访问云栖社区&q ...

最新文章

  1. python 安装lxml
  2. linux 安全相关
  3. 怎样在项目中使用git以及github管理(图文详解流程讲解)
  4. C++ Primer Plus 一
  5. Hibernate 实体关联关系映射----总结
  6. dataframe两个表合并_DAXSQLPython实现报表项目存在串行的财务报表合并
  7. 玩转GIT系列之【git的分支操作(查看分支/切换分支/新建分支/删除分支)】
  8. 如何判断两个时间段是否有交集
  9. 飞鸽传书内网传输好伙伴
  10. 2019.1.23 01迷宫
  11. mc服务器隐藏指令显示,服务器常用指令 搬运自Mc服主网
  12. 10折交叉验证(10-fold Cross Validation)与留一法(Leave-One-Out)、分层采样(Stratification)
  13. Netty工作笔记0066---Netty核心模块内容梳理
  14. 百度网盘svip下载时显示下载请求中无下载速度
  15. ext3,ext4,xfs和btrfs文件系统性能对比
  16. MGRE、OSPF综合实验
  17. c语言如何获取错误码,错误码列表
  18. Qt通过ODBC连接opengauss数据库
  19. 用易语言对DNF卡顿进行批处理
  20. R包survival,survminer生存分析代码

热门文章

  1. hdu4884 模拟
  2. 【Kotlin】Kotlin 领域特定语言 DSL 原理 一 ( DSL 简介 | 函数 / 属性扩展 )
  3. Hibernate 学习笔记(二)—— Hibernate HQL查询和 QBC 查询
  4. 你见过的最全面的python重点
  5. Java并发编程--6.Exchanger线程间交换数据
  6. codeforces 374A Inna and Pink Pony 解题报告
  7. ThinkPad E440 加内存后导致开不了机
  8. 善用各类知识管理工具,达到事半功倍的效果
  9. code::blocks 修改代码字体颜色大小等
  10. Matlab Robotic Toolbox V9.10工具箱(六):puma560 动力学建模与仿真