禅道程序员的10条原则

2023-11-08

在一个阴雨的早上,我坐在桌子旁,开始想如何才能高效的工作。在我成为一个自由职业者之前,我有很长一段时间都很努力工作,但收效甚微。

我在2006开始接触禅学。我马上意识到:古代的禅宗大师们几百年前早就已经知道现今的程序员应该如何工作。虽然我很讨厌“如何成为一个更好的程序员”之类的文章,但我仍旧想分享一些我的想法。它对我来说起到个提醒的作用,如果你有什么想法,也请留言。

 

0.专注 | Focus

如果你决定开始工作,请尽力的做好它。不要同一时间做几件事情。一次只做一件事情。如果你多线程工作的话,你不一定会更快。多线程会让你精疲力尽,出错,转换任务时消耗更多的时间。这不是仅限于编程,这是个普遍的法则。

Kodo Sawaki说过:如果你需要睡觉,去睡吧。当你试图睡觉的时候,不要想着程序,单纯的睡觉。如果你在编程,就专注编程吧,不要做白日梦。如果你很累的话,不能再编程的时候,就睡觉吧。就算是著名的多线程超人Stephan Uhrenbacher也决定以后单线程工作。我也有与Stephan类似的经历,最后我写了Time & Bill,一个追踪时间的工具。目的是想只需要点一个键,就能追踪我的时间。结果很糟糕:我经常在一个任务只专注了几分钟就转移到另外一个任务去了。现在我好多了。类似于Pomodoro technique,我计划了一些工作时段,专注于它们。不聊天,不睡觉,不查看Appstore里的新游戏。(《追踪时间的10个给力应用程序》)

 

1. 保持清醒 | Keep your mind clean

在编程时,你需要清除你的内存。抛开你脑袋中的其他东西。如果你被其他事情所烦恼,不要让它们影响你。大部分情况下麻烦会自动消失。但如果有很大麻烦的话,你不能遗忘它们,就不要工作。试着清除杂念。当你开始工作的时候,让外部的世界远离你。

邮件列表中有很激动人心的事情吗?不要管它。你之后还有机会看到这则激动人心的事情的。立即关掉能填满你脑袋的应用吧:关掉Twitter,Facebook,E-mails。你应该将手机静音,放在口袋里。你也许会说这同第一条,专注,很接近,但还有一条,吃饭的时候或者开始工作之前不要使用那些工具。它们会将你与外部世界联系起来,分散你的注意力。

想想:大部分时间当你起床的时候你的脑袋是清醒,毫无杂念的。如果不是这样,做些运动也许有帮助(我会长跑)。如果你感到毫无杂念时,去工作吧,你能表现得很好。等你不再工作的时候,这时候你可以让你的脑袋充满杂念了。你将会看到一整天辛勤的工作已经被你抛在脑后了,这是多么棒的体验。Twitter和Co会消耗你大部分的能量。你也许会想:就是一分钟的事情。你错了,其实不止。

你其实已经意识到了吧。

road wallpaper

 

2. 保持初学者的思维 | Beginner’s  Mind

还记得你作为一个新兵时候的日子吧。如果你仍旧还是个新人,就记住这个时候吧。你时刻渴望新知。每天都想象自己是一个新人。试着以一个新人的角度来看那些技术。这样你能更好的接受指正,或者不按常规出牌,开陈出新。也可以从一些新人身上学到许多好的想法。

 

3. 抛开自负 | No ego

一些程序员有个大问题:太自我。但我们没有时间来发展自我,我们没有时间成为一个摇滚明星。

是谁决定要做一个程序员的?你吗?不是,那是其他人?可能吧。你能比较到底是苹果好还是香蕉好么?不能。你是个个体。你也不能将你的方方面面和其他个体作比较。你只能作片面的比较。

你有某一点很厉害,你也不能骄傲自满。你Java很厉害?很酷。另一个人Java的确不如你厉害,但他保龄球比你厉害。Java比打保龄球更重要么?视情况而定。可能你可以依赖Java赚更多钱,但那个人也许因为有一些保龄球球友而享受了许多乐趣。

你可以因为你是个geek就沾沾自喜么?太自我的程序员不会虚心向他人学习

