InfoQ中文站的QCon大会已经为业界的朋友所熟知,三天的日程中,各种演讲干货之多,场面之精彩已经让越来越多的人愿意加入到这个大平台中来交流和分享。而大家不知道的是,为了让各位讲师能够在现场有更出色的表现,InfoQ从今年的QCon北京开始,都会在会前一个月左右为各位讲师安排一场特殊的培训——QCon讲师训练营。
10月12日,我也有幸作为InfoQ的编辑参加了训练营,聆听了杨天颖老师一天的课程,收获非常大。而在10月26日大连本地的QClub活动上,我在演讲中着重实践了杨老师教授的各种技能,包括:手势、J-Cutting的场景转换、放慢语速、把QA环节放在总结之前等等,得到的效果非常不错。
经过活动上的演讲,非常重要的一点就是,我把训练营上获得的知识真正消化吸收了一部分,如果说经过别人总结归纳然后讲述出来的知识是第二手的知识,那么在实践中通过自己的切身体验所获得的知识绝对是第一手的知识,而这种知识也因为其新鲜的程度以及和自己密切相关,所以更容易让我牢记。
在演讲的过程中如此,在作为程序员编写各种各样程序的过程中也是一样。 曾经在公司面试新员工的时候,非常注重的一点就是——是否做过真实的项目,相信很多公司中的面试官也是一样。仅仅学习并掌握了书本上的内容是不够的,“纸上学来终觉浅,绝知此事要躬行”,只有在切实利用学到的知识解决了实际的问题之后,即获得了第一手的知识之后,才能够对其有深入的了解,从而可以在以后的工作中更好地应用。这也许就是大家所说的经验吧。
在网络上经常会有各种各样的争论,有时是使用各种语言的程序员争论到底哪种语言才最好、才是王道,有时是开发人员和测试人员相互攻击,都认为对方的工作不重要,只有自己的工作才是重中之重。其实,往往争论的同学对于另一方的知识只是有个简单的了解,掌握的大多是二手的知识,即便有少许一手知识,通常也是浅尝辄止。正因为没有切身体验,才会因为不了解真实的情况而去争论。如果一名程序员掌握了多种语言、框架、工具,那么就不会争论孰优孰劣的问题,而是会根据具体的情况选择最为合适的工具来解决问题;如果一个人既做过开发,也做过测试工作,那么就不会厚此薄彼,因为他很清楚,两种角色都是团队的组成元素,都有其重要的作用,缺一不可。
对于敏捷的方法也同样有很多质疑,不少人总是觉得只有传统的软件工程方法才能够真正保证项目的成功。仅仅比较一下二者的不同就妄下断言。其实,想要知道敏捷的方法是否适合自己的项目,是否能够解决团队管理以及项目开发中的问题,唯一的方法就是“just do it!”尝试过一次,无论成功与失败,都会获得第一手的知识,成功的话,可以作为经验来推广,在以后的项目中进一步应用和提升;失败的话,也明白到底是什么地方出现了问题,以后可以尽量去避免类似情况的发生。这些都要比单纯的怀疑和无意义的争论强得多。
第一手的知识之所以重要,是因为它只能存在于一个人的头脑之中,体现在一个人的行为之中,而不是简简单单通过在网上Google一下就能够找到的。一个人只有掌握了足够的第一手知识,才能够不断提升,体现出与其他人的不同,才能够达到传说中的高手境界。
所以,程序员朋友们,让我们为了掌握更多的第一手知识而努力吧!
----------------------
这篇文章是我作为主编为《架构师》电子刊2013年11期所写的卷首语,这一期的主题是“测试的方方面面”,如果你想阅读这本电子杂志,可以到InfoQ中文站上下载阅读,地址是http://www.infoq.com/cn/minibooks/architect-nov-10-2013。
另外,我还开通了微信公众账号 快乐的程序员(happyprogrammer),在其中我会和大家分享自己的想法,还有一些自己觉得比较有意义的知识和经验,欢迎大家关注。