微信号:infoqchina

介绍:有内容的技术社区媒体

组合的力量

2014-04-02 22:58 侯伯薇

在观赏拳击比赛的时候,经常会看到拳手连续出拳,直拳、勾拳、左手、右手,各种各样的组合,而这种拳法的威力会远远超过简单的击打。

 

在实际的工作和生活中,我们也经常会把多种元素组合在一起来解决问题,这样就会起到取长补短的效果,一加一通常会大于二。

 

对于我自己,最早意识到组合的力量还是在大学的时候,有次假期的时候,帮学校的老师做一个学校的宣传片,为了搞定它,我使用了多种工具,包括图像处理的Photoshop、PhotoImpact,3D制作的3D Max、Cool 3D,视频编辑的Premier等等,各种各样的工具完成了各自的工作,最终组合在一起,才在短短的时间里面完成了那项工作。

 

在后来的软件开发过程中,经常会不自觉地分析各种各样语言和工具的优势和劣势,从而在特定的情况下试图选择最合适的工具组合来完成任务。比方说,曾经有一个项目是要自动抽取数据,然后用sftp的方式上传到某个网站上。在其中我就使用了多种工具,首先自动抽取数据方面用了AutoIT,写了脚本生成exe文件来自动完成这件事儿;然后sftp用了Putty的命令行工具,而不需要再特意寻找sftp的工具了 ;最后使用C#写了个程序,通过调用的方式来把这两个功能组合到一起,并且启用了定时器,在特定的时间来做这件事。三种工具的组合,使得我可以在几天内搞定它。

 

现今很多产品都会是以软硬件结合的方式推出来的。这固然有考虑到消费者心理的因素在内,毕竟很多人还是认为软件是看不见摸不着的,所以并不值得花那么多钱来购买,而硬件则不一样,一个美观的盒子还是很值得那些钱的。除此之外,软件和硬件的解决方案都会有其擅长和适用的领域,如果单纯使用软件或者硬件,就很可能不得不在并不适合的地方使用,而且会在配合的时候出现问题,而二者结合在一起做产品,效果就会好很多,毕竟一切都在控制之内,可以发挥出各自的优势。

 

一个人的技能也是一样,有硬技能和软技能之分。各种各样的语言、工具、框架的使用,应该都可以算是一名程序员的硬技能;而沟通能力、学习能力、分析解决问题的能力、管理能力等都可以归到软技能一类。我们想要有更好的发展,硬技能固然重要,但软技能更加不可忽视,在某些场合下,软技能很可能起到更为重要的作用。有人曾经把一个人的各种能力比喻为木桶,总体的能力是由最短的那块板决定。由此看来,如果我们可以把各个方面的能力都提高,那么总体能力就不是提升了一点点,而应该是很大的一截。

 

这个道理在团队中同样适用,随着需要完成的工作越来越多,团队内部的分工也会越来越清晰。比方说在一个软件开发项目中,会有需求分析人员、设计人员、开发人员、测试人员、运维人员等等。当整个团队的所有人员能够很好地配合在一起时,那就形成了真正意义上的团队,而不是一个简简单单的团伙,它的生产力会非常高,能够更快、更好地产出好的系统。

 

所以,我们应该在各种各样的场合下考虑使用组合,这就像是哲学原理中的个体与整体的关系,每个个体都会有其自己的特征和优势,但组合在一起的时候,会具备个体所不具备的、更加高级的特征和优势,那样就可以发挥出组合的力量。

 

“第三只眼”:

主要由InfoQ编辑专门为微信公众账号自编自写的一个栏目,旨在表明编辑态度及表述平日见闻和思考,期望成为和读者沟通的桥梁。亦接受投稿:spark@cn.infoq.com

 

今日专栏作者:

侯伯薇@大连,快乐的程序员,InfoQ中文站翻译团队主编,热心的社区活动组织者。本文首发于他的微信公众账号快乐的程序员(happyprogrammer)。

 

***********************************

本文来自InfoQ微信公众账号:infoqchina

1、回复“今日新闻”,查看今天更新的新闻;

2、回复“今日英文”,查看今天英文站的更新;

3、回复“文章 +关键词”,搜索关键词相关内容;

4、回复“QCon”,了解QCon大会相关信息;

5、回复“活动”,了解最近InfoQ组织的线下沙龙;

6、回复“架构师”,获取《架构师》下载地址;

7、回复“投稿”,了解投稿和加入编辑团队的流程。

***********************************


 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 微信iOS9适配总结 一个三十秒的习惯,让你受益终生 自述内心深处的感想:MFC是否有学习的价值 Espresso实战:快速的Android UI自动化测试 如何支撑DevOps微服务(MicroServices)