首页 > 杂记 > 正文

程序员的宇宙时间线


蜘蛛的选择

周六晚上,我把车停在了亲戚家小区门外的路边。在三个小时之后我准备开走的时候,突然发现,前车门外面似乎有一根银色的细线,在远处路灯投下的微弱余光中轻轻地颤动。我借助手机屏幕的亮光才得以看清,原来是一只蜘蛛正在左后视镜和前车门之间织网。

一阵晚风吹来,裹挟着旁边温榆河的水气。蜘蛛和它的蛛网,也在这一阵风中摇摇欲坠。但我知道,这还不是最糟糕的,因为汽车马上就要开动了。

于是我在心里不禁为它感到一阵惋惜。它本来应该选择把自己的网建在一个更恰当的地方。

人生之事业,也犹如在织一张大网。要想把事业之网织的牢固,选择最重要。首先要让自己立足于一块良田沃土之上,深耕数年,方得收获硕果。选择一个适合自己,并让自己的才智得以发挥的领域,这是每个人都要面临的课题。

栈式时间线和多重宇宙

六月夏季的一个晚上,小白独自行走在校园里。最近毕业季的各种告别聚会和酒精带来的刺激,让他不禁感到有些恍惚。他隐隐地感觉到又一个面临人生重大抉择的时刻到来了。他刚刚把女朋友送回宿舍,然后独自一人来到这片还算僻静的地方,就是想静下来仔细想一想。

他就读的学校算不上一流大学,但学的是当前热门的计算机专业,所以找到一份糊口的工作并不成问题。实际上,他现在手里已经有了两个offer了。

一个offer来自一家知名的互联网公司,给他提供的工作岗位也是他比较喜欢的编程工作,只是需要他离开当前所在的北京,南下深圳。小白是个北方人,他担心自己会不习惯南方的生活习惯,而且更重要的是,他女朋友肯定短期之内不会跟他过去。他已经和女友反复讨论过这个问题,虽然不会就此分手,但恐怕要陷入异地恋的糟糕状况。而一份异地的感情,往往凶多吉少。

另一个offer来自北京一家体制内的研究所。他本来觉得自己年纪轻轻,不会喜欢体制内那种按部就班的工作状态。但是他家里人都极力劝他接受这份工作,理由是工作稳定,福利也有保障。而且他这个offer确实得来不易,要不是他二舅的表哥的铁哥们跟里面的熟人打了招呼,他能进入这家研究所的可能性恐怕连万分之一也没有。

小白正在左思右想,难以抉择之时,突然间,他听到附近有人发出一声怪笑:“哈哈哈,我终于成功了!”小白心里不禁一惊,原来他不知不觉间来到了科学怪才博士的实验室旁边。

好奇心驱使他来到博士的实验室门前,他发现博士手里正拿着一个类似空调遥控器一样的设备,嘴里正嘿嘿地笑着。博士发现了小白,喊他进去,把那个遥控器一样的东西递给他看,“小伙子,这是我新研制出来的设备,正想做个实验,想不想试试?”

小白隐约察觉到博士的嘴角流露出一丝阴险的笑意。但当他低头看到遥控器上的一行小字时,心里顿时乐开了花。那行字写的是:“多重宇宙控制器”。

小白轻轻按下存档键,幽幽的蓝光闪过,“存档-1”瞬间被创建好。然后小白轻松地做出了他的选择,宇宙时间线也开始向着他所选择的分支延伸。

小白进入了那家北京的研究所,在IT技术部门负责维护网站和数据库。开发的需求大部分来自于部门领导王处长。

一转眼两年过去了。虽然工作比较乏味,但是小白每件事情都认真去做,王处长对他的工作非常满意。他逐渐赢得了领导的信任,感觉被提拔的日子指日可待。

有一天,传达室的张大妈突然找到小白,告诉他王处长的侄女对他有意思,问他愿不愿意试着和她交往。王处长的侄女也在这个研究所工作,只是跟他不在一个部门,他平常与她只是有些业务上的往来。小白心想,领导的这个侄女长相一般,脾气也不好,实在不是一个理想的人生伴侣。而且在这两年中,小白与原来大学期间的女朋友感情也很稳定,他不能辜负她的感情。不过王处长人家是大领导,如果驳了他的面子,会不会被穿小鞋?

小白婉言拒绝了张大妈的提议,不过心里也很忐忑。他偷偷拿出了科学怪才博士送给他的“多重宇宙控制器”,幽幽的蓝光闪过,“存档-1-1”瞬间被创建好。

果然不出所料,从那以后,王处长对他态度大变,经常指责他做的工作不到位。转眼间又过去了两年,他眼瞅着周围的同事一个个都被评上了工程师或高级工程师的职称,只剩下他自己排不上号。他和女朋友也到了谈婚论嫁的年龄,但是他们在北京买不起房,而且以他现在这个状态,在单位里分到房的希望也很渺茫。迫于现实的压力,女朋友提出跟他分手,投入了别人的怀抱。

