写在前面
2020 年 7 月 29 日,我只身一人来到北京,开始人生中的第一份工作,在一家国企从事软件开发工作。
2021 年 6 月底,我从国企离职,然后进入了一家互联网公司,从事软件开发工作。
这将近一年半的时间,虽然只在目前所在的互联网公司待了短短不到五个月的时间,但是对我的影响却是巨大的。我的工作经验在程序员这个职业上还算很年轻,所以谈不上分享什么经验,仅仅是自己作为一个阶段的回顾,想记录一下从国企到互联网的「得」与「失」。
变化
工作时间
之前在国企的时候,工作时间是 9:00-17:30,午休 11:30-13:30,周末双休。基本没有加过班,周末也都是属于自己的时间,不需要再考虑工作上的事情。
现在在互联网公司,工作时间是 10:00-20:30,午休 12:30-13:30,晚饭时间 18:30-19:00,周末双休。因为现在晚饭都是在公司吃,如果不是刷朋友圈,我是不知道北京哪天的夕阳又刷屏了的,因此错过了很多美丽的瞬间,也算一点遗憾吧。
工作强度
从上面的工作时间就能看出互联网的工作强度和国企比不是一般的大,好在我司在互联网公司里面还算强度比较低的,没有 996,没有大小周。
工作内容
因为公司性质,之前在国企做的是 ToG 的产品,涉及到和地方政府合作,有时需要和地方政府的人沟通,反正我是不喜欢这点的。
现在在的互联网公司主要做的是 ToC 的产品,不过因为我不做业务这块,我是做内部系统的开发,平时需要沟通的都是本公司同事,相对还比较好。
工作难度
之前在的国企的技术栈是:Python + Django + MySQL + Docker
现在在的互联网公司的技术栈是:Python + Flask + Vue + pREST + PostgreSQL + Docker
最近因为赶上公司裁员,带我的师傅被裁了,现在我一个人担任之前两个人的工作量,管理三个内部平台的前端和后端,差不多晚上 21:35 到家之后还得继续工作,周末也需要加班做会未完成的工作。
因为现在三个平台的前端、后端的开发都是自己一个人来搞,难度确实挺大的,特别是对于我这个才接触前端三个月时间的前端小白,既要负责修复平台的前端 bug,又要开发新的前端页面等,真的每天都在和 Vue 怄气。还时不时会遇到一些历史遗留问题需要处理,感觉每一次都是对自己的历练。有过很多次代码写不出来的崩溃,这个其实在哪家公司都会遇到,原因出在自己身上,因为技术功底不扎实。
因为之前在国企做的是后端开发,只需要管向前端传什么数据就行。现在在互联网公司一开始也做的是后端开发,但是后来因为人手不够渐渐地就转成了全栈。开始全栈开发之后,发现自己对整个开发流程有了更深的认识。以前写后端只需要管传什么数据,现在前后端都自己写,因此要考虑的东西就多了,从前端页面展示,到后端传数据。举个实际工作中遇到的问题:前端页面查询数据加载太慢如何优化。做全栈开发之后我知道了优化方法有很多,一是前端优化,包括前端分页、加载动画等,二是数据库优化,包括建立索引、使用分区表、优化 SQL 代码等。这些都是实际工作中一点点积累的经验。
做全栈的一个好处就是前后端都是自己一个人进行开发,因此少了联调环节,可以更加专注开发。不过解决 bug 的时候,既要考虑是前端的问题又要考虑是后端的问题,大脑需要高负荷运转,还是非常锻炼逻辑的。
工作成就感
想到了之前在国企的时候,有个朋友之前和我说“你周末经常出去玩会不会是因为工作上没有什么成就感才导致只想玩乐”。后来我意识到确实是因为工作上没有什么成就感,才导致我对工作提不起什么兴趣与热情。
来到互联网公司之后,特别是最近这一个月,因为平台的前后端都是自己一个人开发,遇到问题也没什么同事可以请教(因为我负责的三个平台的开发与维护现在就只剩下我一个人了),加上有时候会遇到紧急需求要实现或者紧急 bug 要修复,发现自己一个人解决后,真的很有成就感。同时,也确确实实感受到自己比以前更会写代码了。从写不出来代码到独立写出来代码是很大的提升,往后就要注重提高代码质量。
工作性价比
想到了之前在网上看到的一个工作性价比计算器,我根据自己实际情况分别计算了在国企和互联网公司的工作性价比,发现现在是真的爽。
工作满意度
其实我觉得一份工作的满意程度主要取决于三个因素:钱是否给到位、工作内容是否喜欢、同事相处是否融洽。
在国企的时候只占到一个同事相处融洽,现在在互联网公司占到两样:工作内容是自己喜欢的以及同事相处融洽。
敏捷开发
巧的是,之前国企所在部门和现在互联网所在部门都采用的是敏捷开发模式。但是带给我的感受却非常不同。
在国企的时候,每天早上都有站会,汇报一下前一天的工作。其他就没什么会议了。
现在在的互联网公司,每天早上也有站会,每周还有交互评审和需求评审,以及每两周一次的迭代会,还有月度会议。同时公司采用的是 OKR 工作法。毕竟和国企相比,互联网公司最关键的是「生存」。部门按一周算一个迭代,即每周排任务不超过五个故事点,然后新的一周会统计上一周迭代完成情况。个人觉得现在团队采用的敏捷开发更加专业一点,而且我也喜欢这种节奏。
环境
之前国企在的就是普通写字楼,因为整层楼都是,所以接触不到其他公司的人。现在在的互联网公司在一个创意园区,园区环境挺好的,而且上班路上在园区也能看到其他公司的人。
相比之前在国企的条条框框(比如打卡,经常有什么非技术性培训需要参加,而且还有周报、各种报告),发现互联网是真的自由,没有打卡,没有周报,没有浪费时间的无聊培训。而且我留长发在现在的公司没有同事说不可以,倒是有几位女同事说发型不错。
另一点就是互联网公司的员工普遍比较年轻。同事沟通代沟相对很小,而且科技前沿大家都会关注,比如前阵子我就听新同事讨论元宇宙。我所在的部门也是个很好的部门,没有领导 PUA,还经常收到同事的零食投喂,反正部门的零食区只有增没有减,永远都吃不完。
「得」
虽然自己近一个月都在加班,周末也没有属于自己的时间,已经一个月的周末没有进城了,更别说 live、电影、和朋友约饭喝酒,娱乐活动都没了。不满的情绪是有的,但是在经历完这一个月来自己一个人负责三个平台的开发与维护后,发现自己真的在飞速成长。
技术成长
可能是之前在国企「混」了一年,在准备跳槽面试过程中,发现自己对于所掌握的技术了解的既不深入又不全面。现在越来越觉得努力提升技术的重要性,相比玩乐带来的一时快感,觉得还是应该把更多的精力和时间放在提升自己上。
刚进入互联网公司的时候,因为要快速上手公司项目开发,于是 leader 和带我的师傅共同给我布置了相对宽松的学习任务,在两周内从零开始学习 Vue、PostgreSQL、D2Admin、pREST 等框架与技术,以及一些工具的使用比如 Kong、Portainer、Adminer 等。差不多入职半个月之后就开始接触公司项目了,先从修改简单的 bug 开始。
在学习新技术的同时,我也更加扎实了自己对 Docker、Linux 命令的使用。同时独立解决问题的能力也得到了很大的提升,善用 Google 和 Stack Overflow,很多问题都能从官方文档里找到解决方法。发现网上有些同行写的技术博客质量是真的差,特别是 CSDN 平台上的,基本上看十篇博客,只有一两篇有点用,其他都是浪费时间。通过公司内部的技术交流,我也开始了解一些偏微服务架构方面的技术,这个和写 CRUD 比还是挺有难度和深度的,更加考验技术功底。
从最初遇到技术难点研究了半天也没有任何思路,无奈只能求助师傅,在师傅循序渐进的指导下,我逐渐突破了一个个技术难点。再到后面师傅被裁了,只能全程靠自己一点点摸索与试错,努力解决一个个工作中遇到的难题。经常有一个人研究一天都没有进展的无奈,但同时也有自己独立解决问题的兴奋。这段时间是我觉得自己技术成长飞快的时光。
在一次和现在同事的聚餐中,部门 leader 和我说他当年刚参加工作的一两年,全年几乎都没有出去玩,晚上下班和周末都是在家学习新技术,这才成为了一名优秀的架构师。所谓的先苦后甜就是这个道理,总是听到说刚毕业进入职场的三年是变化最大的时期,因为「努力」和「混」的程序员,会在这三年产生非常大的差距,这个是未来需要花远远大于三年的时间才能追上的。
沉淀
现在每完成一个技术难点,都会写技术博客作为记录,不过基本都没有发布到网上,而是保存在了自己的电脑上。一方面是觉得有些博客写的还不够深入,不想因为一味追求博客数量而放弃博客质量,另一方面是自己还没有从实际问题中抽离出具有普适性的解决方法。比如说有些技术博客会涉及到公司的项目代码,不方便上传到网上,而且我也没有从中把公司代码给剔除掉,改写成其他例子。不过,这点我会慢慢改善,肯定坚持的是发布不涉及公司代码的技术博客到网上供人指正。
「失」
业余爱好
乐器
在进入互联网公司工作一个月之后,因为某次看音乐演出而坚定了自己多年来一直想玩乐队的想法。于是报了电吉他课,买了电吉他、音箱、效果器。然后开始了每周末坐一个半小时地铁去上两小时电吉他课的生活,工作不忙的时候工作日晚上到家也会练半小时琴。现在只是会一点和弦,自认为还不算入门。但是最近一个月的疯狂加班,导致已经一个月没去上课了,在家也几乎没有时间练习,忘了很多。
摄影
在国企的时候喜欢周末带个相机出门,拍拍这座对我来说还很陌生的城市,记录下一些美好的瞬间。跳槽到互联网公司之后,一方面是将业余爱好重心移到了乐器学习上,因此在摄影上投入的时间和精力就少了很多,相机也放家里很少按下过快门。
生活
因为晚上和周末都是加班的状态,自然就没有属于自己的时间了。难得的娱乐活动可能就是晚上失眠的时候玩玩手机,反正也睡不着。
亲人与朋友
加班多了之后确实少了很多和朋友相聚的机会,好在还是有关心自己的朋友的。
虽然加班很多但也一直和家人保持联系,看看爸妈经常在微信群里发家里小猫咪的视频和照片,觉得有个小猫咪陪陪他们还是很不错的。
写在后面
如果要我简单总结一下这次从国企跳槽到互联网的个人体会,我会提以下四点。
1. 技术人应该把重心放在提升技术上面
众所周知,程序员所在圈子的技术更新迭代实在太快,快到学习的速度跟不上新技术出现的速度。但是仍要坚持学习新技术,可以先不深入只了解再决定是否要深入学习,千万不能安于现状。
2. 沉淀很重要,好记性不如烂笔头
我很喜欢写笔记,虽然工作熟练之后可以减少查看文档的时间,但是刚上手新项目的时候,还是建议多写写笔记,并且经常回顾与复习。
3. 工作是为了养「活」自己,生活是为了养「好」自己
别忘了生活,我一直觉得生活丰富的人是不会不快乐的。长期的工作高压之后,很容易影响一个人的心情和状态,只会越来越差。前段时间因为工作压力过大时常怀疑自己是否适合写代码,找了学心理学的学弟要了份 SDS 抑郁自评量表测试,结果测出来是中度抑郁,把自己吓住了,差点想去医院找医生看看。好在自我调节比较好,目前又恢复了往日正常的状态。
4. 工作的同时也别忘了身体健康
最近发现身体健康没有以前那么好了,倒没有生病,只是最近感觉腰和颈椎一直不太舒服,加上睡眠质量一直不好,但是一直没空去医院检查一下身体。平时因为下班到家也很晚了,还要学习新技术,因此也没什么锻炼的时间。
人生没有重来。如果再给我一次选择的机会,我还是会义无反顾地进入互联网公司,因为这是我喜欢的节奏。一时的失去只是为了更美好的将来。往者不可谏,来者犹可追。