技术与工具关系的探讨

发表于:2013-08-16来源:博客园作者:虫师点击数: 标签:工具
最近一直在思考技术与工具之间的关系。在谈及这个话题之间,我先来讲一个例子。 在一个武侠小说里,一个小孩父母被仇人所杀害。这个小孩立志要为父母血仇。于是,不远千辛万苦找一到一个世外高人,求高人传授其绝世武功。那么这位世外高人有两条不同的

  最近一直在思考技术与工具之间的关系。在谈及这个话题之间,我先来讲一个例子。

  在一个武侠小说里,一个小孩父母被仇人所杀害。这个小孩立志要为父母血仇。于是,不远千辛万苦找一到一个世外高人,求高人传授其绝世武功。那么这位世外高人有两条不同的方式教育这个小孩。

  方式一:放眼当今武林,最厉害的神器非屠龙刀莫属,凭自己的身手,夺得屠龙刀乃囊中取物,信手拈来。于是,轻松得到屠龙刀之后,然后对小孩体质、骨骼进行分析,再自创立一套路适合小孩体质的屠龙刀法。以屠龙刀最大的维利来配合小孩的体制,以便让小孩与屠龙刀发挥出最大的威力。

  方式二:世外高人考验小孩的体制,摸其骨骼,分析其聪慧程度。通过对百家兵器谱中各种神兵厉器的分析,发现屠龙刀最适合小孩来用。于是,轻松盗来屠龙刀,配合小孩学习武功,让其达到自身最大能力的发挥。

  前面两种方式,虽然最终的结果是完全一样的,但其过程是截然不同的。第一种方式是根据现有工具来解决问题,第二种方式是根据现有需求来选择工具。

  再回归到我们对技术与工具的探讨。

  大家都知道平面设计是一门技术,photoshop是一个工具,photoshop几乎平面设计领域的大部分问题,所以photoshop几乎是平面设计的代名词。你会说还有coreldraw 、 Illustrator、 PageMaker 等很多平面设计工具。对啊,他们都只是一个个的工具而已,难我们学习一门技术都就只是学习一个工具的使用么?那么技术包含的除了工具还应该有什么呢?思想,对思想,什么是思想呢。或都说什么样的思想的呢? 首先了解什么是平面设计,或平面设计的原理,我们的世界是立体的,或者说是一个空间的概念,但人的肉眼在一个位置去观察一个物体,只能看到这个物体的一个面。那么我们通过平面的画怎样欺骗人的眼睛产生立体的效果? 把立体的细节展现出来,比如一个物体的斜面,颜色的渐变,物体的阴影等等,可以通过这些方式来欺骗人的眼睛。

  其实,许多平面工具都是包含这些思想的,或者把思想换成技术更为贴切---大部分工具都是包含这些技术的。(ps:高中傻帽的辍学半年去学平面设计)

  再回到我的性能测试上讨论,其实关于技术与工具的思考,也是由些而发的。性能测试肯定是一个技术类别,而loadrunner或其它工具是一个性能测试工具。再说到我前面介绍小孩为提父母报仇而学习武功的方式,很明显第二种方式更为合理,因它的出发点是需求。方式一的出法点是工具。但是,在某工具可以完全某需求的前提下,我们先选择某工具,还是先分析某需求,其结果应该是一样的。

  这就一让我突然觉得,需求引导流程,需求选择工具的思想有点钻牛脚尖了。做测试的朋友都知道,loadrunner在性能测试领域,就像photoshop在平面设计领域一样。占领着很大的市场,能满足大部分的需求。学会用loadrunner并不代表会性能测试,这句话无可厚非。但学会的性能测试(概念、思想、流程),唯独不会工具,那算你会做性能测试么?纸上谈兵,怕是所有人都很瞧不起这种人吧。至少,你还是应该熟练的使用一种工具的吧。其实,你在学习工具的时候,思想也在慢慢的渗透,如果不理解其它原理,又怎么使用工具,平面设计中,如果你不能理解图层的概念,又怎么能很好的使用平面设计工具呢。

  再来谈谈程序语言上,java 与 c/c++ 是一门技术还是一门工具呢?老实说,这个我真的分不清楚。如果你是一名java或C/C++程序员,当你拿到一个项目需求时,肯定会用自己会的语言去考虑程序上的实现。其实,你这个时候就是在得到屠龙刀之后去考虑如何让小孩练习刀法。又有几个牛人可以达到精通天下所有语言,java、c、c++、c#、php、ruby、汇编、等等。因为每种语言都有其有优,有的效率高,有的实现速度快。其实,我们更应该抽离出来的是一种思想。为什么说一个编程5年(这个时间看造诣)的人,学习一门新的语言只要一个月或者更少时间(这个也看造诣)。在学习某种语言时更多的应该是将思想剥离出来。有的思想,如何去实现只不过一个方式而已。

  -------------------

  ps:本来是想继续性测试系列文章的整理,原来我越来越不务正业了。

原文转自:http://www.cnblogs.com/fnng/archive/2012/08/20/2648348.html