`
belmount
  • 浏览: 49134 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

老子是程序员

 
阅读更多
前言

license:本文版权授权采用《老子协议模式》。即非经本人允许,不得转载。链接的可以。copy的话给钱!

传说老子名李耳,春秋时期楚国人。我,姓名不提,党国时期楚地人。
从地缘上说,和老子还是个老乡。
传说老子骑青牛西去。西去,我倒是玩过,不过是坐的铁鸟。要是我现在骑着头牛在大街上走,要么被车撞死,要么牛被没收,人被抓起来。
闲话不提,先谈我最近的重大发现。经过我10来年和程序打交道的沉淀和最近两年断断续续拜读《道德经》的收获,我发现老子并不仅仅是传说中的图书馆馆长,而是一个很nb的程序员,兼高级项目经理,至少是高工级别的。

说我疯癫了吧,我还笑你看不清呢!
先谈硬件条件。根据国人的说法,当年冯诺曼是看了周易研究出的二进制计算机。
由此倒推过去,我们聪明的祖先既然在周朝初期就掌握了原理,在周朝末年大量使用计算机那是相当自然的事情。

再说学科设置。武汉大学(楚地的)图书馆专业属于信息管理学院(说白了也是搞挨踢的)。
所以老子名正言顺是个it精英。
我当年读大学的时候,图书馆还搞网吧这个副业。估计老子手里也掌握着几十台电脑的网吧资源,老子玩集群和云估计也是杠杠的。

再回过头来看看老子的作品《道德经》,这完全是一部不朽的程序哲学和项目管理的经典著作。如果翻译的好,什么人月神话,人贱啊之类的书根本就没有存在的必要,在amazon上软件项目管理类、哲学类、教育类销量排名从1到10都是《道德经》。
言归正传,让我从第一章给大家分析起。

先说道可道,非常道,名可名,非常名。
为了这句话,一堆搞文字研究的人逐字逐字的考证,把古籍翻完了也没个定论。
据我理解,这是高级程序员兼项目经理老子为了吸引大家读下去,搞了几个没有用的变量来掩盖真实的内容的贫瘠。说穿了,就是这两句话读起来很震撼,内容很空洞。
但如果只是空洞,那老子也就不可能成为老子,这两句话说明了两件事情的重要性,道和名。
道就是tmd哲学。哲学也就是事物发展的客观规律,我们一定要顺道而行。但这个道不是一般人都够明白的,要学习中顿悟。
谈到哲学,我印象最为深刻的就是斯特劳斯普,这个C++之父在《C++的演进》中谈到C++的哲学是一种尊重个体的哲学,反对黑格尔那种强调群体而忽略个体的思想。只有尊重个体才能尊重集体,集体才有凝聚力。因此C++允许各种编程风格,这就是设计之初对程序员的尊重。
RoR的DHH的设计哲学是DRY(Don't Repeat Yourself), Unix的设计哲学是做简单的事,把简单的事情做好。这也是SOA的设计哲学,每个人先把自己管好,再谈如何遵循社会道德的交互。
所以设计系统的时候一定要先确定程序哲学,如果哲学思想没有确定,系统就开始人格分裂了,参与到系统的人也无所适从。
名,从宏观上说解决一个问题必须使用和问题相关的名词。在Domain Driven Development 中专门有一章说对于Domain的分析,首先需要在业务专家和设计人员之间统一问题交互的名词,也就是唯一的确定参与到Domain中对象的名称。
举个例子,大家都看过程序设计书里面,尤其是C和Windows编程书里面的句柄这个词。当年,我差点被这个词搞得抓狂过,不过也感谢这个词,我tm下定决心不看中文文档了。
句柄就是哪个不懂装懂的技术书籍翻译者对handle搞出来的名词,意译过来就应该是唯一标示,不管是文件句柄还是进程句柄。返回个把手给你就是让你抓着他可以用,翻译的下流一点你说是给你个文件的小jj让他听你摆布不就完了。不懂还故作高深,说白了就是装B。
名不正则言不顺,程序就是表达,没有好的名词你根本表达不清楚。就像写程序的时候,变量名称都nm var1 ,var2 , a, b,c,d一样。
所以老子说无名,天地之始;有名,万物之母。
有了有意义的名字,才能够写出好的程序。

故常无欲,以观其妙;常有欲,以观其徼。
写程序,要insideout,和嘿咻一样。解决问题的时候,先不要冲到问题里面,呆在外面什么都不要做,观察到底是怎么回事。也就是宏观的看问题,把门道妙处先看清楚。
然后做点事情,看问题有什么反应,是不是和预想的一致,这就叫做观其徽。
简而言之,别慌着动手,多观察,多思考。

此两者同出而异名,同谓之玄。玄之又玄,众妙之门。
要做到玄,就必须适度的把握自己干和不干的冲动,然后就可以游刃有余,程序项目都被你玩。


分享到:
评论

相关推荐

    程序员的精神导师《庄子注释》

    导师的作用不言而喻,搞技术路线的我认为需要选择两个导师一个是精神导师,一个是技术导师,这样做事业才能持久。市面上太多繁杂畅销书,但我国古人的智慧还是是超越未来的,建议研读。这里推荐搞技术的朋友读读...

    程序员5个刷题网站-QingTingDecompile:QingTingDecompile

    程序员5个刷题网站 蜻蜓FM涉嫌诈骗投资人和广告主源代码剖析 本文主要内容,引用自知乎的这篇文章: 感谢“左莫”、“任正”等热心正义的网友--左莫,任正的最早的回答猜测已经被蜻蜓FM通过创新工场关系让知乎删除了...

    程序员5个刷题网站-QingTing:QingTing

    程序员5个刷题网站 蜻蜓FM涉嫌诈骗投资人和广告主源代码剖析 本文主要内容,引用自知乎的这篇文章: 感谢“左莫”、“任正”等热心正义的网友--左莫,任正的最早的回答猜测已经被蜻蜓FM通过创新工场关系让知乎删除了...

    程序员面试刷题的书哪个好-start-here::black_heart:给想要开始使用Zubi.io的人的快速入门指南

    程序员面试刷题的书哪个好 :open_book: 从这里开始 参与 Zubi 开源计划的快速入门指南。 开源的力量是人民的力量。 人民统治。 . ~ 我需要什么? 好奇心——“我没有特别的天赋。我只是充满了好奇。” - 艾尔伯特...

    黑马培训营Java基础题目答案打包

    操蛋的黑马培训营,搞一个培训机构还搞那么多面试题目,还要在博客上发标他妹的10篇日志,还要在黑马论坛获得25分技术分,还要面试.........操蛋的入学要求,老子不去啦!在这里分享一下黑马Java基础答案!算是为后来人铺路吧!

    《道德经》第二课 (2).ppt

    例如,一个优秀的程序员不仅会编写代码,还会懂得适时放手,让代码自我演化,适应市场需求。 总结来说,学习《道德经》中的“有无相生”,可以让我们在面对生活和工作中的问题时,更懂得从对立面寻找平衡,用包容和...

    华图面试培训资料之自我认知与职位匹配.pptx

    老子曾说:“知人者智,自知者明。”这强调了自我认知对于个人发展和职业成功的关键性。孙膑的“知己知彼,百战不殆”同样适用于求职过程,尤其是对于技术岗位的应聘者,清晰地了解自己的优点、缺点以及与目标岗位的...

    如何解决python的异常处理方法总结

    (老子鄙视任何一切使用table 进行对齐的程序员,你他妈没做过跨平台,就不知道有多坑爹)   VS 默认的是使用4 个空格代替tab 建的,要想保留tab 制表符,需要到选项》》 文本编辑器中修改为保留制表符。 ...

    可能是2021年最全最硬核的Java面试 “备战” 资料(暗黑版).pdf

    【Java基础】 ...这份资料旨在提供全面且深入的面试准备,帮助不同级别的Java程序员巩固和扩展知识,提高面试成功率。随着技术的发展,面试内容也会不断更新,持续学习和实践是保持竞争力的关键。

    c#学习笔记.txt

    c#学习笔记(1) 51099在线学习网发布 文章来源:网络收集 发布时间:2006-05-25 字体: [大 中 小] ... 1, 结构(struct) 与 类(class) ...有人说,选择C#意味着选择MS(在中国的程序员当中,这并不是件值得自豪的事...

    Delphi_7_程序设计与开发技术大全

    《Delphi 7程序设计与开发技术大全》是一本深入探讨使用Delphi 7进行软件开发的专业书籍。Delphi是Borland公司(现为Embarcadero ...通过深入阅读和实践,你将能够掌握Delphi 7的精髓,成为一名出色的Delphi程序员。

    让下属自由发挥.docx

    "让下属自由发挥"的理念与老子的"无为而治"思想相契合,强调了领导者应该给予团队成员足够的自主性和创新空间,而不是过度干预每一个细节。这种管理模式对于激发员工潜能、促进团队创新以及提升组织效率具有积极的...

    《易语言组件与实例》CHM电子版第二版

    5. **程序设计思想**:除了技术层面的知识,书中的实例还旨在培养良好的程序设计思维,如模块化编程、错误处理等,这对于成长为一名合格的程序员至关重要。 6. **易语言扩展**:易语言允许开发者自定义组件或扩展库...

    Delphi7开发指南

    《Delphi7开发指南》是一本专为程序员和软件开发者设计的教程,旨在深入解析Delphi7这一经典编程环境的使用技巧与开发流程。Delphi是Borland公司(现为Embarcadero Technologies)推出的集成开发环境(IDE),以其...

    Delphi7编程技巧与实例精解

    《Delphi7编程技巧与实例精解》是一本专注于Delphi 7开发的书籍,它旨在帮助程序员深入理解和掌握Delphi 7的编程技术。Delphi是Borland公司(后被Embarcadero Technologies收购)开发的一款强大的面向对象的可视化...

    open3d-0.16.0-cp39-cp39-win-amd64.whl(open3d window Python9 安装文件

    mmp,老子下半天才下下来,翻了墙还是慢,气死老子了 官网地址: https://pypi.org/project/open3d/0.16.0/#files 安装命令: pip install open3d-0.16.0-cp39-cp39-win_amd64.whl

    C++数据结构,以顺序表作为队列成员变量实现队列

    在计算机科学中,数据结构是组织、存储和处理数据的方式,而队列是一种重要的线性数据结构。在本题中,我们关注的是如何使用C++来实现一个...在实践中,理解这些基础知识并能够灵活运用,是成为优秀程序员的关键步骤。

    idea主题,包含三个主题jar包

    JetBrains的IntelliJ IDEA(简称idea)作为一款深受程序员喜爱的Java IDE,其丰富的自定义功能让开发者能够根据个人喜好调整工作环境。其中,改变主题是提升舒适度的一个重要方面。本教程将详细介绍如何利用提供的三...

Global site tag (gtag.js) - Google Analytics