热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

10年代码谈编程的三层境界——器、术、道

不知不觉,踏入编程这一行,已经近10年了。无论是否功成名就,对于程序员来说,十几年的工作经验都能够算是“资深”了

 不知不觉,踏入编程这一行,已经近10年了。无论是否功成名就,对于程序员来说,十几年的工作经验都能够算是“资深”了。张爱玲曾经说过:“活过半辈子的人,大都有一点真切的生活经验,一点独到的见解。他们从来没想到把它写下来,事过境迁,就此湮没了。”虽然我的自然年纪远远不足半年,但编程生涯,无疑早就过半。所以,我觉得应该把这么些年在编程方面的理解和感悟写下来,献给自己,也献给所有的程序员。

 首先说说我对编程的整体认识吧:编程,是一门现代技艺,和传统行当相比,它非常年轻。但是,任何技艺,皆有“器”、“术”、“道”三个层次,年轻的编程行业也不例外! 


先说最低的一个层次——“器”:

《易经》曰:“形而下者谓之器”,说得通俗一些,就是具体事物,也就是工具。具体到编程上,“器”,也就是开发工具。一个程序员,无论把开发工具玩儿得多么转,都只是活跃在这个初级的层次。我们可以看到书店里热卖《精通***》,《21天精通***》等等的计算机类书籍,这种书籍也就是帮助你学会一门工具。而学会这门工具以后你才能去做开发,才能用开发来养家糊口(说的有点远了J)。掌握了“器”,就是掌握了入门的手段,能够得以一窥编程世界的锦绣奇妙。刚刚掌握编程工具的开发者,会像一块干燥的海绵,勤奋而快乐地吸收书本上的知识和同行中的经验,他们会感到,每一天都有进步和提高,每个人都值得自己去学习和借鉴。


 再来说一说编程境界的第二层——“术”:

 何谓“术”?“术”,是中国古人对于技艺、技巧、技能的一个称谓,说直接一点,就是安身立命的手段。在编程中,初学者在使用相应工具进行实际开发后(多则7-8年,少则3-4年),会学习和体会到了一门开发语言、或者一个IDE的使用技巧,能够使用这些技巧完成开发工作——这就是程序员在“驭术”。“驭术”这个词,听起来颇有能耐,所以达到这个层次的开发者,通常对自己的能力信心满满,对别人写的代码却时常有所质疑。由于他知道了很多的技巧,所以总能找出别人代码中的问题或者不足,即便是这些瑕疵只是见仁见智的问题而已,根本不会对整个的产品带来任何影响——但是,迷恋技巧,精于“驭术”的程序员们,眼里容不得这些沙粒,他们会有一定的“代码洁癖”,会对别人开发的代码大加指责。在每一个软件公司,我们都会听到有人说“你的代码变量就不应该这么定义”、“你的逻辑为什么不这么处理?”、“你为什么这么写代码?”等等,当然,有时还会听到华丽丽的洋文蹦出,诸如“show me the code”之类。长于“驭术”的开发者很危险,因为他们有能力将一个产品带向失败。大家看到这里可能会觉得我说的处于这一层的开发者百无一用,毫无优点可取。其实并非如此。处于这一层次的开发者,是最具创造力、最有开发能力,同时兼有开发经验的群体。他们只需要一个机会,一个项目、一个产品就足以证明自己的实力。而且由于他们有一定的代码洁癖,所以写出的代码也是这三层中最优秀的。他们只需要从代码上稍稍抬起头,分出部分精力去关注项目的其他方面,就有可能成长为企业的技术骨干或者项目经理。

但是,如果只关注于代码,视野就必然有限。毕竟,“术”仅仅是“技”而已,并非多么艰深的学问,熟了多少能生出巧来。如果程序员甘心停留在这个层次,那永远只能玩弄雕虫小技。


 第三层——“道”

 “形而上者谓之道”、“大道至简”、“大道无形”。“道”,是中国哲学特有的命题,是所有领域对本质探索的终极目标。编程中的“道”,是在经历了蹒跚学步的“器”的阶段,和年少轻狂的“术”的时代后,慢慢对编程有所感悟,对开发产品有了自我理解,开始对这个行业进行本质思索的时期。这个层次的开发者已经不仅仅是一个程序员,他们能够引导一个产品向着最优的方向发展,能够在短时间之内“开发”出公司所需的产品。我为什么要为“开发”这个词加上引号呢?因为这个层次的开发者有并不一定会在代码书写上亲力亲为,他们已经不再是一个code,不再乐于整天坐在凳子上coding了。他们会整合资源,化繁为简。他们可能无心在代码上炫耀技能,但是他们对于开发的理解,对于产品的定位却是处于“术”阶段的人所无法企及的。当然,“驭术”程序员未必会服气“载道”程序员的工作方式,因为思想高度不同,视角必然不同。编程行业也是一座金字塔,能“由术悟道”的程序员,毕竟少之又少。站到了高处的人,或许难免不胜寒,但他们的思想可以令整个行业熠熠生辉。

在“庖丁解牛”的故事里,庖丁曾对文惠君说:“臣之所好者,道也,进乎技矣。”庄子对这位地位卑微厨子的话给予了高度的赞扬。或许,志向追求其实与社会地位、受教育程度等方面的关系不大,“由术悟道”只是自强者最后的殊途同归。 



推荐阅读
  • 35岁程序员连续被2家公司裁掉,网友酸了,成功入职成事业编晒出福利
    这篇文章讲述了一个35岁程序员连续被两家公司裁掉的故事,他在遭遇中年危机后成功入职事业单位,并分享了入职后的福利。文章探讨了程序员在互联网行业中的竞争力下降的原因。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文介绍了程序员最美的情人节礼物,即使用JS渲染的3D玫瑰,通过在QQ空间和人人网上分享这个特殊的礼物,可以给情人带来惊喜和喜悦。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文介绍了一种处理AJAX操作授权过期的全局方式,以解决Asp.net MVC中Session过期异常的问题。同时还介绍了基于WebImage的图片上传工具类。详细内容请参考链接:https://www.cnblogs.com/starluck/p/8284949.html ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 如何在跨函数中使用内存?
    本文介绍了在跨函数中使用内存的方法,包括使用指针变量、动态分配内存和静态分配内存的区别。通过示例代码说明了如何正确地在不同函数中使用内存,并提醒程序员在使用动态分配内存时要手动释放内存,以防止内存泄漏。 ... [详细]
  • 本文介绍了自动化测试专家Elfriede Dustin在2008年的文章中讨论了自动化测试项目失败的原因。同时,引用了IDT在2007年进行的一次软件自动化测试的研究调查结果,调查显示很多公司认为自动化测试很有用,但很少有公司成功实施。调查结果表明,缺乏资源是导致自动化测试失败的主要原因,其中37%的人认为缺乏时间。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
  • 从高级程序员到CTO的4次能力跃迁!如何选择适合的技术负责人?
    本文讲解了从高级程序员到CTO的4次能力跃迁,以及如何选择适合的技术负责人。在初创期、发展期、成熟期的每个阶段,创业公司需要不同级别的技术负责人来实现复杂功能、解决技术难题、提高交付效率和质量。高级程序员的职责是实现复杂功能、编写核心代码、处理线上bug、解决技术难题。而技术经理则需要提高交付效率和质量。 ... [详细]
author-avatar
鐘彦璋864175
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有