老僧三十年前,未参禅时,见山是山,见水是水。及至后来亲见知识,有个入处,见山不是山,见水不是水。而今得个休歇处,依前见山只是山,见水只是水。大众,这三般见解,是同是别?有人缁素得出,许汝亲见老僧。
这段文字出自《指月录》,将人的境界归纳为三个阶段,我觉得这恰好与序员成长历程的每个阶段不谋而合。
- 见山是山(会抄),这正对应程序员初入行,对一切都一知半解的阶段,框架或语言的背后都是“黑盒”后的东西,对于优秀代码只会生搬硬套,知道可以那么写,但不知道为什么那么写。
- 见山不是山(会写),这个阶段已经对语言掌握的很熟练了,可以自己实现很复杂的逻辑和算法。但是对于背后的原理并不明白。
- 见山还是山(明白背后机制),这个阶段对于自己常用语言的整个体系已经了然于心,并熟知背后的机制,已经成为了第一阶段的自己的模仿对象。
跟同事交流时发现,即便是工作了五六年的“老手”,也存在对背后机制不求甚解的状况,不明白【术语】的重要性,这让我挺意外的。我后来也想了想,这对于个人人生追求而言,每个人有自己的选择,不可能也没必要强求每个人都成为在业内举足轻重的人,追求不一样,也没有对错之分。但是这对于个人的职业生涯而言,是极【不专业】的表现。现代社会离开不开终身学习,特别对于程序员这个行业,刨根问底的精神更是非常重要的。
因此,打算开始写这一系列——看山是山,分享、也是为了给自己记录常见却又经常被忽视的问题。