行文之前,避免文章标题误导大家以为我会是一位“久经沙场“的职场老鸟,经验丰富,有独门秘诀相授,如此,着实心中有愧。
实际上,我从2016年本科毕业以来满打满算工作不到3年时间,也只跳过一次槽,经历过两家公司,目前在一家美帝外企从事软件开发工作,所在团队里多数同事的工作经验都在15年左右,在他们眼中我仍是初出茅庐的小孩,各方面的知识学问都还在疯狂”进食“阶段,专业能力更是需要很长时间去不断精进。
但是,我想这并不影响我写几篇文章,来总结在过去两年多里我所学到的职场知识,以求不断改善自己的工作方法,更快地成长,也分享给大家共同进步,如有不同意见,欢迎讨论。
在这里,我并不想过多的讨论企业环境差异,以及个体天赋和能力基础差异的影响,主要讨论从自身角度出发,我们刚毕业不久的年轻人应该如何去工作,才能让自己手上的工作更容易出彩,个人能力更快地提升,从而获得更优质的工作内容,或者是更好的工作机会。
在职场中,尤其是公司组织的各种培训会议上,管理者总会不断地告诉我们,在工作中要以结果为导向,公司是以实际工作产出来衡量员工的价值,部分管理者甚至会强调过程不重要,只要把交代的工作任务完成,不管以什么样的方法都无所谓。
但是,完成工作的过程真的就不重要吗?从管理者的角度这样讲或许是合理的,关注员工能力的提升也是管理者的工作范畴,但是这并不是团队绩效考核的硬指标,很多时候确实是顾不上。但是作为具体做事的员工来讲,我认为过程和结果同样重要,我们完成一项工作不仅是要体现与之匹配的工作能力,更重要的是要学到新的知识,让自己的工作能力得到提升。
有人可能会觉得做完了事情,能力自然得到提升。这样的想法就好像在学校时,认为做完了所有的练习册,学习成绩就一定会发生质变,所以学习成绩不够理想的原因是练习册做的不够。不妨观察一下身边那些工作了多年的同事,他们完成过无数的工作任务,但是是否每个人都拥有了与工作年限相匹配的工作能力呢?实际上,工作十年但是能力却和很多工作三五年的人差不多的职场老鸟并不少见。我想这其中的原因,部分可以归结到在工作中只顾完成工作而 不重视工作过程中的能力积累,这样的工作方法难以得到持续的进步。
比如我所从事的软件开发工作,为了完成一项开发任务,很多时候我们可以直接从Google或者百度搜索到现成的解决方案,然后简单地复制粘贴修改就搞定,也确实有很多人每天在这样去做开发。职业初期,这样做看起来会使工作效率提高很多,但是时间久了以后习惯了拿来主义,个人能力提升非常有限,专业知识没有深度积累,面对复杂的问题如果找不到现成的解决方案,便很难胜任工作,结果就是只能永远从事简单的边角开发,个人价值无法持续提升。
如果在完成每一项工作的过程中,我们不要只顾着追求完成速度,立马得到工作成果,以及manager所谓的认可,而是更用心的对待这项任务,更加关注在完成工作的过程中可以学到什么,争取从中榨取到更多的知识。尤其是刚毕业不久的新人,在团队内都会有急于出头之心,希望快速得到大家的认可,本质上这是一种积极的工作心态,但是这种自我证明的渴望也很容易让人急功近利,工作很快做完了,结果出现很多差错,花费了更多的时间去弥补疏漏,最终适得其反。
在这里我想描述一个个人的工作案例,在刚毕业时,我接到了一个插件开发的任务,这也是我承担的第一项正式的开发任务,虽然涉及到的开发技术比较简单,但是我希望通过它学到更多,尤其是工作方法上的知识。我是这样去完成这项工作的:
首先,明确这项工作的目标,有哪些约束以及更多的细节:为项目开发FTP Client插件,完成文件上传下载等基本功能,使用项目依赖库里现成的libcurl库来完成开发等等。
然后,分析完成这项工作所需要的技能:FTP协议是需要深度掌握的,libcurl作为三方库在使用时参考官方文档即可。
其次,根据deadline制定好详细的完成计划并严格执行:用2天时间阅读FTP协议涉及的RFC文档,并配合实验来熟悉FTP的通信过程;用2天的时间进行编码和debug;用1天时间和其它模块做集成测试。
最后,用文档记录在开发过程中遇到的问题以及解决办法,方便以后其它同事的维护工作。
整个过程中,我也可以只是简单的了解FTP协议,而不是花大量时间去阅读RFC文档,然后参考网上的代码直接移植到项目中来,所花的时间不到一半,看起来我的工作效率会更高。但是这样去做的话,我就仅仅是完成了工作,而不会对这个协议有比较深入的理解,在客户环境遇到比较复杂的问题处理起来也会花费更多的时间,所以这里多花的时间是非常值得的,但是原则上最好不要超过deadline。
对于我们职场中的年轻人,要追求工作成果,但切忌急功近利,更要追求高质量的工作过程,养成良好的工作习惯,才能持续进步。