Kodo Sawaki曾经说过:你没有那么重要。

想想这句话吧。

 

4. 不要想着职业目标 | There is no career goal

如果你想得到什么事物,并且不关心你现在的生活,那么你已经输掉了这个游戏。不要想象你之后将会达到什么职业目标。

工作20年,成为一个股东合作人?为什么不为了兴趣而努力工作呢?努力工作可以非常有趣。禅说,一日不作,一日不食

我们不需要等到20年后才开心。你可以现在就开心,就算你还不是一个股东合作人,你也没有开保时捷。事情会很快就转变的。你会生病,你也可能被炒,你可能自我耗尽(如果你遵循所有的这些规律,我想可能性很低)。

在所有的这些事情发生以前,尽情的努力工作吧,快乐的工作。不要仅仅盯着学校里的成就,不要想着你没有得到的一个职位。

毕竟你终究会达到某个位置。你会有一些珍贵的记忆,也许还会有一个不错的职位,业绩辉煌的20年。每一天都是很棒的一天。

如果你觉得在你现在的公司工作不开心,立即离开吧。不要呆在一个剥夺你快乐的公司工作。当然这仅仅可能在富有的国家里可行,人们可以选择离开。但如果你生活在这么好的环境里,就这么去做吧。不要后悔离开,你没有时间可以浪费,你可能明天就死掉。

 

5. 停止争论 | Shut up

如果你没有什么要说的,就不要浪费时间和你同事争吵。这并不是说你懦弱。每天你都要工作,你不需要搞得其他人紧张。想象一下,如果每个人都这么做,那会是多么好的工作环境啊。有时这是不可能的。但尽力尝试这么做吧,你会喜欢的。

如果你不自负的话,便很容易做到不争吵,而是去关注那些你真正想说的事情。不要将“自我”和经验搞混淆了,记住:你是一个新人。如果其他人有好的想法,就去支持他的想法吧。

 

6. 留心\细心\意识 | Mindfulness. Care. Awareness

是的你在工作。但同时你在呼吸。即使你的工作有困难,你也需要聆听你身体的信号。你应该学习对你身体好的事情,譬如食物。你应该学会照顾好自己,以及留心你所在的环境,毕竟你喝的水将会又流到河里去。因为你仅仅为你自己而活,你独自来到这个世界,也将独自离开。地球没有你照样运转

不要工作在你不喜欢的环境。不要做不拿报酬的工作,这意味着你不会快乐,你不得不离开你的卧床。远离那些让你不开心的事物。不计回报的工作听起来是天方夜谭吗?想想那些在黄金时间里做开源项目的人。如果你在邮件列表中订阅过一些项目,你可能已经知道这是多么热门的事情。如果你并不感到开心,就不要这么做吧。我知道许多人做开源项目,但是他们并不喜欢。用Time Bill我追踪过我为开源项目花费的时间,我浪费了太多的时间,尤其是那些我并不喜欢的项目。

有些人认为只有当他们有消遣时间的时候,能在晚上有xbox玩,有酒喝才会感到开心。虽然有时享乐是非常不错的,但不代表你一辈子的所有时间都是快乐的。如果你能避免你不喜欢的情况,请尽量避免(就像我上面提到的),但有时你不得不面对那些你不想做的事情。譬如人手将经理的Excel中的数据复制粘贴到phpmyadmin中去。这些可能要花上几天,甚是枯燥。你感到极为无聊,但有时你不得不这么做。你不能因为碰到一个枯燥的任务就随意的辞职。禅宗大师们也不会逃避他们的工作的。他们在4点钟起床(有时早些,有时晚些,取决于习俗),开始冥想和工作(他们认为工作也是冥想)。他们会做清扫厕所的工作,或者做园艺,如果是斋饭僧,他们会做饭。他们会全神贯注的工作。不管他们做什么,他们都会全身心的去做,并且感到快乐知足。因为每时每刻,甚至是打扫厕所,对他们来说都是他们的生活

也就是说:如果你需要复制粘贴excel,也不要哭诉了。仅仅去做吧。不要浪费你的时间在抱怨上,它们会过去的。试着做个最好的复制粘贴者吧。

