代码改变世界

旧文重发:苹果是怎么吃到的?

2008-06-02 00:45  乱世文章  阅读(146)  评论(0编辑  收藏  举报

这篇文章发表于《程序员》2008.03期。

苹果是怎么吃到的?——职业规划,从了解自己开始

克里希拉穆提有一本著作,名为《重新认识你自己》,我每每读起,都汗如雨下。克氏的每一句话,每一个发问都直刺人的内心,其目如炬如电。克氏的作品大多如此:不停地陈述、不停地发问。

引子
=========

……路人甲抬头的时候,看见一棵巨大的苹果树,他想,我如果能吃一个苹果就好了……

面临需求
=========

你感到饥饿了?正如你明天将面对面试官,而现在,你只是在面对一个苹果,亦或者一树苹果。你不能明确你想要哪一个苹果,也或者所有苹果都与你无关——你不曾亲近于他们,他们离你如此之远,你上蹿下跳,却仍然够不到最近的一根枝杈。

你所有的问题只起源于“想吃一个苹果”,然而你面临的,却是够到那根树枝。枝杈与苹果之间有什么关系呢?你与苹果、与吃苹果的需求有什么关系呢?你想吃苹果,是需求吗?或者,回到问题的源头:你感到饥饿了吗?

大多数人面临问题的时候是茫然的,急迫于解决当下的、现实的那个需求——例如够到那个苹果。然而正如你明天要面临面试官一样,你甚至不知道面试的公司是怎样的经营状况,不知道自己究竟可以给面试官展示什么。你不了解那棵苹果树,正如你也不了解自己为什么想吃苹果。

三年前的问题
=========

三年前,当你开始走向这个方向时,你是否了解过这条道上会有这样的一棵树?你是否了解过这棵树的高度?是否了解过他何时结出果子?是否真的确认过你会面临这样的需求?

所有的问题,在你三年前开始行程时你都没有提出过。所以你忘记了准备充足的净水,忽略了道旁的那根长竿。你不知日夜,埋头前行,在大雪纷飞的日子里,你走过了最富庶的平原,而现在你来到了这只有苹果树的山岭。

你从来没有规划过行程,没有准备过面对选择——树对于你的,或你对于树的选择。也或者在你准备明晨起行的这一刻,你并没有想过再过三年后你会面临怎样的境地。

例如明天,你会面临结业,会面临面试,会面临淘汰,会面临打压,会面临流言……

三年前,你可曾为了明天而做过准备?

有苹果吗?是苹果树吗?能吃吗?
=========

你确信你的道路上有苹果?你确信你面前的是苹果树?你确信它能吃?你确信你到达的时候它不是青涩的,或干脆连花骨朵都未谢去?

你调查过这条路吗,例如问问先行者:IT行业是不是你的未来?你学习过辨别他们的方法吗,例如软件开发与程序编写之间究竟有何种不同?你又是否知道这个行业的走向,例如互联网是不是你的前途,或者相比之下,嵌入式开发是否更加容易或更有前途?

你有过选择吗?你给了自己选择的空间吗?三年前,在你填报专业的时候,或在你走进校园的时候,你是否就开始了自我的选择呢?

被选择
=========

当你所有进行选择的主动权都丧失时,你就只能面临被选择。例如伟大的牛顿就被一棵苹果树选择了一次——那个苹果正好掉在了他的头上。

然而当你有这样的想法时,你环顾四周:所有的人都在木然行走,并等待着苹果掉在他们的头上。他们像行动的木乃伊——不需要水,不需要食物,即使一个苹果能让他们重生,他们也没有过这种需要。因为他们并不知道自己想要什么,想去哪里。即使一个苹果很偶然的、幸运地砸在了某个木乃伊的头上,他们要么仆然倒地,要么像范进一样颠狂。

牛顿之所以是被选择者,除了苹果掉落之外,也在于牛顿不是木乃伊。苹果落在头上的概率本来就很低,而你不是木乃伊的概率就更低了。无怪乎整个行业都在感叹人才缺失,无怪乎黎叔总在生气,而装钱的那个包裹却总也到不了手。

黎叔生气的时候,钱就在他的面前。选择无时不在,只不过被选择者茫然无知罢了。

再做一根长竿
=========

亡羊补牢,为时未晚,与其懊恼在行来的路上丢掉了那根长竿,不如现在动手再做一根。然而你问问路旁的老者,他说:你不但要先有锯刨,还得有木料;要有木料,你得先有刀斧;要有刀斧,你得先炼铁煅钢……如此等等,你最终变成了一名矿工,着眼于时下的那个需求:得到一些铁矿。

Joy在数年前就断言过我的过失:别人找我要苹果,我却说应该做个梯子去够,然后就从怎样做木匠开始讲。我成了故事中的愚人,因为我不但解决不了需求,还制造了麻烦。

所以从比我更聪明的人的角度来看:我们现在不需要梯子,我们不能为解决一个需求而制造更多的需求。是啊,你居然在讨论“制造需求”,然而你可知道长竿的需求来自何处?它来自于你三年前丢掉了长竿,来自于你三个月前绕了弯路而陡耗了干粮,来自于你三天前扭伤了脚而不能爬树,来自于你三个小时前开始的饥饿,来自于你三分钟前看见了这棵树……

而到你需要帮助的时候,路旁只剩下了这个老头儿,并告诉你从左边的小道过去,就是一家矿山,你可以学到挖矿的本领。在你开始怀疑这是否是陷阱的时候,老者已经开始收拾小板凳要回家了。

天终于要黑了。我想,你是倒霉到家了。

陷阱
=========

是的,所有的疑问与假设都是陷阱——包括那个干巴老头儿都是我拉来串场的(所以他也走得比别人更匆忙)。现在让我们越过所有所有的陷阱,回到最初的两个问题:你饿了;你想吃一个苹果。

《程序员》杂志的欧阳在与我开始讨论之初,只是询问我是否对职业规划有过想法。我当然是有的,我的人生计划在16岁前后定下的。基本上,定了20年——我没说谎话。我的计划向来比较长,像两三天看一本书,一个月看几本这种计划,我没有。所谓常立志不如立志长,我属于后者。

对于程序员的职业发展方向,我在《大道至简》中谈过我的看法:“程序员有两条路可选。一个是深入源码,在技术领域里求精求深,变成良匠大师。一个是看透工具的本质,从技术、语言这些东西中走出来,面向团队、工程,成为管理人员。”对于这样的选择,欧阳感叹说:技术人员面临一大堆技术方向,迷惑得要命。至于前途职业,基本上没法考虑。

的确如此,我想这也是《程序员》做这一期专栏的目的。然而我认为从根本上来说,他们不是“面临一大堆技术方向”而迷惑的,大多数程序员是因为“不知道自己要什么”而迷惑的。所以欧阳正好把问题看反了。而且,我所知的,绝大多数人都会把这个问题看颠倒。

一般人都不知道自己“想要什么”,谈何规划?当一些人把目标直指金钱——例如把“想要什么”这个问题直接变成了“三年挣50万”,那么你说,这样的目标如何规划?

生存与规划
=========

欧阳兄最后问我:那么应该怎么回答“想要什么”这个问题呢?

如果抛开阶段性不谈,“想要什么”其实就是一个社会观、人生观的问题。我无法对任何一个人的社会观、人生观提出指责或建议,因此我不能跨越阶段性的、特指人群的回答这个问题。然而,当我把这个问题局限在“初入社会、需要规划的人”这一个阶段中的群体时,我想是可以有答案的。

这个答案就是“我要独立”。 “我要独立”包括两个方面:独立地思考,独立的生存。注意,我说的是“思考”和“生存”,而是不是“思想”与“生活”。

首先,学会独立思考,学会为自己的思考和选择负责。这就是独立了。接下来说“独立生存”。就是真正失去依赖感,不要认为有谁能帮你,时时得觉得自己活不下去了:房子要自己买、老婆要自己娶、社会关系要自己打点、时时面临失业的危险……诸如此类。这些就是生存了。

这个时候你再来看你的“规划”。你说是“挣100万”现实呢,还是“明天找份工作”更现实?是“等爸爸妈妈介绍份工作”现实,还是“明天接受一份800块钱月薪的工作”更现实?

所以,你的规划的第一条会写着:活下去;第二条会写着:存点小钱,保证半年内找不到工作不会饿死;第三条会写着:做好每一份工作,尊重同事,并获得尊重。

欧阳叹道:难道这些就是规划吗?

我说:怎么规划?这些就是规划。规划书上写着:一年内10万,三年内50万,十年内退休。哦,那种人一辈子也不要指望他成功。

如果不是为生存而规划
=========

也许上面这个规划对你是合适的,也许不合适。你既可以把自己置于生存的绝境,从800块钱的小工做起,也可以通过借贷,并开启第一年挣10万块的规划。问题并不在于规划的形式,也不在于是不是要规划为“做一个程序员”。

问题只在于你是否自知。要首先自知,然后才知道一个规划如何能切实。所以我一直问,“自己想要什么”。因而当我们把问题讨论到更深层面的时候,却发现大多数人是因为不了解自己,而根本“做不了规划”,而不是“做什么”的问题。

现在,你有开始问自己“为什么做不了规划”吗?

如果你信誓旦旦说自己已经会做规划了,那么你怎么会看到现在这篇文章呢?如果你不会,那么为什么你要看到上面这行文字,才想起来问自己“为什么不会”呢?

你可有反观自己?你可有时时省身?你可在三年开始抉择一根长竿的取舍?你可有开始为三年后见到一棵苹果树而做准备?你,是否仍然期待苹果掉在你的头上?而在这伟大的期望的同时,却行走得如同一具木乃伊?!

我们讨论方法时,总是可以非常简单。例如你只是想吃一个苹果,那么最直接的求解就是“得到一个苹果”,方法则是爬上树摘一个,或买一个,或用竿子捅一个下来。又如果你只想明天去应聘,那么你可以去猜应聘试题或贿赂相关人员。但是“吃一个苹果”和“应付一次面试”只是一个短期行为,职业规划却是一个长期行为。如果你三年前就开始想自己要做什么工作并开始规划“如何通过应聘达到这个目的”,那么你的规划中一定会包括“能力补充”、“了解指定公司的情况”等等这些看起来像炼钢、做锯子一类的事情。

我们讨论规划——而不是实施这个规划的方法时,问题就变得异常的复杂。人人都想吃到苹果,然而没有多少人在乎“全民吃到苹果”,所以大多数人从来没有考虑过苹果如何摘下来,以及苹果树在哪里这些问题——他们的想法是:谁想明白就让他自己去搞明白好了。

周爱民为啥开始讲苹果问题了
=========

不管我曾有过多长的规划(例如二十年),但我现在被邀请写这篇文章,是要告诉别人(多数的从业者们)如何“能做一个规划”。

于是,我也茫然了。

最近的一段时间,我接受的一些约稿几乎全是有关于从业的。然而我不太愿意写雷同的东西,因此写到本篇的时候,我想讨论的只是把问题想清楚,而不是解决问题。一直以来,我都有这种“把问题想清楚”的冲动,这与我的职业角色有关:“想清楚”是架构师的第一要务,而把结果做出来则次之。在如此长时间的、与专业程序员们的交流中,我发现大多数情况下,人们是没有把问题想清楚就开始实作了的——例如根本没有想清楚开发的目标是什么,就着手开发;又如没想清楚从业者们“想要什么”,就帮助他们解决“如何规划”的问题。

更进一步地去理解那些期望通过这篇文章来得到一个“令人满意的”规划的朋友们,问题的根源并非他是否有“想清楚问题”的意愿,而在于你是否有这种能力。在我看来,这种能力与他们是否有反观自身的习惯有关,因为这些问题的答案,原本就在他们自己的身上。冷暖自知,我不能超越个体感受与意愿地去为别人设计或提供规划。所以,在大多数情况下,我总是在解说和质问:“你”如何把问题想清楚?

“想清楚”的意愿,如果发生在今天,那么你面临的总是当下的问题;如果发生在昨天,那么你总是有机会为明天作出准备——例如规划。至于在规划与努力的最后,或者当下,你吃到嘴里的那一口苹果是不是有虫,则是你的运气问题了。