进入新公司,面对新项目,应该抱着怎样的心态

我第一次换工作,便遇到这个问题。进入新公司将近一个月了,才慢慢搞懂公司的开发是怎样运作的。在这一个月里面,我几乎是崩溃的,面对新环境,真的有太多东西不了解,直到一个星期以前,我才真正开始写自己的代码。现在将自己总结的心态写下来,为自己再换工作总结经验吧。

1.了解公司的业务,确认项目属性

我们做开发的,常常陷入这样一个矛盾:把所有的产品都当做互联网大众产品对待。我们脑海里面想的最多的,可能是这个产品要给百万级用户使用的,上线要快,要快速迭代,体验要赞。很多人和我一样,把所有产品都当做是给小白用户使用的休闲娱乐产品。

实际上,企业级的产品占据了整个市场的半壁江山。2B的产品不可能像微信、美图秀秀之类的产品一样,过于浮夸,面向企业的产品往往要大气、稳定、安全、健壮。所以,真正考验技术和能力的产品,是在企业级产品上。

我们公司做的是金融数据支撑的系统,我们通过对获取的原始数据的研究和分析,构建能够提供使用的数据集,而我们所开发的产品,主要目的就是从这些数据集中将有用的数据以界面的形式展示给用户,用户(主要是金融投资机构)从我们这里获得数据后,自己做评判,决定投资模式。

因此,我们的产品更多的,要求金融数据的准确,系统的稳定,以及账户的安全。试想,用户从我们这里拿到的数据不准确,或者出现分歧,会对他的投资带来多大的风险。如果我们天天迭代我们的产品,用户需要花多少时间来学习,而这些时间对于金融投资机构而言,可不是普通昂贵的,是极度昂贵的。

在明确了这样的理念之后,就不要想着在公司哗哗哗做出多么牛逼闪闪的产品,可以说到我从公司离职,可能都得钉死在一个小小的模块上面。也正因为如此,个人学习的目标也要适当调整,以前可能是积累项目经验,而现在可能就得在项目本身的架构、技术策略、新技术、新思想上进行深入学习。

2.了解开发框架,主动学习

不同的公司,所要付出的学习成本是不同的,公司越小,可以认为学习成本越小。因为大部分小公司都需要快速上线产品,通过线上的响应来调整产品的研发方向,所以一般而言,在要求快速迭代的公司,所使用的开发框架都比较大众化,无论是后台,还是客户端,可能根据开发者自己的接触,选择比较流行的,以方便后续进来的新开发者可以快速上手。

但是在大型一点的公司并不这样,为了自己公司系统的独特性和安全性,往往大公司会采用自己的框架,而且这些框架往往有着悠久的历史,既能在框架中看到最近几个月才出现的新技术,也能看到上个世纪八九十年代的骨灰级技术。因此,在看到这种情况的时候,绝对不能埋怨。大公司的框架往往具备自己产品的独特性,是在自己的产品业务发展过程中,经过实践检验的,不应该以自己的经验横加指点。当然,如果是要做完全不同的新业务,那就另当别论。

我们公司所使用的,是一套复杂的node.js框架内核,内部代号为capitol,有多个衍生版本,在这个框架内核的基础上,又根据业务不同,产品线不同,开发了多个框架。这个关系就跟linux和android的关系一样,capitol是linux,而产品线上的框架是android。作为刚进公司的小白,应该尽快的学习这些自己所要使用到的公司内部框架(即使基本找不到什么文档)。

3.学习和遵守所在产品线的开发规则

公司内部会制定一些规则来保证开发者之间代码的兼容性和同步,包括一些开发规则、规范、协议,也包括开发环境。

我们公司有自己的开发环境,我到公司后,单单配置开发环境就用了几天时间,而且在build代码的时候,和在开发组件的时候的环境也是分开的。所以想要在后续的工作中得心应手,就尽快把公司的wiki看一遍。特别是在自己产品线上的一些开发规则、规范、约定,以及git上的开发习惯等等,都要尽快向周边的同事请教。如果刚到公司就开始写代码,我可以保证,90%以上会做无用功。

4.业余时间补充学习自己需要的技术点

当你开始进入一个新的项目的时候,一定会发现项目中用到的一些技术你不熟悉,或者甚至根本没接触过。这个时候千万不要怕,凡是会编程的人,要学会一项技术并不难,特别是有一定经验的开发者,只需要稍加勤奋一点,利用好时间,就可以补充这些不熟悉或不会的技术点。

我刚到公司的时候,对node也是基本不懂,因为以前从来没有在node环境上开发过。但是,当我读了一些node的文章之后,发现自来熟,虽然谈不上精通,但是在node上开发基本不成问题。我的一个同事之前一直做前端,而我之前写php,所以我跟她解释,你把node上跑的javascript当做php来对待就好了,虽然都是javascript,但是我们写的代码里面,有一部分是跑在服务端的,有一部分是跑在前端的,把跑在服务端的javascript当做php对待就好了。这么一比喻,她很快就理解了。现在,不需要去研究node的语法了,因为懂javascript就懂了一切,现在只需要记住把javascript当做php就好了。

虽然实际开发中,node环境下面其实经常不分前后端,写的代码都在一套框架里面,但是这种把javascript当做php的想法,确实在前期给了我很大的帮助。除了node,以前没用过的ember,express,backbone都要去学,angularjs,grunt,gulp,webpack等等也要去深入了解,还要学一些只有在公司这个项目中才会大面积用到的插件,比如dhtmlx。总之,要学的东西不止一点点。可以在上班的时间偷偷学就抓紧,如果实在不行,下班回家后就不要打游戏了,坚持学习一个月,一定能快速进入状态,在后期的升职加薪中崭露头角。

 

以上就是我所总结的最重要的几点想法,关于如何和新同事认识,如何和前台妹子搭讪之类的,我就不提了,这种需要情商的事,对于我们猿类没多大用处,毕竟我们都是自来熟是不是。

2016-06-17