人天性中都有一种示强的愿望。随着软件越来越多地应用到我们日常生活中的每个角落,社会也越来越依赖于
你的开发能力。但是随着软件应用的范围越
来越广,对普通的开发者而言,他们的所不知道领域也越来越多。
你深陷于无知的黑暗中。你周围的人面临着巨大的交付压力,他们包括你的项目经理,你的客户,
你的同事,
尤其是你自己。当他们问你什么时候可以完成任务X的时候,从他们的眼中,你可以看到那种期待你自信回答的
目光。你需要安抚这些人,向他们反复保
证你非常清楚地知道他们的需求,告诉他们你将如何去实现,以及什
么时候可以交付,这些都会成为你巨大的压力。
软件匠师通过与客户和同事之间紧密地合作来建立自己的声誉。从长远来看,不管是默默忍受压力,或是迎合
那些人,你都不能与他们建立紧密的关系。
告诉他们真相。让他们知道你正在逐渐了解他们的需求,并在不断
地学习怎样去实现这些需求。如果你能让他们相信你学习的能力,而不靠假装你什么都知道;那么
你的声誉将
会建立在你的学习能力上,而不是建立在你已经掌握的东西上。
你要习惯于这种学习过程;这是通往匠师的必经之路。我们中那些不习惯这种方式的人将会成为专家:就是指
那些抱住某个的平台或者某个领域不放的
人,他们就是那里的绝对专家。专家通过限制自己关注的范围,从而
在某个特定的领域可以做到最好。我们这个工业化的社会固然需要这种专家,但这并不是我们成
为匠师的目
的。
专家是通往大师之路的附带产物,而不是最终目的。在这条路上,你会遭遇各种技术和涉足各种领域。如果在
训练和实战中,你成为了一些或某些技术领
域的专家,这是再好不过的事情了。这就像女性通过马拉松训练可
以增强腿部的肌肉一样。但是,增强肌肉并不是她训练的目地,她的目的是为了更能跑。同样地,
在一个
Python项目中热情地工作了两年的程序员,他会对Python有非常深入地了解,正如马拉松运动员腿上强健的
肌肉只是过程,而不是终点。
匠师与专家之间最重要的区别在他们成为了某个领域专家之后的表现。专家尽一切可能将自己限定在熟悉的领
域,控制自己学习、实践和项目的范围(这
样搞会很有赚头)。但匠师所拥有的勇气和谦虚的心态,让他们将
熟知的专攻放到一边,而去学习自己并不了解的技术,或者进入一个新的领域。
专家完全沉浸在自己的已知领域,这是以无视他们的无知为代价的。他们在反复炒自己的剩饭。匠师是正在学
习的专家,他们承认自己对一个领域的无
知,并且努力去减少这种无知。这就像花园里面的土壤一样,通过播
下知识的种子来消除它们的贫瘠。诚实地面对你自己以及那些依赖你的人;遇到问题,向你的同
事求助。这
样,通过尝试、练习和阅读来浇灌你的种子。相反,你也可以隐藏自己的无知。随着无知的滋长,你将会借助
遮光篷来掩盖自己的窘迫,来换取你可怜的
自尊心。专家与匠师的差别正在于一个好的花园与一个好的园丁的
差别。
专家拥有少数技术路线下的深入知识。这些知识可以让专家们在少数平台和领域里面构建可靠的软件。大师级
别的匠师则不然,大量的技术和领域经验使
得他们在任何的软件开发中游刃有余,拈花自如。匠师也会有自己
喜欢的套路,同时足够多的套路选择会让她适应更广的技术环境。直面自己的无知,你将会更快地
抹平这片空
白,而用不着假装厉害。
编注:这篇文章节选至Dave的进阶作品《从学徒到熟工:软件匠师指南》。
阅读(1002) | 评论(0) | 转发(0) |