作者语:每个人都是一株凤尾草,艰难地在夹缝中寻找他们的水源.
当大猿搬出那个强大R语言包时,我有不好的预感。
果然,经过十几分钟的调试,它兴高采烈地过来告诉我,运行成功了。
尽管这个开源包在理论上可以取代我之前一个月所做的工作与更之前愚公所做的工作,我依然心存侥幸,希望它别急着下结论。
我跟它讲,当我找到手里这个源码时,也是一样的心情,可是仍需要时间来验证。但同时意识到,这已经是垂死挣扎,未来画面已经很清楚:大猿将在未来三到四年内固定地呆在这家公司;我将在三到四周内完成交接,离开岗位。我手中唯一的工作需要暇手于人,而那个人很可能就是它。与其费时间去读懂我的代码,远不如自己实现来得快稳准。何况它目前处于空档期,搞点开源代码玩一玩毫无压力。
于是我茫然了。想来想去,剩下两三周无法再系统地接手一项任务,显而易见的勤杂工。
与其浪费办公室茶水,不如早点回去改论文,于是说出了早就有的提前结束实习的想法。
一时之间气氛有些微妙。
天色已晚,人群渐散,慢慢走在去食堂路上,沿途风景都变了。那宏伟的建筑、桥梁,那午后散步的山坡,路边随风摇曳的花草树,瞬间都变成了我的康桥。
竟然有些后悔。完全可以装模做样地呆着,忙忙碌碌暗渡陈仓,还能从大猿那里偷师学艺,何必非得离开。但同时已经很清楚,对于当前岗位,已经失去了存在的价值。回学校的公交上反复考虑,为什么会发生这种情况。
一个月前愚公交布置任务时,带着充分的期望和信任,也为自己一来就能够承担相对重要的任务而自豪。在C++、R、Python之间比较,觉得C++实现费时间和精力,R运行时间慢,Python这么熟,还是用Python吧。
就这样简单地思考之后,根据愚公设定好的任务,就开始积极上Github寻找开源代码。一个600多个星的源码下载下来,效果不错,演示给愚公看,它勉强地同意了(上篇说过它更倾向于用Java实现)。
于是在其基础上修修改改,解析文件、读取数据、生成函数、进行推理、写入文件。忙活一个月,也忙得不亦乐乎。
随后发生了开头的事情,为了不互相浪费资源决定打道回府。
在这个过程中,教训良多。
比如没有主动了解整个工程在做什么,承担的子任务是什么角色,因此也就失去从根本上改进的机会;比如语言不熟,失去了在多种语言之间筛选的可能性;比如遇到任务就闭门造车,没有尝试多种方案。
事实上,掩耳盗铃的做法只适用于人手不够的团队,在有竞争力的环境里,要想自己方案被采纳,需要拿出硬指标。
而要拿到这样的指标,这需要你像神农一样尝百草,像古代明君一样励精图治。
此外,经验也不少。
比如接触到了真正优秀的工程师,目标进一步清晰;比如清醒抉择、扬长避短,才能规避风险到最小。
如果说有什么终极经验,那就是选择和努力一样重要。在投入细节之前,花一周时间了解为何选择不是浪费时间,而恰恰是在节约时间。
过早深入代码细节,容易忽略全局。如果能选择前考察所有方案,找到最适合的那种,或许就不会出现同样的情景;即便出现,也能信心满满地说出优势所在。
- - - - - - - - - - - - - - - - - - - - - - - - - - -
后记:
这之后跟G讲了发生的事情,被严正批评(委屈脸)。
申请提前结束实习本身是合理的,不恰当的是说出的时机。
冲动之下做决定是不明智的,两件事混在一块解决就更不明智了。
表达方式也需要权衡斟酌来顾全他人感受。