如果你得了心脏病死了,人们也许会说:“哦,他工作太长时间了,他经常为我在深夜里无偿工作。”没有人会指引你去另一个世界,最后一步要我们自己走。你不能转换世界上的任何东西。什么都不行。所以你需要照顾好自己,每时每刻。如果你死了,就死了,如果你活着,就应该好好的活着。没有时间去浪费了。

在禅学中“心”是个很大的词(在任何一种形式的禅学中都是)。我不可能完全表示清楚它的含义。要明白“心”的不同的含义是很困难的。可能“意识”这个词对你来说更容易懂些。你需要意识到你做的每一件事情。否则你就是在浪费时间。当然你可以这么做,取决于你自己,如果你喜欢这样的话。

 

7. 拒绝老板 | There is no Boss

是的,老板付你工资,他告诉你需要做什么,他也可以炒掉你。但没有必要放弃掉你自己的生活,为你的工作而生病。最终你的老板不能控制你了,也许你也失控了 – 请不要走上这条路。

回到你的老板:如果你允许的话,他可以让你的生活更加糟。但有解决的方法,如果他要你做你感到不开心的事情,或者违背你原则的事情,坚决说不。会发生什么?最坏的情况,他会炒掉你。那又怎样?如果你生活在西方国家,如果你是个程序员(如果你在读这篇文章,那么你极可能是程序员),你会找到另外一份工作。

我并不是说对类似将CSV数据拷贝成HTML这样的任务说不。我说的是一个星期工作80小时的工作。或者你觉得你的孩子需要更多的关注。或者你被逼要炒掉其他人仅仅因为你老板不喜欢他们。或者你是个顾问,但是需要为一个核电站或是为坦克编写程序(有些人会说为核电公司工作是多么的好啊 – 但这违背我的原则,而且仅是一个例子),你都可以说不。

 

8. 有其他爱好 | Do something else

程序员不仅是一个程序员。你应该做一些和电脑无关的事情。在业余时间,你可以去航海、钓鱼、潜水、冥想、军事艺术、玩尺八(Shakuhachi,一种乐器)。不管做什么,用掉你剩下的能量吧,就像你工作的时候那么竭尽全力。兴趣爱好不单是兴趣,它也是你是谁的一种象征。当别人说兴趣不重要时,不要让他得逞。现在我们可以拥有自己的爱好。我录了一些CD,写了几本科幻书(没有发表过,我需要更多的练习写作)。这些事情都能体验我是什么样的人,最终它们引领我接触到禅学,以及写下这篇博客。最近我在练习尺八。这些都是我日常生活的一部分。

 

9. 没有什么东西是不可取代的 | There is nothing special

一朵花很美丽,但它仅仅是一朵漂亮的花朵,没有什么更特别的了。它一点也不稀奇。你是一个会编程的生命体,可能你很棒,但也没有什么稀奇的了。你仅仅和我一样是这个星球上存在的一个生命体而已。

你要上厕所,你要吃饭,你要睡觉。很久以后(希望如此)你会死去,你所创造的一切将会随之而去。就算是金字塔很久以后也会消失。你知道建造金字塔的人的名字吗?如果你知道,那么这很重要么?不重要。金字塔在或是不在,都没什么特别的。

同样你写的程序也一样。银行通过你写的软件赚钱。但当你离开之后,没人会记住你。这不是谁的错,这是时间的规律。你不需要担忧。如果你相信这一条规律,你会意识到上一个项目是非常有趣的项目。现在仅仅需要继续,专注的去看其他的什么事情。

如果你的公司因为财政原因倒闭了,不要担心。生命还会继续。我们不是真的需要一个xbox,一辆车或是什么其他的。这个世界上大部分人都生活中水生火热中。他们不在乎xbox,因为他们对于食物和水更加渴望。

所以,为什么只有你是独一无二的?仅仅因为你很幸运的生活在西方?因为你会编程?不,你没有什么特别的。你应该让你的自我感消失,放松的生活。享受花朵的香气和颜色吧,当冬天来临时不要过于杯水,春天到来时不要过于高兴。这是自然规律。当别人否认你的程序时也要这么宠辱不惊。因为公司并没有那么重要。

 

声明

