什么是“核心竞争力”呢?虽然写下了这样的标题,但是我对它的概念却不甚了了。凭着自己肤浅的理解能力,我对这个词汇的认识就是:能够为自己、企业实体乃至社会带来价值的能力与优势。这是偶说的,当然不能算数了。还好我们可以Google一下,于是乎,我们能找到这样的解释:核心竞争力(Core Competence)是企业竞争力中那些最基本的能使整个企业保持长期稳定的竞争优势、获得稳定超额利润的竞争力,是将技能资产和运作机制有机融合的企业自组织能力,是企业推行内部管理性战略和外部交易性战略的结果。原来,核心竞争力这个词汇源于企业管理的范畴。
之所以提到这个词汇,我并不是要和大家探讨有关企业管理的问题。大家都知道,现代社会是一个充满竞争的社会,如果细化到市场,那么竞争的白热化程度是令人咋舌的。为了在市场上能够生存,乃至于处于不败之地,各个企业都在不断寻求自己的核心竞争力。那么,对于我们个人,对于“核心竞争力”,我们又该给出怎样的答案呢?
前面的一堆文字,其实都是在作个铺垫,您大可以把这些当作是废话。我想做的只是扪心自问:我的核心竞争力到底是什么?!去年11月份,自己参与翻译的《WebWork In Action中文版》顺利出版了,之后的销量还不错;上个月,自己还以MVP的身份参加了远在西雅图举行的Global MVP Summit。于是乎,不少的称赞以及羡慕就纷至沓来,而我还真的很臭美地享受着大家的溢美之辞。在这里,给各位兄弟姐妹们鞠躬致谢了。然而,说句实在话,我有些尴尬,甚至有些难受。因为我觉得自己并不是一个在技术上有造诣的人,愧受大家的赞誉。
如果您觉得我是在自谦的话,那么您错了。因为我的技术水平从来没有为我带来过一份Offer,在面对技术面试的时候,我从来都没有让面试官满意过!我的第一份“Java程序员”的工作是在自己刚走出校门的时候获得的,那个时候,我一点Java知识都没有;我的第二份“程序员及系统分析师”的工作则是在完全没有技术面试的情况下获得的。我真的不知道自己的技术到底创造了多少价值,为自己带来了多大的核心竞争力,我想这个数值肯定不高。
真正引发我深思的事情已经过去一个星期了,但是我仍然无法释怀,每当想起我都觉得如梗在喉,不吐不快。朋友告知我有一个不错的机会,然后帮我把简历投到了某公司,该公司的Y某通过电话对我进行了面试(其实,我对这个机会并不是很感冒)。当我们在电话聊的时候,我惊奇地发现自己对应的职位是“系统架构师”。一开始的时候,Y对我还是非常客气的,他提到了我翻译的书还有我的blog,言语之中还带着一些赞赏的味道;但是,随着问答的持续,时间的推移,他的语气变了,变得失望、无奈,甚至还带着一丝蔑视(也许是我自己太敏感吧……)。
他提出的问题涵盖面很广,以下是问题的一些分类:
1、对J2EE中各种MVC框架的了解:包括Struts、Tapestry、Spring等等。特别提到了对Spring的要求。当我告诉他,我对Spring了解很少的时候,他显得很惊讶;
2、对设计模式以及J2EE核心模式的了解。他问我有没有读过《J2EE核心模式》,我说读过,但没有通读。他觉得这本书应该反反复复地读,我这样没有通读是不可接受的。他还让我列举一些设计模式,其实设计模式,我知道的很少,也就那几个常用的。在深入下去,我一下子就被问倒了;
3、对数据持久层框架的了解,包括EJB、JDO、Hibernate以及iBatis。我告诉他,自己不了解iBatis,在做数据持久化工作的时候,我会选择使用JDBC去写一些SQL语句。他给出的回应仍然比较强烈,认为对于流行iBatis怎么能不去了解呢,同时使用JDBC来完成数据持久化工作已经很落后了。由于我提到了JDBC,他接着问了有关数据访问模式的问题,让我列举一些数据访问模式,我能说得出的就那几种了,什么Domain Model、连接池等等,我的回答令他十分不满意。至于EJB,他也问到了诸如Entity Bean、Session Bean、无状态Session Bean、CMP、BMP、Session Facade等等问题,直把我问得焦头烂额;
4、对AOP、对动态代理的理解。我能说的自然也是一些皮毛了,总之没有怎么做过AOP,只是知道WebWork中的Interceptor与AOP有些渊源。这样的回答自然也少不了受批判了;
5、对J2EE规范(例如,JSP规范、Servlet规范、EJB规范、Portlet规范)的了解,对J2EE BluePrint的了解。我给出的答案是,都没有看过。他更加不满意了,并且指出:要想做好J2EE的开发,不读规范怎么行?
6、对数据库服务器的了解,包括Oracle、DB2、MySql等等。他根据我的回答给出结论,对这些数据库服务器一窍不通;
7、对应用服务器的了解,包括WebLogic、JBoss以及WebSphere等等。他给我的结论仍然是:知之甚少;
8、对操作系统,譬如Linux以及Unix的了解。他给我的结论也不用多说了,so cheap。
问题的轰炸结束之后,他也给了我一些建议,还问我有没有将他问的问题记录下来,以便差缺补漏。我说没有,这样他对我也就彻底失望了。他对我的技术水平下了一个结论:只对MVC的前端部分有一定的了解,其它方面一窍不通。除了这个结论之外,他还对我翻译那本书的本意提出了质疑,也对我写blog有些嗤之以鼻,他觉得我更应该多些动手,譬如重写PetStore,而不是写那么多blog。
整个电话面试耗费了一个多小时,整个过程是被鄙视过来的。其实,这也没有什么,我并不介意别人怎么看待自己的技术水平。我得感谢这位面试官,是他让我再一次去思考自己的核心竞争力到底在哪里。我知道自己肯定做不了一个合格的系统架构师,也没有打算去做。那么技术对于我而言到底是一个怎样的角色呢?至少不是核心竞争力了吧。
我从来都不会怀疑自己对于计算机编程的热爱,也知道自己技术天赋去到怎样的层面。我是一个喜欢分享的人,所以我倾尽自己所能去推荐我认为好的东西,譬如翻译《WebWork In Action》,写一系列有关IronPython的文章。我从来都不敢自诩为某某专家,因为我和那些真正埋头研究的技术牛人相比还是差得太远了。但是,话也说回来,任何一个行业总有台前与幕后,内外需要结合,没有人高举着旗帜,谁又能看到方向呢?
最后,我还想说一句,请不要怀疑我进行翻译以及写blog的动机,因为我知道什么叫作责任。