小白极度悲愤。他又一次拿出“多重宇宙控制器”,这次他按了恢复键。刺眼的红光闪过,宇宙时间线开始倒退,一直退到了“存档-1-1”的位置。

对面的张大妈正等着他的回答。这次他做出了不同的选择。

小白与王处长的侄女交往得还算顺利。而他自己的个人评级,职称评定,工资上调之类的事情,也从此异常地顺利。他原来的女朋友知道了这事之后,伤心地离开了。

一年之后,他与王处长的侄女结婚了。然而,婚后生活却很不太平。他这个老婆在婚后终于露出了粗俗的本性,经常对他大发脾气,动不动就拿王处长来压他,还经骂他是吃软饭的。这让他感觉没有一点男人的尊严。

小白实在忍无可忍。他再一次拿出“多重宇宙控制器”,按下了恢复键。刺眼的红光闪过,宇宙时间线瞬间退到了“存档-1-1”的位置。

他又按了一次恢复键。刺眼的红光闪过,宇宙时间线瞬间退到了“存档-1”的位置。

小白满脸沮丧地看着科学怪才博士。博士一脸坏笑,“这里还有一条1-2时间分支,看起来似乎不错,要不再试一下这个?”

小白心里清楚,博士说的“1-2时间分支”,指的是让他接受第二个工作offer。

他远赴深圳。在这家互联网公司里,他工作得兢兢业业,每天加班到很晚。功夫不负有心人,一年之后,他被提升为技术主管。又经过两年,他进入了中层管理层。他的个人收入在过去的三年里也连续翻了两番,并在深圳购入了他人生的第一套房。

然而,危机也随之而来。由于工作繁忙,分居两地,他与女朋友缺乏相处的机会,终于这一份感情被时间消磨地所剩无几。最后两人以分手告终。同时,他也沮丧地发现,在公司内中层以上的晋升非常困难,很多要职已被公司元老们占据。在可以预见的未来五六年内,他都不太可能会有什么大的突破。他又一次开始怀疑自己当初的选择,甚至怀疑自己是否适合技术开发这个行当。

在一次与朋友一起喝酒叙旧之后,小白回到家里,一时激动,拿出了科学怪才博士的“多重宇宙控制器”,哆哆嗦嗦地按下了恢复键。刺眼的红光闪过,宇宙时间线再次退到了“存档-1”的位置。

小白发现自己又一次回到了博士的实验室。他举头望去,泪水已经模糊了他的双眼。他看到博士脸上戏谑的笑容不见了,而是发出了悲天悯人的一声叹息。


好了,故事讲完了。我们先暂时舒缓一下情绪,分析一个技术问题。在小白的多重宇宙里,时间线是按照栈式来组织的。大体来说,按下存档键相当于进栈操作(push),而按下恢复键相当于出栈操作(pop)。作为程序员的你,看懂了吗^-^ (如发现bug,请留言)

然而,在我们这个现实世界里,时间线可不是什么栈式的,而是一维线性的。这意味着我们一旦做出选择,就无法像故事中的小白那样悔过重来。

无论你是刚刚毕业,即将踏入社会的学生,还是已经在程序员这个行当干了若干年,却遇到了上升瓶颈期的老手,都要面对一个对于未来重新选择的问题。

人生的很多焦虑,都来源于对未来的不确定性的恐惧。一旦选择,便无法挽回。

我们的选择正确吗?我们选择做了程序员,这适合自己吗?我很想与你讨论讨论。

感性

对于有些人来说,在他/她走出校园之前,就很清楚自己不太适合做程序员了。理由很简单,就是不喜欢。没有为什么,就是不喜欢。

比如很多科班毕业的同学,在学校的学习成绩很好,但只要一看到代码就感到头痛。如果这样的事发生在你身上,不要感到沮丧,这并不是什么糟糕的情况。越早地发现自己的劣势,越能够以小成本的方式避免进入错误的行当。

而更常见的一种情况是,各方面的兴趣都很泛泛,不知道自己喜欢什么,不喜欢什么,也不知道自己擅长什么,不擅长什么。这样选择起来就难了。这样的同学如果选择做了程序员,多半会发生这样一种情况:工作了两年之后,发现自己越来越不适合做这这份工作,很多方面都跟当初自己想象的不一样。比如需要长时间独自一人坐在电脑前面,特别是在调试程序时发生了意想不到的情况,百思不得其解而又无人求助,心里会越来越沮丧。再比如,每次技术讨论,周围的技术牛人们都在发表自己的见解,而他自己却越来越听不懂他们在说什么。长期如此,自己会变得越来越没有自信,不敢在别人面前发表技术上的看法。他们得不到周围同事的赞许,也得不到leader的青睐。

这样的情况,也还不算太糟糕,至少试错的时间成本还不算太高。这时要做的就是尽早转型。

真正糟糕的情况是那些在程序员这个行当混了五六年以上的,仍然没能发现自己有这方面的天分,在团队中一直无法出类拔萃。可以想象,这个时候如果再转型,压力是巨大的。