我不是一个禅师。我仅仅在学习和练习。如果你认为有什么你需要更深入的了解,请教你当地的禅师。当然我可以试着在这个博客上回答,但我只是个初学者。不管怎样,我很乐意看到你们的评论,如果你喜欢这篇文章,或者用这篇文章的链接发条推,我会很高兴的。谢谢阅读!

 

英文原文:Christian Grobmeier     编译:伯乐在线 – 唐小娟

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

禅道程序员的10条原则 的相关文章

  • MySQL GROUP BY 仅返回第一行

    我有一个名为forms具有以下结构 GROUP FORM FILEPATH SomeGroup SomeForm1 SomePath1 SomeGroup SomeForm2 SomePath2 我使用以下查询 SELECT FROM fo
  • 从数据文件夹备份中恢复mysql数据库

    我已经卸载了旧的XAMPP并删除了所有内容d xampp folder并安装了新的 当我复制备份文件夹时 带有我的数据库的名称 包含所有 frm and opt文件 到D xampp mysql data 数据库显示在 phpmyadmin
  • 如何将多个 csv 文件导入 MySQL 数据库

    有没有办法同时将多个csv文件导入MySQL数据库 某种批量导入 我在 Mac OSX 上运行 MAMP 服务器 我有 185 个 csv 文件需要导入到 MySQL 表中 我可以使用 phpMyAdmin 的导入选项卡单独导入它们 但这需
  • 如何增加 phpMyAdmin 中的导入大小限制

    有谁知道是否或如何可以增加phpMyAdmin 中的导入大小限制 目前我的服务器限制为 50MB 请注意 这与upload max filesize在 php ini 中 该值设置为 2MB 我需要将一张表导入到我的一个数据库中 而 php
  • 如何保护 phpMyAdmin

    我注意到我的网站有一些奇怪的请求试图找到 phpmyadmin 例如 phpmyadmin pma etc 现在我已经通过 apt 在 Ubuntu 上安装了 PMA 并且想通过不同于 phpmyadmin 的网址访问它 我可以做什么来改变
  • 在 /usr/share/phpMyAdmin/libraries/Error.class.php 中找不到 phpMyAdmin 类“PMA_Message”

    我刚刚收到此错误 过去 2 年 phpMyAdmin 中没有错误 PHP 致命错误 在第 24 行 usr share phpMyAdmin libraries Error class php 中找不到类 PMA Message 我尝试搜索
  • phpmyadmin 和外键

    我向我的字段之一添加了外键约束 插入时 该字段显示为下拉菜单而不是预期的文本框 但下拉菜单中的每个值都会列出两次 一次在值之前有一个减号 一次在值之后有一个减号 像这样 value1 value2 value3 value1 value2
  • 数据库传输/服务器设置期间波兰字符集出现编码错误

    我正在尝试将我的一个数据库从一台主机 home pl 传输到另一台主机 我新设置的服务器 我试图传输的脚本是wordpress 不幸的是 无论使用哪种方法 我都在努力解决编码问题 新主机配置 在我的新服务器中 我在 my cnf 中使用以下
  • 如何使用phpmyadmin导出所有数据库

    可以使用phpMyadmin一次性导出所有数据库吗 如果不是 最好的方法是什么 提前致谢 以下是使用 phpMyAdmin 导出所有 mySQL 数据库的步骤 2015 年 12 月 随着 phpMyAdmin 的发展 添加了新功能 打开
  • 使用 apache2 全新安装后 phpMyAdmin 无法工作

    当我尝试访问 phpmyadmin 页面时 我收到以下错误
  • varchar 和 int mysql 数据类型的默认值

    屏幕截图显示了数据类型的 3 个典型定义 id 自动增量 标题和数字 1 之间有哪些区别 none and NULL 2 我必须选择吗as defined 当我想要一个空字符串时 对于 varchar 类型 3 我必须放一个as defin
  • XAMPP - 对于表“users”,用户“@”localhost”的 SELECT 命令被拒绝

    不久前 我删除并弄乱了 XAMPP 中的一些功能 我重新安装了它 并移动 重命名了我的文件夹和所有其他文件 所以我现在有了一个新的空的 xampp 目录 但是 当我尝试使用任何数据库功能时 它会出现如下错误 SELECT command d
  • phpMyAdmin 中的“内部关系”对于 MyISAM 表有何作用?

    在 MyISAM 表的 phpMyAdmin v2 8 2 4 中 关系视图 出现在 结构 选项卡下 它显示内部关系列表 但是 考虑到 MyISAM 不支持外键约束或关系完整性 它们会做什么呢 从 phpMyAdmin 版本 3 2 0 1
  • 如何对表中的每一行运行特定的sql查询?

    所以我的数据库中有两个表 它们看起来都是这样的 通讯 拨打电话 Timestamp FromIDNumber ToIDNumber GeneralLocation 2012 03 02 09 02 30 878 674 Grasslands
  • 使用 PHP 查询更改表,列名未显示在 phpMyAdmin 中

    这是我的第一篇文章 这里有一篇类似的文章 phpMyAdmin 不显示添加的列 代码日志 https stackoverflow com questions 12960302 phpmyadmin doesnt show added col
  • 使用用户定义函数 MySql 时出错

    您好 请帮我解决这个问题 提前致谢 我在数据库中定义了这些函数 CREATE FUNCTION levenshtein s1 VARCHAR 255 s2 VARCHAR 255 RETURNS INT DETERMINISTIC BEGI
  • 如何将html表单中的信息写入MySQL数据库

    好吧 我正在建立一个带有表单的网站 我想将用户在表单中输入的所有信息保存到我的 MySQL 数据库中 表单的编码如下
  • 如何限制两个表之间一对多关系中的多个数量?

    我有一个带有两个 MySql 表的 MySQL 数据库 第一个是第一个表 表 A 有一列具有唯一值 从值 从 1 到 n 在第二个表 2 表 B 中 我有两列 在第一个表中我有一个名称 在第二个我的值从 1 到 n 如果我在 中添加一个值
  • 导入mysql数据库出错

    我导出我的数据库并导出到另一台计算机使用 phpmyadmin 但它错误 静态分析 分析过程中发现2处错误 意想不到的角色 靠近位置 53 的 无法识别的语句类型 位置 1 的 div 附近 SQL查询 div class error h1
  • 如何使用 phpMyAdmin 自动导出 mySQL 数据库

    是否可以使用 phpMyAdmin 自动导出单个数据库 当我尝试从外部脚本 如 php 创建 sql 文件时 生成的 sql 文件看起来很干净 但导入时会导致应用程序出现问题 当我使用 phpMyAdmin 通过使用 Export 创建类似

