今天中午,左耳朵耗子在微博中提到“面试过一些应聘者,当我问到为什么换工作的时候,他们都会告诉我,现在的工作没有挑战,无聊,所以想换一个有挑战的工作。我总是为有这样的认识的朋友感到惋惜,因为我总是认为有挑战的东西无处不在啊,不能因为工作上没有,自己就放纵了自己。”
看了这篇微博,顿时想为这位面试者打抱不平。为什么一提到工作没有挑战性,就要把这个人在放纵自己划上等号呢?工作是否有挑战性,这是客观因素;而个人是否放纵,这是主观因素啊。
联想到自己,上周我就参加过一场面试,而我想换工作的理由之一就是“现在的工作环境对我的技术提升帮助不大”。现在想来,面试官听到我这句话,心里可能会这么想:“原来他提高自己的技术是靠工作环境,这人怎么一点主观能动性都没有。”
在左耳朵耗子看来,对于即使是很简单的问题,哪怕是一个简单的用户登录功能,也面临着很多挑战。所以拿工作没有挑战作为借口,这是行不通的,于是,得出了一个结论:工作没有挑战只是自己的借口。
在我看来,左耳朵耗子忽略了一个前提:那就是公司的环境允许你在做某个功能时表达自己的观点,允许你花时间去考虑如何把这个用户登录功能做得很完美。我相信亚马逊就是这样的一个环境,因此左耳朵耗子会忽略掉这个前提,并假定所有的公司都是这样。事实上并非如此,在有的公司,很有可能,在分配任务的时候,产品经理已经告诉你应该做什么,必须在多长时间内完成。当然,我们或许可以和产品经理讨论,表达自己的观点,但未必能得到赞同。或许,压在产品经理身上的new feature太多,他巴不得你立即完成这个,马上进入下一个feature的开发。
在这些诸多限制之下,作为程序员,很有可能他就无法在程序中表达自己的想法。但实际中太多的条条框框不允许。或许,他也有考虑过,但公司不希望你表达过多的想法,只需要你做一颗螺丝钉。当然,我无意去否定这种规则,毕竟每个公司都有自己的企业文化,无关对错。
当然,我必须承认,即便是每天都在写着重复无聊毫无挑战性的代码,我相信对技术水平提高也有帮助,比如说在写代码时考虑性能优化、代码重构、Usability方面。但是,这种进步是比较小的,很难有一定的突破。换句话说,在这种工作环境中工作一年取得的进步,如果在另一个工作环境中,可能我只需要一个月就够了。如果某个问题有最优(或次优)方案,采取最优方案当然比其他方案来得更划算。
因此,当一个人提到工作无聊、没有挑战性时,未必就代表着他不善于发现挑战。下结论之前,最好能够问问他为什么觉得无聊?如果是工作环境不允许他表达自己的想法,或者在工作时他已经把自己的水平在能力范围内发挥到极致了,我想,他是有资格说工作没有挑战性的。
或许,还有这样一种观点:不要指望通过工作中能给你带来多大的进步,关键要靠平时自己是否愿意多花时间学习。在我看来,这客观环境和主观能动性这两方面都很重要,我们不能为了强调个人的努力就去忽视环境对我们的影响。举个例子,大家都参加过高考,为什么我们都想考一个好的大学呢?因为好的大学能够给我们提供一个好的学习氛围,提供更多优秀的资源,这对我们成才有很大的帮助。当然,考上了好的大学并不意味着我们就可以不努力了,资源、氛围都有了,另一个关键的问题就是要好好努力了。回到我们的话题中,“不要指望通过工作中能给你带来多大的进步,关键要靠平时自己是否愿意多花时间学习。”关键是靠自己好好努力,这话没错。试想一下,在这样工作环境里,牛人一大堆,大家在平时的工作中、问题讨论中就能自觉不自觉的取长补短。在工作内容上,不再是那些机械性的重复劳动,而是允许你充分地发挥主观能动性,怎样把他做得更好。再加上自己业余时间的努力,这样进步岂不是更大。
因此,当一个人表达“现在的工作环境对我的技术提升帮助不大”这种想法时,建议多问问他所处的工作环境如何,他平常是否努力地去学习。
当一个人很努力的时候,如果他提到工作给他的技术上的提升帮助不大时,很有可能就是工作环境成了制约他进步的瓶颈(当然,也有可能是他学习方法不当)。
排除掉这个因素,只有当它的确是工作不努力时,我们才能告诉他“不要指望通过工作中能给你带来多大的进步,关键要靠平时自己是否愿意多花时间学习。”因为此时,他的个人态度才是制约他进步的瓶颈。
结论:所处的环境和个人的态度都很重要,我们不能够因为某人提到“我的工作没有挑战性”,就主观地去否定他的个人态度。如果这个人喜欢钻研、对新鲜事物好奇、对工作(或许不局限于工作)认真负责,而工作环境妨碍(当然,如果这个人善于挑战,环境有可能未必能阻碍得住,但毕竟是正在妨碍着)了他的主观能动性的发挥时,他完全有资格说,我的工作没有挑战性。除此之外,我们才有资格说他,你是在找借口。