不过,按我个人的猜测,大多数从事编程工作的从业者,很可能都会陷入这样一种困境而无法突破。在任何行业,都是只有少数人才能够成为精英。在整个互联网甚至整个IT行业内,正是这样的“大多数”默默无闻地工作在各个岗位,辛辛苦苦地维护着各种各样的业务,为更多的人提供着互联网服务的便利。

这对于整个社会来说,或者对于一个大的公司组织来说,是一种常态。但对于深处其中的个人来说,是一场人生悲剧!

我们怎样做才能避免这种悲剧发生呢?

理性

在很多情况下,我们如果不去花费时间和精力去尝试做某一件事情,我们就不知道自己能不能把它做好。而职业选择的目标就是要让我们避免不必要的尝试,最好能每次都选择正确。这是一件事情相互矛盾的两个方面,而矛盾的焦点就在于时间成本只能付出一次,一旦付出,就无法收回。

我们没有前面故事中讲的“多重宇宙控制器”,我们每个人都要面对的,是唯一的一条线性时间线。那我们应该怎么做呢?

我们唯一能做的就是:一旦选择,就全力以赴

我经常听到有一些技术人员会说,我将来的志向是做管理,所以现在没有必要钻研一些特别深的技术细节。而且不知道从什么时候开始,在程序员职场上有一种流行的说法,说是做技术的岁数大了都无法再做技术,必须要转管理。甚至很多毕业生也都是这样想的,把第一份编程的工作只是当成一个过渡。我们先不管这种说法正确与否,我们只是来分析一下这种思潮对我们会带来哪些负面的影响。

首先,它可能让你心猿意马,无法专注于眼前的工作。时间长了,它可能让你产生一种错觉,感觉自己总是无法深入到技术底层,从而愈发觉得自己不适合做技术。

其次,如果你当前这一件事情没有做到最好,那哪来的信心能把下一件事做好呢?要知道,做任何事情的技艺都是相通的,成功的经验比失败的经验更重要。

所以,不管你未来的远景规划是什么,对于当前的事情你都应该全力以赴。即使你打算遨游整个宇宙,是不是可以先从研究发动机开始呢?

那好,我已经全力以赴了,我非常刻苦了,但还是感觉追不上周围的技术大牛。怎么办?

这个时候就不要做横向比较了,周围的技术大牛可能比你积累的时间长多了。而且,并不是任何人都能成为Dennis M. Ritchie,也不是任何人都能成为Jeff Dean。你周围的技术大牛恐怕也不能。

这时就需要从自身出发去考虑了:我是不是每天都在进步,比昨天的自己更好一点?我当前还有没有突破的可能?如果没有的话,那么我的时间资源是固定的,我要把它投放到哪里才能发挥最大的价值?比如我转行去设计产品的话,我能否成为杰出的产品经理?再比如我转行去做销售的话,我是否每天愿意和不同性格的人打交道?如果我干脆自己去创业的话,那么我有没有坚定的想法和不断向前的驱动力,以及足够的抗压能力?如果我打算转行去当一名作家,我能否写出惊世骇俗的作品?

当对于这些问题你都有了坚定的答案了,也许你就能做出你的选择了。

结局

在前面小白的故事中,小白的错误就在于他总以为有博士的控制器为他撑腰,所以选择过于轻率,而放弃也过于轻率。

每个人都有选择的自由。

选择也无关乎好坏。

在现实世界中,我们也无法真正比较两个不同的选择分别会带来什么样的结果。

但是,我们必须学会要对任何一种选择的后果负责。

实际上,小白的故事还有一个结尾。

博士在一声叹息之后,喃喃自语,“看来这终究是个害人的东西。”说完,他拿起一把锤子,把“多重宇宙控制器”砸了个稀巴烂。

小白选择留在了北京,留在了女友的身边。这一次他下定决心,不管发生什么事,他都要坚持这份感情。他先是在北京找了一份技术工作,工资不算太高,但每天都能学到新东西,也能有更多的时间陪伴女友。

两年之后,小白辞职出来,与女友一起创业。经过多年打拼,虽然中间也经历了种种难关,他们创办的公司也几近倒闭,但他们最终还是坚持了下来。终于,他们的业务规模越做越大,赚的钱也越来越多,在北京也购置了房产。

又过了几年,小白把公司卖掉,变身为亿万富豪。然后,他带着老婆开启了去仙境瀑布探险的幸福旅程。

(完)


后记

最开始当我决定写一篇有关程序员职业选择的文章的时候,并没有想要写成现在这个样子。但编到那个故事的时候,突然有点收不住了。于是,删掉了原来写好的大段文字,就变成了现在这篇有点怪的文章。虽然故事有些无厘头,但却是在讨论一个严肃的关乎选择和责任的问题。

如果你在阅读的过程中有什么想法,一定记得给我留言哦^-^


原创文章,转载请注明出处,并包含下面的二维码!否则拒绝转载!
本文链接:http://zhangtielei.com/posts/blog-programmer-choice.html
我的微信公众号: tielei-blog (张铁蕾)
上篇: 女儿的书单
下篇: Redis内部数据结构详解(5)——quicklist