随机推荐

  • BeanUtils使用方法

    BeanUtils类可以帮助我们copy值到类的属性中 也可以copy一个对象到另一个对象 java view plain copy UserEO user new UserEO String key userName String val
  • JAVA网络编程 ——基于TCP的Socket编程(1)——实现服务器端与客户端的实时对话

    第一篇文章 我先介绍以及记录一下我所学的知识点 总结了一下视频老师讲的东西 一 HTTP与Socket 1 HTTP 超文本传输协议 特点 客户端发送的请求需要服务器端每次来响应 在请求结束之后主动释放连接 从建立连接到关闭连接称为 一次连
  • openGL ES3.0 glGetShaderInfoLog函数详解

    前言 glGetShaderInfoLog函数官方文档地址 Name glGetShaderInfoLog Returns the information log for a shader object C Specification vo
  • 前端发送axios请求报错Request failed with status code 500解决方案

    1 报错如下 2 因为后端的api是自己使用node express搭建的后台 然后要求请求头的参数格式为application x www form urlencoded的参数格式 打开报错请求 发现自己的请求头参数格式没有错误 jwt的
  • 2017.08.04 通过openGL纹理在Unity中获取摄像机图像

    主要代码如下 IEnumerator Start Image left new Texture2D m videoWidth m videoHeight TextureFormat ARGB32 false 在Unity中创建2D纹理 Im
  • 【SCL】博图SCL编程语言(1)

    初识博图scl语言 文章目录 目录 一 scl语言简介 1 介绍 2 相关问题 3 scl语言的编写环境 二 表达式和运算符 1 算术表达式 1 介绍 2 算术表达式使用 3 例题 2 关系表达式 1 介绍 2 使用 3 逻辑表达式 1 取
  • eclipse servers没有tomcat_Tomcat服务器入门详细教程

    前言 不是井里没有水 而是你挖的不够深 不是成功来的慢 而是你努力的不够狠 你好 我是梦阳辰 下面和我一起学习起来吧 文章目录 01 Tomcat概述 02 Tomcat服务器 03 使用Eclipse配置Tomcat服务器和新建项目 04
  • 关于2022年度深圳市重点实验室组建拟资助项目的公示

    各有关单位 根据 深圳市科技计划项目管理办法 有关规定 市科技创新委员会拟对2022年度深圳市重点实验室组建相关项目进行资助 现予公示 向社会征求意见 任何单位和个人对公布的项目持有异议的 请在公布之日起10天内以书面形式 注明通讯地址和联
  • 推荐系统学习笔记-冷启动

    简介 推荐系统的主要目标是将大量的标的物推荐给可能喜欢的海量用户 这里涉及到标的物和用户两类对象 任何互联网推荐产品 标的物和用户都是不断增长变化的 所以一定会频繁面对新标的物和新用户 推荐系统冷启动问题指的就是对于新注册的用户或者新入库的
  • 「Hive」json数据解析get_json_object函数的用法

    应用场景 提取以json字符串的方式存储的数据 用法 get json object expr path expr 包含格式正确的 JSON 的 STRING 表达式 或字段名 path 包含格式正确的 JSON 路径的 STRING 文本
  • Datawhale 李宏毅机器学习 Task1

    目录 一 简单理解机器学习 二 机器学习基本步骤 三 机器学习相关步骤 1 监督学习 2 半监督学习 3 迁移学习 4 无监督学习 5 监督学习中的结构化学习 6 强化学习 四 学习总结 一 简单理解机器学习 就像是生物本能 比如河狸修水坝
  • Jmeter-验证码(图片base64加密+uuid)

    适用于验证码为img 图片base64加密 标识 uuid 的情况 1 先下载OcrServer图片识别工具 2 添加验证码获取的http请求 3 通过json提取器获取img和uuid 4 调用http请求获取OcrServer识别的结果
  • ovirt超整合部署记录

    网络磁盘设置 root ovirt106 ping www 163 com PING z163picipv6 v bsgslb cn 221 233 240 109 56 84 bytes of data 64 bytes from 221
  • 【前端】neo4j导出json数据可视化

    占位贴 提醒自己有时间了把源码和思路提供一下
  • ArcgisOpr CXX0030

    这个错误我是找了好多天才找到了 AE ArcgisEngine 在用VC环境进行开发时 对license的初始化失败 并在VC的编译输出窗口中提示Could not bind to a valid ArcGIS installation 是
  • UnitTest单元测试框架解析【实用篇】

    UnitTest是展开自动化测试的基础 这个框架很重要 首先我们先自己写一个测试类 1 被测试类 Widthget py coding utf 8class Widthget def init self size 10 10 self si
  • 常用的正则表达式总结(慢慢增加中。。。)

    1 0 100 内的数字 不包含0 100 排除0 0 0 00 保留三位小数 1 9 1 2 d 1 3 0 0 9 1 2 1 9 2 0 100 内的数字包含0 100 保留三位小数 d 1 2 d 1 3 100
  • Java将jar包打成exe包

    如何获取jar包 1 如果是maven项目 2 如果是SpringBoot项目 添加maven插件 直接使用maven插件进行打包 Jar打包成exe 准备 相关的jar Exe4j应用程序 地址 https www ej technolo
  • 第三届Python数据分析职业技能比赛A题

    第三届Python数据分析职业技能比赛A题 Hello World 赛题 竞赛背景 字段说明 考核目标 任务 任务一 数据预处理 任务二 数据可视化 任务三 数据分析 任务一思路 1 2 1 3 任务二思路 2 1 2 2 2 3 任务三思
  • 禅道程序员的10条原则

    在一个阴雨的早上 我坐在桌子旁 开始想如何才能高效的工作 在我成为一个自由职业者之前 我有很长一段时间都很努力工作 但收效甚微 我在2006开始接触禅学 我马上意识到 古代的禅宗大师们几百年前早就已经知道现今的程序员应该如何工作 虽然我很讨