2016年用几个词来形容,就是戏剧化、变化和成长。在此我用简单粗暴的上半年和下半年来划分这一整年,同时一一解释这三个词的意义。

上半年

上半年可谓是非常戏剧化的一段时间。我申请了为期一年的美国实习项目,对于GPA不高的我来说并没有抱太大的希望。很快我接到了面试邀请,却因为一些很滑稽(双方面)的原因错过了面试。虽然面试官告诉我“Will reschedule”,但是随之而来的却是音讯全无。在这之前我对于来到美国并没有太多的想法,因为我认为现代网络如此发达,写程序的地点并不会阻碍职业发展;但是对于这样不明不白的结局非常不甘心。正好我当时在这个公司的中国分部实习,我甚至通过公司内部目录找到了他的邮箱,并用自己的公司邮箱向他发送邮件咨询,却仍然没有得到回应。眼看身边已经有人收到了Offer,我十分着急。

俗话说天无绝人之路,事情出现了转机:在春节前中国分部有个比较着急的小项目,我毅然接了下来。在过年前的一天我从早上9点加班到凌晨1点,一整天都在和PM沟通、改进。随之而来的是BOSS向美国那边的推荐了我,我也得到了面试机会。面试的过程异常轻松,并没有问我太多深入的技术问题。在又是焦虑的几天等待后,我收到了Offer。

虽然已经过去了这么久,我还是很感谢中国分部的同事和BOSS。在回忆的时候会发现,生命中的重大转折可能仅仅是因为一件很小的事,而这件小事又是通过之前的一件件小事叠加才会发生的。所以在做一些事情的时候不要过于在意他的意义是什么,坚持自己所坚持的;如果发现事情的发展与自己所坚持的有偏离,一定要主动尝试去改变,最终结果有很大的概率不会让自己后悔。

另一方面,三年的感情换来分道扬镳的结局,随之而来的另一段也无疾而终。至此我意识到:感情生活并不能成为生命的主旋律,它的状态并不仅仅取决于单方面;而人又是极难控制的一种因素。自身发展相比于亲密关系而言,是更加容易把握、也更加有益的。不过也要感谢前女友们用实践教会给我道理,让我的下半年的工作充满更多激情。

下半年

我来到了美国这个以自由著称的国度。一切对我来说都是新奇的:广阔的城市,美得不真实的蓝天白云,各种各样的人,还有如此庞大的公司。很快我们开始了工作。像大部分中国人一样,一开始的我非常含蓄,并且对自己的口语不自信:与外国人的交流不多,英语说起来也有点磕磕巴巴。但一开始我并顾不上这些,因为我发现我需要独立完成我的第一个项目:为所在的部门重新写一个展示用的网站。

现在看来这样一个网站并不复杂,但是对于当时的我来说无疑是一个挑战。2016年恰逢前端飞速发展,新技术层出不穷,而我之前所接触的基本只能算是小打小闹。虽然我包揽了很久前所在小型创业公司的整个后台管理系统,可所有的前端代码都是基于jQuery,后端也仅仅是用了Code Igniter的基本架构。随着代码量的不断上升,这种配置下的代码愈发惨不忍睹,但在那样一个十分需要快速的迭代的环境中完全无法对代码进行整理抑或是重构,也就直接导致了其实我的技术水平在很长一段时间内停滞不前,做的工作更像是搬砖工。但是我并没有放弃思考,对于业务上的需求还是会有自己的想法并参与讨论。

在创业公司的实习结束后,我去了这个大公司的中国分部实习。当时的项目采用的是Angular 1.x,这是我第一次接触前端的框架,也接触到了gulp等构建工具。但我并没有独立的从头开发项目,做的是添加功能或者修复bug的工作。但有一个惊喜是,我发现自己设计出来的界面并不会太丑(现在回头看其实并不漂亮),而且同事也会愿意来让我设计一些东西。想当初在创业公司的时候设计的工作都是由另一个同事来完成的,既然自己也喜欢美的东西,为什么不自己动手呢?

言归正传,当我得知我需要独立完成这个项目的时候,心中更多的是惊喜:我不用去做像一般实习生那样修修补补的工作,对技术上来说这是一个绝佳的锻炼机会,可以让自己熟悉整个前端的开发流程;对于展示类网站来说,好的设计十分重要,所以这也是提升设计能力的好时机。我内心也明白:既然让一个初来乍到的实习生单独做一个项目,那么可能的情况便是这个项目可有可无或者并不重要————是的,之前组内已经有一个“能用”的展示网站,基于jQuery和Bootstrap。但是我并不是特别着急:毕竟刚来,别人对我究竟有多少实力并不了解,我要做的是想办法快速证明我的实力然后接触更为重要的项目。

经过短暂的讨论后,我选择了React而不是Angular 2。究其原因可能是之前用了Angular 1.x想换换不同团队的作品吧。在花了一天左右熟悉React与Gulp那一套自动化构建工具后,我开始大量浏览漂亮的网站想获得一些灵感。随后我发现,展示类网站的难点很大程度上并不是排版,而是素材:好的照片、产品图和矢量素材非常关键。可惜的是我并不会利用电脑绘画,于是之后的几天我花了很多时间在了找素材上。

突然我领悟到,把时间花在找素材上面并不是最佳方案————素材可以做完了网站之后再补充或者替换,如果因为这个耽误了整体进度其实是得不偿失的。很快我搬运了原网站的所有内容,但是网站的观感已经完全不一样了。同时我也把其中的一个纵向轮播图组件开源了。

