最近一直想写篇文章,回顾一下自己过去快两年的工作、做一下相应的复盘,也想记录一下自己最近的一些简单想法和遇到的迷茫,今天终于抽出了时间可以开始下笔了,但却不知道从何处开始,这里姑且从实习入职的那天开始回忆。
实习期
2016.7.1 是来美团实习的第一天,当时是跟实验室的一个同学一起来实习(她入职的是金融部门,我是基础平台部门,后来校招她去了银行,美团这边我们实验室就剩我跟上一届的一个师兄)。那天入职的同学被安排到一间大会议室里,等着老大过来领人,当时是跟团队的另外两个小伙伴一起入职的现在这个小组。还记得入职第一天还在查怎么切换中文输入法时,就被 mentor 催着在大组群里做一个简单的自我介绍,当时自己真的是没什么经验,现在还能在群里搜到自己当时的介绍,原话是这样:大家好,我是新来的实习生,目前在北邮读研二,大家可以叫老王,小王或者阿蒙[呲牙]
,唉,现在回头再看感觉好囧,都想找个地洞钻进去。
实习那段时间,工作还是很愉快的,没有太大的工作压力,当时组内的任务也不是很重,组内基本上晚上7点多就没什么人了(现在人翻了快两倍,9点的时候还有一半人没走,对比明显)。记得应该是在八九月份,组内开始组织每周一次的羽毛球活动,自己之前在实验室也经常打,但是实验室打球的人太多,一个场每次都是10个人左右,每次活动基本上打不了几次,没有在公司这边打得爽。当时刚好也遇到几个特别喜欢打球的同事,大家周末也没什么事,所以周末也就经常约着一起打球(这个也是后来我们那个学习小组的前身和起源)。现在还依稀记得,有次打完球跟一位同事(也是我邮校友)一起坐地铁回去,他在地铁上跟我说,他年后准备回杭州了,当时的自己有一些吃惊但是并没有太多其他感觉(跟后来再面对其他同事的离职感觉完全不一样)。那时的自己还在实习,还没有经历硕士的毕业季,对工作中的很多事情还不是很敏感,完全还是学生的心态。现在回想起来,真很怀念当时的学生时代,那时不用去考虑太多的事情,每天跟一群小伙伴们一起吃饭、一起学习、一起玩、晚上一起瞎扯淡,这种时光再也不会有了。
工作的前两年
2017 年完成毕业旅行之后,虽然学校很忙(毕业季的事情很多),但如果没什么事还是尽量坚持去公司实习。春节后,来到公司的第一天发现团队离职了好几位同事,有两位之前是确认会离职的,而另外两位,完全没有猜到的,当时还在毕业旅行,也没有赶上散伙饭。随着时间往后走,再后来,3月30号拿到毕业证,3月31号就正式入职的了,开始的自己心态还没有完全转变,直到开始接触运维开始。之前实习的时候,运维的事情一直没有接触,mentor 也一直在跟我说,先多深入了解学习 Kafka 系统内部的事情、业务方面的东西上手会很快,暂时不用这么急,当时真是幸福啊,完全不用管运维的事情,每天可以有很多时间去看源码实现(现在回想起来,当时真的浪费太多的时间,从那个时间起就应该好好参与社区的)。正式入职之后,4月开始接触点评侧自研的分布式消息队列的运维,那是黑暗时刻的开始,好在在7月底完全完成了迁移,不用再去维护这套引擎了。接着从8月开始接触 Kafka 的运维工作,然后又是将近一年的黑暗时间,特别是17年下半年,那段时间真的很艰难,上下游经常在反馈 Kafka 的各种问题,每个周末基本都是在家时刻准备着运维,Kafka 这边也确实有很多地方需要改进,那段时间是比较痛苦的一段时间,特别是 zk 出了一次问题之后,当时的自己每天都在担心 zk 的故障问题(唉,责任心太强也不好。。。),好在后面上了一些容灾机制,现在相对来说已经稳定很多了。
转眼间,来到 2018 年,2018的上半年还是挺忙的,赶在6月底前终于把 safe-mode 这块的内容全部上线了(期间也非常感谢同事的支持),Kafka 也暂时进入了相对来说稳定的状态,2018下半年相对来说,比17年下半年好过很多,随着团队规模的壮大,运维的事情由大家轮流值班处理,相比于之前,时间节省了很多。17年下半年到18年上半年真的是很煎熬的一年,经常被上下游怼、吐槽,好在撑过了最艰难的这段时间。
工作中的一些迷茫
焦虑
工作前两年的时间里,经历了好几次迷茫阶段,好在遇到了几位玩得比较好的同事,我们周末经常约,最开始时,我们只是经常周末约着一起打球,后来开始组织周末的技术分享,每两周一次,每次是一个人去分享,分享完之后再去打球,这期间经常在一起瞎扯,大家会分享自己在工作和生活中遇到的一些困惑、迷茫以及经验,在跟他们的交流中,也让自己开始对其他的东西有了一些新的认识。之前的时候只是想着把工作、把事情做好,并没有时间去思考其他的事情,这样并不是好,有时候会让你感觉到:每天很忙碌,但是仔细想想好像也没干什么事,获得的成长并不是很大。关于这点,我认为下面这个方法是挺好的:我们应该经常反思和复盘,比如按季度或按半年,及时做一些调整,而不只是埋头工作,两耳不闻其他事,每隔一段时间一定要抽出时间让自己去思考和复盘。
最近,我也跟很多人交流,发现大家都在焦虑,即使有些人的工作前景在别人看来是非常不错的,但还是都有各自的烦恼和焦虑。关于焦虑,前段时间,也看到耗子叔在微博上提到了,微博的原文如下
焦虑是对未来的担心,恐惧是对当前的害怕。人的焦虑是来源于自己对自己有更高的定位,来自对未来的不安全感。其实,适合的焦虑感是我们进步努力的源动力,但是大多数人的问题在于几点:
一是目标订的太高,
二是不知道怎么去,
三是知道怎么去但又不想付出太多……
所以,人就开始更加迷茫更加焦虑了…… (来自左耳朵耗子的微博)
焦虑是对未来的担心,我们的焦虑也来自于自己对自己有更高的定位和要求,我也相信一定的焦虑感是有好处的,但是千万不要过量的焦虑,过量的焦虑会给自己带来较大的压力,反而影响自己的心态。就像上面耗子叔所说的,大多数人的问题无非就是这几点:
- 关于第一点 —— 目标这个问题,进入工作之后,相信大部分人会对自己有个更清晰的认识,订的目标不会那么遥遥不可及;
- 关于第二点 —— 怎么去做这个问题,有可能是不知道怎么去做、也可能是有多个途径但不知道哪种更加适合自己,这个比较好的方式就是向有经验的人请教和学习,自己再去实践;
- 感觉最难就是第三点,知道了怎么去,即使这种方式不一定效率高,但至少知道方法了,但由于缺少自律和毅力导致没有达到预期的效果。
对于我本人,前面第二和第三点都比较适合自己,有些东西不知道怎么去做,有些东西知道怎么去但却没有去做(或者是没有坚持下来),这些都是需要反思和改进的地方。
恐惧
正如前面说的一样,恐惧是对当前的害怕。我一向认为工作前几年的时间特别重要,因为这几年时间是精力比较旺盛的几年,而且是可以把时间大量投入到工作的几年,所以在这几年里我个人对成长比较关注,成长既包括技术上的成长、也包括业务上的成长,在前期的话,我会更关注技术上的成长,自己之前的一些迷茫也跟这个相关,这些迷茫经历过了好几个阶段,具体的我现在也记不清了。最开始的时候只是感觉自己技术的成长太慢或者很少、不是很想天天去做业务相关的事情;后来又感觉自己的时间每天被运维、客服、前端开发所占据着,这并不是自己期望的状态,如果一直这样下去,自己未来的发展在哪呢?可能再过一年两年,成长依然不符合自己的预期。最担心莫过于 一年之后,发现自己跟年前相比,并没有什么进步,这也是自己在工作第二年结束的时候决定出去看看机会的原因。
这里,串插一点其他的东西,也是自己在耗子叔微博上看到的,是讲关于处理困难或复杂事情时大部分人的做法,这些做法无外乎以下四种,很明显第四种是我们期望的,但实际上呢?这个需要我们自己去反思和复盘。
当一个事困难或是复杂到一定程度时,一般会出现四种人:
1)找各种借口理由逃避放弃,
2)得过且过敷衍应付,
3)咬牙努力使蛮力,
4)思考总结找方法…… (来自左耳朵耗子的微博)
什么核心竞争力?
对于工程师或者是一名在市场经济中的工作人员来说,到底什么是核心竞争力呢?这个问题,别人在17年的时候就问过我,但是当时我并没有想清楚,记得当时应该还是更多的关注在技术技能上,觉得把JAVA、Linux、操作系统等包括自己重点深入的这个分布式系统搞得很熟就自然而然让你拥有了核心竞争力,但是到后来随着在公司内部对业务的熟悉,也开始慢慢感受到业务、技术以及管理(团队、项目)、沟通、合作等能力的重要性。对于公司而言,他们希望招聘的是什么人呢?当然能解决他们遇到问题的人。我们经常看到随着一些创业公司上市,一些早期员工基本财富自由,但其实我们还忽略另一类人,他们不一定是早期员工,但股票并不一定少,这类人有一个共同的特点,那就是他们是在公司最需要的时候加入的,公司在遇到某方面问题时,他们碰巧是能解决问题的比较合适的人选,so 他们在公司价值非常大,至少在当时是这样的,因此拿到的股票也不会比早期员工少多少。扯的有点远了,对于这些人,他们的核心竞争力是什么呢?简单来说,就是能解决公司当前的困境、或者是遇到的问题。其实可以这样抽象的说,一个人的核心竞争力就是解决问题的能力,我是比较认同这个观点,但是什么是解决问题的能力呢?技术能力算,因为很多问题是可以用技术解决的;合作能力算,因为有一些问题,非一个人可以为之,这时候为了解决问题,合作能力显得就比较重要;同样,沟通能力也算,很多合作的项目是需要跨团队沟通的。
当然,如果只是抽象的说 核心竞争力就是解决问题的能力,这个确实有些抽象,并不具体,对于互联网公司的技术员工来说,技术是为业务而服务,当技术上有问题,就去解决技术的问题,但终究我们是要为了业务服务,大部分情况下,业务对技术的需求是技术发展的很大动力,业务对技术要求的高低也决定了公司对技术投入(对于业务发展非常好的公司、或者是有稳定现金流的公司,他们也会在基础技术投入研究投入很多,一个是为了能在技术浪潮中及时把握住机会,另一个也是为了探索更多的可能性)。所以,对于大部分公司而言,其实他们并没有动力在技术上大规模投入,他们只是关注满足业务发展即可,这也是一些to B创业公司成立的原因,他们在原有公司很难把这块技术做得更好,主要是时间上可能不允许,而他们成立了自己的公司之后,就可以更好地专注于这项技术,让这项技术发挥更大的价值。
关于核心竞争力这个问题,跟很多人聊过,这里列出几个朋友给的他们自己的理解,为了避免误解他们的意思,这里直接引用了他们的原话,希望不要介意~
技术扎实通用能力强,灵活变通能力强,沟通合作能力强;就是拿到哪里都能被别人抢着要,都能解决问题,都能干活或指导别人干活 。
最近一直在想一个问题,什么才是最核心竞争力?真正能留下来的是什么?我不认为title是,最近有点感觉,觉得是真正的对技术的信仰,真正骨子里相信技术是能解决一切问题的。在基本技能这边我比较倾向于 netty,类加载机制,maven. akka啊,jmap. jprofile,火焰图这些常用的 debug工具。其实能静下心来把这些搞明白,应用到实践中,软技能应该差不多。
我觉得核心竞争就是能解决问题。对技术来说能解决问题的就是好技术,只不过有些及时是演化的比较慢的,这些学好后可以用的时间更久,其他的演化的更快,对人的要求更高,需要不停的跟上演化速度。当然解决问题要求的不仅只有技术,还有很多其他的,最极端的有自己不懂技术,能把一帮人组织起来一起做一件事情也是很厉害。
业务与技术成长
关于业务和技术成长这部分,前面其实也讲了一些,有了这两年的工作经验,我是比较赞成以下几个观点的:
- 要体现自己的业务价值;
- 技术是为业务服务的,如果技术做得比较好,同样技术也可以反哺业务,带来更多的业务价值;
- 经济价值是评价技术的唯一标准,好的技术、有前景的技术终究是要带来业务价值、经济价值的;
- 自我学习时,最好是能把学习到的相关内容应用在工作中,解决相应的问题,而不是只是学习一下,在使用中学习效率更高。
简单来说,技术是用来解决业务中遇到的问题,提高业务的生产力。那么在这个过程中,技术扮演什么角色呢?它可能是一种比较好的解决方案,甚至是在某些场景下通用的解决方案,比如大数据的各种系统框架,这点需要有一个清晰的认识(下面是跟老大交流时,老大的看法):
关于『解决业务问题』和『技术积累』的问题,个人觉得没有矛盾。架构师的核心职责是用好的技术方案解决业务问题。在问题解决以后,要思考、总结、产出。
再聊技术成长,如何在解决问题中、做好本职工作的同时,做好技术成长呢?也跟一些人做过简单的交流,总结了以下几点,与大家共勉:
- 深入探究,发现业务的问题,然后从根本上 one by one 解决这些问题,能从底层解决就从底层解决,尽量不要 work around,如果解决方案能回馈到业内(社区),就更好不过了;
- 遇到问题,要有打破砂锅问到底的精神,对于自己简历或者博客上的内容,做到怎么问都问不倒,这个是成功的第一步;
- 这一点跟第二点类似,对于系统学习的一些知识点,要有深入理解,学习过程中要不断地 challenge youself、不断地举一反三给自己提问题,最好能把内容再跟别人讲一遍,并解决别人的疑惑,如果有机会在应用中去实现,这样走一下,这个知识点肯定会被彻底消灭掉。
关于这小节以一位大佬的话作为总结:其实不管在哪儿做什么,技术上的东西只要一直深究下去,都能做的很深入。自己的积累和成长是最重要的,所谓水到渠成,共勉
。
这里算是关于技术成长和积累的一些复盘,上面都是跟大佬的交流,大佬给的一些建议,与大家共勉。
如何选择
这篇文章断断续续写了好几次,终究还是没有写完,本来都打算放弃了,但是今天凌晨3点多醒了之后,脑袋却越发清醒,想了很多的事情,实在无法入眠,便决定起来把自己想的一些事情写一下,至于为什么写在【如何选择】这个地方,因为这几天没有睡好,都是因为这个原因,有些事情需要自己做出选择,而且基本到了必须做出决定的时间,之前的时候说实话自己是有些在逃避这个问题,所以自己也在选择之间摇摆不定,让自己变得越发纠结。
我个人的观点一向认为选择很重要,甚至有时候比努力还要重要,选择其实并没有对错,但多少还是有好与不好之分,当你做出选择之后,谁也不知道另一个选择最后的结果会是怎样、是否会更好(这个好与不好也很难评价,有世俗的标准,也有其他的标准)。那么到底该怎么做出选择呢?有什么选择的原则呢?当你去问别人时,别人很多情况下会跟你说:问问你自己想要什么,那自己到底想要什么呢?感觉自己并不是很清楚,只是有一个短期的目标,那就是希望在工作前五年的时间里,能在分布式系统方向做出一些成绩(这里把这些隐去了,不想那么早地立 flag,等三年后真的做到就在这里公开出来)。
这是自己工作前五年的目标,那么五年之后呢?我也没有想清楚,具体是去转向业务还是别的?我没有想那么多,暂时也不需要去想那么远,短期还是着眼于现在、做好眼前的事情、把握当下。
回到前面的话题〔如何选择〕,先说下当前自己的情况,自己从18年11月开始出去看了一些机会,但是今年的经济形势不好,对行业影响还是很大的(比如阿里中台部门的hc基本锁了,特别是低P的招聘),而自己并不想去小公司,大概聊了三家公司(并不想去小公司,所以只面了大厂),最后拿到了两个offer,一个是头条,一个是蚂蚁,面的岗位都是实时计算引擎,再说下自己面对的选择:
上面这两个表格(表格的内容比较敏感,这里就隐藏了,暂时不会对外公开了)就是自己需要选择的地方,也是自己比较纠结的地方,这一步要如何去迈?
未来是什么样的,我也不知道,希望自己勿忘初心,愿一切都好~
注:断断续续写了好几次,前后有一两个月,暂时先告一段落。