[开发探索]知行合一

来源:互联网 发布:js车牌是什么单位 编辑:程序博客网 时间:2024/04/28 04:34

这里写图片描述
这个blog也写了10年了,翻翻之前的文章,从第一年的时候,“什么是最好的开发,什么是最好的开发者”就一直是笔者不停探索的话题。
从是否要设计,到无懈可击的代码,到代码的复杂度,到项目中实现的火候。
hmmm,现在就这个话题再次做一些思考,结论先行便是:

  • 并无最优,只有进化和趋近
  • 知行合一是进化的最优方式
  • 面向进化的开发方式

实践异常关键
之前最困扰我的是,最好的开发是不是要通过阅读来学习出来,而实践做项目一定程度上是偏慢的做法,毕竟在单独算法这种,阅读学习的速度要快太多了。
但是面对开发,尤其是大规模项目,这个问题则是另外一个情况。
在面对一个简单问题,比如排序等,我们可以得出一个可以证明的最优算法,但是游戏开发,当我们在谈及最优开发的时候,已经不是一个局部的算法问题,而是涉及到产品本身(包括质量,玩家定位,市场策略等),团队本身(团队成员的各种组合),项目本身(时间和成本)以及技术团队本身,是一个超复杂的系统。
面对这样的系统,我们会面临互相矛盾的因素,比如:运行效率/设计复杂度/项目周期。。。,包括我们学习到的知识和经验,也常常会以矛盾的方式存在。
所以面对这样高复杂度,充满矛盾因素的系统,我们需要一个行之有效的收敛简化的过程:实践–也就是做项目。
在经过相当量的学习和计划之后的实践,我们得到结果,这个就让大量的未知一下子落地了,“事实胜于雄辩”在这里掷地有声,什么重要什么不重要,各项事情的权重,立刻就有了结果,然后在后续迭代中,问题就被大幅度收敛了。

所以,在面临高度复杂的事情的时候,行动让事情收敛,是更能让我们看清认清的途径。
单纯阅读学习,并不能给我们实践级别的认知。
知行合一的强力之一就在此:收敛大型复杂系统。

没有最优,只有进化
这个进化有两层含义:
- 形成正确的认知,e.g.更好的算法
- 形成更高层的认知:类似术到道的过程
而这其中高层认知,他是一个领悟的过程,大道至简,最后大师们领悟出来的道理,大家听起来跟废话一样,但是在实际应用中却有千钧之力,这其中的区别就在领悟的过程。
这里的最佳范式,相信大家也都认同:学习思考,计划,开发实践,复盘思考。
在这个过程中,不停地去抽象出更加正确和高层的认知,可以说是最有效的了。
知行合一强力之二:加速领悟。

面向进化的开发方式
在整个开发方式,我们大可以把在做的事情提升一个维度,不只是把手里的项目做好,而且保持团队和自己的进化。
我们的最终产品是团队本身,这本身就是一个非常鼓舞人心的事情,我们一定程度上已经在这么做了,这也给团队注入了很强的能量。
这其中我们可以注重这么几点:

  • 最终落地于团队与个人的进化
  • 保持广阔的视野和跨学科的知识,做项目本身是覆盖非常广的范畴,如果以纯hacker&programmer的范畴去定义,就会在问题思考和解决方案搜寻上,非常局限,甚至南辕北辙。
  • 保持使用更好的开发方式,拒绝停止:每次在做了学习思考和总结之后,要在思考方式和开发方式上有所进展,如果还是原来的方法,那么就是一个无效迭代。keep evolving.
  • 学习和实践的搭配合理:学而不做或者做而不学都不够好