时间已经过去了将近两个月,而我看到了一个机会:组内有一个数据整合的需求,除了可视化以外还需要能够对不同筛选条件下的数据进行查看、导出等操作。听起来似乎不太复杂,但实际上有好几种不同的数据,而每条数据的内容也很多。组内大部分人并不懂技术,一个清晰、易上手的UI十分重要。之前的实习生花了将近一年的时间写出了一大片杂乱无章、难以维护的代码,命名为Dashboard,使用起来也会有各种诡异的逻辑和bug,从而导致这个项目迟迟不能上线;可能由于上级有一定的要求,他们又想要这个项目尽快完成。我提出了大胆的想法:前端完全重写。如果没有之前的铺垫,我相信没人会批准的,毕竟不知道我这一重写会不会又是将近一年。在花了一天左右熟悉Redux那一套东西后,我开始疯狂地写代码。

Github Record

从10月6日第一次提交开始一个月的工作量

大概一个月后,我们组的人已经完全不用之前的Dashboard了,我的项目也大大提升了他们的工作效率:某天我听到有人说,她更愿意用我的Dashboard来查询数据而不是存放数据源的网站(是的,数据源本身就有一个网站,只不过那个网站实在是不好用也不提供可视化所以诞生了Dashboard这个需求)。其实我的设计主体其实很简单:把网页分割成Filter和Content两块,利用Redux进行数据同步,一旦Filter有所改变立即反应到Content上。对于具体内容展示上的设计涉及到很多细节,在此也不一一展开了。

至此,我一步步向别人展示了自己的能力,同时也强迫自己多和外国友人交流。身为程序员大家都明白和不懂技术的PM交流本身就有一定困难,更何况要用自己在国内基本没说过的英语。每当有所退缩的时候我就告诉自己:自信一点,不要浪费了来美国的机会,如果你现在做的事情在国内也可以做,那你来的意义是什么?

事情看上去都在朝好的一面发展,但是下半年对我个人来说有着巨大的变化:我开始考虑是不是要留在美国。这里的环境与国内有着巨大差异,先说说我看到的优点:湾区的天气非常好,天空很蓝,一年内下雨的时间很少;整个西部自然景观很多很美,再加上地广人稀,就算是去知名度非常高的优胜美地玩也不会有只是去看人头的感觉,这也直接导致我喜欢上去各个国家公园或景色秀丽的地点旅游,要知道在国内我是讨厌旅游并且喜欢城市的;基础设施发达,生活设施齐全,高速基本不收费。缺点也是存在的:由于地广人稀,可以预见在正式工作以后与人之间的交流机会除了工作以外会很少,而这边的人很多是已经有家庭的,更是加剧了这种情况;如果住在大城市的话,鱼龙混杂,给人感觉治安并不是特别好;更重要的是深深地感受到了文化之间的差异,很难融入他们的世界。你会感觉到很多人都很友好,参加Party如果你的英语还不错的话也可以与别人愉快地交流,但还是会感受到一种难以逾越的距离感。相比于祖国全是自己人的环境来说差距太大。

我并不想过于纠结,先争取留下来,看物质环境上的优势到底能不能盖过精神上空虚。但是我所做的还不够,必须要做更重要的工作才能确保万无一失。因为数据整合的项目已经基本完成,接下来的工作无非是修补以及增加一些功能,但不会像刚开始一样有很大的工作量;时间也到了年底,离实习结束只剩下的半年多,所以是时候开始新的项目了。我尝试与Mentor聊天,讨论我接下来该做什么同时又满足两点要求:第一是有足够的影响力,让我被更多的人记住;第二是能在实习剩下的时间里完成,不烂尾。我非常感谢我的Mentor,因为他每次都会抽出自己的时间来全力帮助我,并给了我一个绝妙的建议:重写现有的实习项目招聘网站。我就是通过这个网站进入实习项目的,而我们部门恰好又在负责整个实习项目。原有的网站学生申请方面可以说差强人意,但是在我看过后台管理之后便终于理解为什么很多人更倾向于直接用邮件和实习生交流而不是这个平台了。总而言之,我能够发挥的空间更大了:之前我所写的基本都是前端,而现在我需要重写整个后端和重新设计整个数据库;这是一个面向公众的产品,我的工作将会被更多的人看到。

坦白说,这对于我是一个并不小的挑战:Mentor有自己的项目会给我提供其他帮助但是不会帮我写代码,也就是说所有的代码工作将会由我一人完成。事实上我很乐意去做,因为成长的关键便是跳出自己的舒适区:可以预见我在接下来的时间里会学习很多我之前并不是十分了解的知识,包括现代的后台结构、权限认证、数据库性能优化等等;如何在与现有招聘流程不冲突的情况下对整个流程进行改进、优化;如何保证整个项目的一致性和可用性(容错性不是这个项目的关键);因为面向公众,所以也要保证安全性;招聘的流程并不简单,而且每年会有一定的变动,所以我的所有设计要在保证清晰的同时又具有一定的灵活性。

这便是我的下半年,环境与生活的变化、技术与个人的成长。

尾声

2016年是非常丰富多彩而特别的一年。我也希望自己在新的一年里能够更好地利用时间,做更多的事情。这里所指的事情不仅仅局限于技术上,也可以是音乐、文化甚至旅游。人生难免会有遗憾,但最好不要留下后悔。因为遗憾大多数无法控制,而后悔往往是自己原本有机会改变的。