半个月没更新文章,干啥去了
接近半个月没有更新文章了。我这半个月是不是去摸鱼了?这篇文章聊聊我这半个月的经历和收获的成长。
最近半个月都是七点半出发,十一点半回家的,参与上亿项目的子项目开发。本来这个项目的时间预算是在年底验收,但是因为某些原因,甲方要求在半个月内出一个版本。本来这个项目应该和我没关系,但是由于时间的压力,导致我不得不加入进来。
这半个月的时间,持续处于高压的环境。相比较之前的生活作息有了很大的变化。
- 时间和生活节奏上的变化:之前虽然也是996,但是我住的地方离公司比较近,所以基本上都是八点半起床洗漱,八点四十五骑上我的小摩托出门,九点到公司打上卡,完成日常的工作,和同事聊聊天,很开心,也比较轻松。晚上九点回家,洗漱加上看手机半个小时。稍微运动放松一下,换一个心情,然后开始自己的打卡计划。本来打算是在一个月内读完《netty实战》这本书的。按照计划每天十页,以及复习自己掌握的技术,然后输出博客文章。基本上会到晚上一点钟,这也是我为什么八点半起床的原因,我需要保证七个小时的睡眠,加上午休一个小时,每天八个小时。因为要去客户这里开发,每天的通勤时间多了两个小时。七点半就要出发去地铁站,晚上十点打车回来,位置特殊,每次到了十点出来就打不到车了,还要坐地铁出来。从二号线转六号线,再骑上我的小摩托回家。
- 工作环境的变化,因为时间比较急,工作性质比较特殊,数据比较敏感,我们不能把数据带出来开发。我们的开发工作完全依赖于内网环境下的数据,根据数据的特征,做出处理逻辑的改变。所以我们需要到客户哪里去开发。客户的环境是一个完全内网的环境,手机可以带进去,但是信号会被完全屏蔽掉,我们的开发本子也不能连任何网,不能插优盘。每隔一段时间就会进行安全检查。并且进去工作要走非常麻烦的流程,基本上就是九点被接进去,晚上再被送出来。
- 因为工作周期非常的短,随意我们每个人的压力都特别的大,基本上就是一口气从九点到晚上十点出来,中午和下午会吃两顿饭。中午没有时间休息。脑子都感觉转不动了,这个项目是之前没有做过的一个方向。也不是设计好的东西,我们完全要根据看到的数据来组织逻辑,这个是非常难的,并且在期间如果有什么问题,需要推翻重新开发。这种感觉像极了大厂面试,一般面完最后会给你发一个在线的题目,让你在十分钟之内写完。半个月的时间,每天都是这个状态,中间周末都没休息。
- 我大意了,没闪!我没想到北京的蚊子这么的厉害。进入夏天,蚊子特别的凶,我就两天没关窗户,就给我咬了200+的包。每天晚上回来涂药的时间都要用半个小时。我一度怀疑是不是北京的蚊子都跑我家了。身体上的不适,加上项目时间短的压力。
这是我半个月没有更新输出文章的原因,这半个月我没能打卡自己的学习计划。正好在端午的三天假期时间,我补一下之前没打的卡。
这段经历给我带来了成长
- 管理方面:如果以后我能够做管理的话,我一定想办法给自己的组员争取最多的时间。另外一个技术性的管理是非常重要的,leader应该对项目周期有一个很好的预算。实际上工作的舒服不舒服很大程度上取决于你的leader。因为把一件一周可以做完的工作,交给你做,并给你十天,这就相对的轻松一天。把一件一个月的事,交给你做,并让你十天之内完成,即使你能完成,这意味着你每天的输出要是以前的三倍,你每天花的时间肯定比之前多,持续十天的满负载。一定是不舒服的。如果是老板的话,先想办法让自己的员工舒服,然后再想如何让他们在自己的岗位上发挥更多的价值。
- 关于沟通成本:前边提到,这是一个特别大的项目的中的一部分。我们需要把我们的子系统对接进去。期间也花了非常多的时间在沟通上,或者说等着沟通上。不知道和谁沟通,不知道找谁。这也是在项目管理上的问题。因为我觉得这是一个很简单的事情,画一张图,就能解决沟通上的困难了。能用文档解决问题的,就不要用人来沟通。文档具有可复用性,并且它不需要成本。但是使用人共同就有成本,因为人有情绪,人在沟通过程中,有可能会有疏漏,另外就是人的时间精力都是有限的,靠人来沟通是单线程的,它在和别人沟通,你就不能和他沟通,你就需要时间来等待。其实在这次项目中我不明白的是,这个项目包括了几十个子系统,每个系统都要和总系统对接,所以重复的工作被做了很多次。包括我们对接的推数据和取数据。每个团队都要写代码来解析,中间出错了就取不到数据。我在想为什么不能搞出来一个封装好的工具类。这一刻我真的明白,一些重要的事情,还是要交给能力强的人来做吧,否则会把问题无限的扩大,浪费的是跟多人的时间。说实话我是不能接受这种沟通状态的。可以看我下边画的图,其中蓝色代表的是我们系统的描述标签,粉红色代表的是整个系统应该统一使用的数据工具类,所有的数据规范都实现在了统一的工具类中。实际上这张图解决了很多的问题:第一个问题是不知道找谁沟通的问题。如果有图的花不用专门找人来协调,可以直接去找上游沟通。如果某个子系统出问题了,很快可以找到影响的下游。比方说第二层出问题了,那么下游全部的子系统都会受影响,有时候可以根据下游反馈的问题,定位到出问题的系统在那一层,是哪一个。第二个问题就是,我上边提到的工具类,在我参与的这个项目中,里边的所有的子系统都有开发一个取数据,推数据的工具,每个都开发一遍,踩一遍坑,浪费很多的时间。
- 自身能力的提升:在这个非常具有压力的过程中。我也有一些致命的错误的,因为逻辑不对,导致几次的代码推翻重写。可能也是我自己没有想清楚,这给我的反思就是,我们在写之前一定要构思清楚,如果可以的话,先画一个流程图。如果时间不允许,就写伪代码来梳理逻辑。把所有的都搞清楚了,再开始敲代码,实际上需要敲代码的时间是不多的。自己的小bug也有浪费时间。另外在这波开发中,我深有体会重复代码带来的困扰,因为我自己的代码写的不优雅,直接导致了出现蛮多重复的代码。在我改其中一块逻辑的时候,遗漏了其他位置的代码。这给下游我的同事带来了困难,这是我自己应该反思的。
- 代码能力的提升:我真的很能理解算法刷题的重要性。如果你有大把的时间的话,不妨打开力扣,开始刷题,从第一道开始刷,把每个题都当做这是工作中要解决的问题。先去用最短的时间解出来,然后再花时间去找最优解。做题的过程,和在工作中写业务逻辑是一模一样的事情,可能不一样的是在工作中你完成他,可以给老板带来经济效益,而在刷题过程中只能给你自己能力带来提升。你的工作价值一定程度上决定了公司能走多远,而你自身的能力决定了你个人能走多远。个人能力对公司来说是至关重要的,公司完全可以选具备此项能力的人,也就是说我们都是可被替代的。想要走的更远,还是注意自身的能力的提升。攻克力扣的算法题目,是我未来两年要做的事情之一。