程序员在职场

初入职场,还没有完全脱离学生气,很多东西不懂,很多事情也都还没有做顺手。一点点困难,一点点压力,促使着我们不断学习,不断进步。在一个大公司里工作,能够了解那里的团队管理制度,接触算法的各种落地应用,认识很多特别优秀的人。在过去的一年里,我从实际项目中,从很多同事身上学到了不少东西。

在团队作战的过程中,执行力是非常重要的一种能力。在大公司,我们这些新人就是一颗颗螺丝钉,需要把一些细小的环节做好。若你执行力不强,不能在deadline前完成任务,就很有可能拖慢整个项目进度。

细心、谨慎也是程序员需要养成的一种习惯。执行力强不是说你做得快就可以了,首先要保证一定的质量。质量涉及很多方面,比如说你实现的功能与预设的需求是否吻合,代码是否有bug,代码的可读性好不好,时间和空间消耗是否在可接受范围内,抗压情况怎么样,面对不断变化的需求其可扩展性怎么样等等。

一般情况下,你写的代码会经过层层审核,才能最终上线。在任何一环被退回来,都会耗费掉一些人力和其他资源。你在开发初期能够细心、谨慎一些,尽早发现问题,就可以缩短项目周期、节省公司资源。其实,被退回来还不是最惨的,最坏的情况是项目上线后才发现问题。这就直接影响了用户体验,进而导致流量下降,收益减少。作为事故承担方,轻则通报批评,重则引咎辞职。

我们每个人只负责流水线的一个模块,是这个模块的owner。每天,不是你问我这个模块,就是我问你那个模块,或者合作解决一些问题。在这里,沟通能力是重要而且必需的。有时是在讨论组里讨论,有时是电话联系,有时是见面沟通。基本内容包括,描述问题,讨论出几套方案,上层拍板,分解任务,确定各任务的负责人和deadline,发邮件周知相关人员。

虽然我们只是螺丝钉,但我们需要做的事情细分起来也挺杂的。大体上分三类,一类是你手头上的主要项目,这个项目上线后能够给公司带来一定的收益,这个收益不仅包含新增的流量或收入,节省的人力或机器资源,也包括更简洁好用的架构,更稳定的业务体系等等。第二类是支持项目,就是别人的一个主项目需要你的配合,比如说别人希望你负责的模块在输出时新增几个字段,让你帮忙统计一些数据之类的事情。第三类是杂事,一般是为了服务团队,这类事情往往很简单,不需要太费脑子,费一点体力就行了,比如说看到例行任务挂了然后重启一下任务,看到公共机器满了就通知大家删一下东西等。

一般我们手头都会有好几件事需要去做,这时我们心中一定要对任务有一个优先级的判断,优先级高的先做。如果一个任务只需要很短的时间就可以解决,我们也可以考虑提早做。另外,我们还要注意任务的等待时间。有些任务刚开始的时候优先级不高,但等待时间过长后,我们也应当将其优先级提高,不能让其“饿死”。有时,任务的先后顺序并不能完全由我们自己安排,比如说优先级高的任务需要等待其他资源,那我们就可以先去做优先级低一点的项目。

周会是一个集思广益的好地方,在这儿,你既可以了解到别人正在进行的项目,也可以汲取别人对自己项目的一些建设性意见。出色的同事在周会上往往有几个表现:一是涉猎面广,思维活跃,能够提出很多好问题或者给出好建议;二是目光长远,能够从源头上、根本上去思考问题和解决问题,而不仅仅满足于针对眼前问题弄出的临时方案;三是触类旁通,相互借鉴,你在A项目上的算法,我稍作修改就可以用于B项目。

优秀的同事除了技术过硬,为人处世也很有一套。对上,他们保持超强的执行力,说话做事干净利落。对下,他们恩威并施,既表情严肃地指出小弟的不足之处,又和颜悦色地鼓励他们好好干。

未来,我还有很多东西需要学,需要练。但只要自己一点一点地去努力,总能在这竞争激烈的职场占据一席之地。

你可能感兴趣的:(程序员在职场)