本文即时随想。仅从个人的经验和感受出发,不代表任何组织的利益。
我时常会想,我究竟需要在写代码这条道路上走到哪种高度?基于这个问题,我自己就把写代码过程分为了以下四个阶段:
入门学徒
开发者
工程师
艺术家
1.入门学徒
这是每个进入这一行的人必经的阶段,划分的标准是,看在没有人对你耳提面命的时候,
你自己一个人是否可以正确上道。这里面的知识包括你对该们语言的基础语法的掌握,
还包括对社区的认知和一些常见的解决方案,最佳实践等。
是否可以真正进入开发者行列,其实就看两个字:开窍。
2.开发者
这个词其实可以囊括国内很多这一行的人,毕竟很多人也都是混口饭吃而已,
对比于入门学徒,开发者这个阶段,我认为是对很多的业务和应用场景都认识地非常清楚,
对于解决某一个具体的业务问题,能迅速给出自己的解决方案,然后把代码落实起来。
3.工程师:
工程师这个词其实我个人非常喜欢,因为它不仅真实表现了我们这一行真正需要干什么,
需要掌握到那些知识,这些知识对比于前面的开发者最大的区别就是:写好代码,真的是一个浩大的工程,从来都不是一个简简单单的事。
所以这里面突出的是工程能力:单元测试的能力,项目重构的能力,设计模式的应用能力。
而就目前我接触的人(PHP 单方面)来看,就单单写单元测试这一条,
就可以把一大堆自认为写代码不错的人划分出去,甚至 TDD 是什么都没听说过的人大有人在。
当然,目前我的自我认知来说,我也只是一名开发者而已。
4.艺术家
是的,我认为在工程师上,艺术家才是一个写代码的人的终极追求。
这些艺术家无疑是前面几个阶段的知识,并且在这个领域之内,
会有自己的思考和一些准则,哪怕是有一些些偏执,我觉得这都是极好的。
对比于工程师,艺术家也是对写代码造诣极高的人,但是最终的表现可能就是细节的表现,
这里最典型的例子就是 Laravel 框架的作者 :Taylor 。
但凡你认真看过框架里面的注释和源码,就会发现,不管是代码的排版和注释的缩进,几乎都是到了偏执的地步。
所以,有自己的技术追求,向着自己的目标一步步进发,才是一个开发者的正确价值观。