云上岗一月见闻
从上家公司正式请辞到现在在新公司已经上班四周,我还一个同事都没见着,新办公室长啥样也不知道,对于从来不考虑远程工作的我来讲,大概是绝无仅有的体验了吧。
在此之前我真的太傻太天真,太小看云上岗了尤其是码农云上岗——我真的没想到,老司机远程躺平了继续刷存在感,和萌新远程加入新团队学习新业务,完全!不是!同一回事!!!
入职四周以来,工作的技术和业务上目前还在一个半懂不懂的状态(基本上能独立搞定工单,开会能听懂六七成但是说不出东西来),也一度被不会干活带来的挫败感折磨到抑郁(其实到现在还没完全走出来),但是对于如何把脸皮练厚,啊不,如何提高主观能动性,积累了很多心得。同时我也反思了不少以前自己当老人带萌新的时候有哪些地方做得不好的,这里记下来为了下次当老人而做准备😂以下先总结一下新人体验中云上岗的的利弊吧
Pros and Cons
Pros: 没想出来
Cons: 太多了,根据我发现的时间顺序一个个排吧
- 技术宅们太爱自言自语了,在不了解背景的情况下你不知道电话那头的人是在给你讲代码还是在给他自己讲,导致你不知道要不要回。Oh no,好像我也很爱自言自语啊,怎么办,听过我讲training的贵司小伙伴们我对不起你们……
- 和大佬video chat不知道该不该开摄像头,可能大多人都像我一样觉得主动开摄像头是礼貌,但是大概大多技术宅自己都不想开摄像机的吧,我先开了反而会给对方造成压力……(教训:先不要开,等对方先开,对方开了你马上开)
- 除非是像我前东家那样有一套标准化的新人欢迎流程,新同事们如果性格偏内向的话,有着充分的理由假装没注意到你。(同样,曾经我当老司机的时候也干过“假装没注意到新同事”这种事,真的就是因为害羞不知道说什么怕尴尬,一定要有第三个人把新同学拉到我跟前来带话题我才会觉得比较自然)
- 这个其实和3内容差不多——容易陷入,我害羞所以我主动等着你和我打招呼,但是你也害羞所以其实你也在等我主动和你打招呼,最后我们陷入了“很有默契的不理对方”的闭环😂
- 这是最主要的——IM问问题比直接找人问比直接问坐在旁边的人,要显得讨人嫌很多。毕竟坐在办公室我有个“这环境咋配不出来”这种很耗时的问题之前,你可以观察一下,掂量掂量你左右两边的人哪个更忙,要不要等上几分钟再问。同时,“你在我旁边所以你麻溜儿帮忙看看我电脑屏幕上这个报错你见没见过,没见过我自己问问Google”好像还挺自然的,但是明明已经复制到剪贴板了,不先在Google/wiki里搜一下非要变成十几条提示在同事电脑的右上角一条条弹出来,感觉就非常烦了。而我是那种坐在人身边尚且不好意思问前辈问题的人😂——当然,这点对于其他人来讲,可能可以促进新人想问就问然后变成pros……
- 到现在除了自己组的另外三个人,还有老大和PM,我还完全不知道其他人谁是谁,哪个大佬管哪块业务,组员们提到“啊这事儿得去找xx大佬”的时候我听着就是懵圈的……代码问题倒是可以靠git blame来定位人,但是没说过话的情况下也确实不太好意思开口
- 电脑坏了没法修算不?
上任Timeline
4.20,星期一
4.20周一入职的,头一个周五私人邮箱收到邀请,早上9点半和HR过公司policy以及填几个表,11点和IT部门setup电脑。因为入职前就知道第一天上午被排满了,所以对上岗第一天期望值还是挺高的——虽说不可能上来就写代码,但至少可以认识新同事给他们卖萌啊!
第一个会乏善可陈,第二个会比我想象中的烧脑很多很多,因为我和电话另一头的IT小哥都没有这台电脑的admin权限,很多设置都搞不定,第一次远程帮人配电脑的IT哥哥也很懵。更奇葩的是我这电脑不知道是运输过程中弄坏了还是怎么着,好像不接外接显示器的话随时会自动关机😂准备试试看这个帖子某条评论里的方法。因为远程修电脑这事儿确实很难,于是这位IT小哥免不了自言自语,而拿着电脑的萌新我也免不了自作多情,于是我得出了以上Cons(1)的结论。
等终于登录上自己的邮箱,发现里面躺着个下午的meeting invite要和隔壁组的大佬过代码(我直接汇报给的大佬休产假去了)。于是快到时间的时候我主动ping了大佬并准时接入了视频会议。这时候出现了Cons(2)的问题——我为表尊重率先开了摄像头,过了几秒钟吧对方也开了摄像头,于是视频里出现了一个蓬头垢面的人略不好意思地给我道歉说“对不起啊,我一个月没梳过头了……”
大佬非常nice,代码讲的很详细,整个开发流程也带我过了一遍,甚至直接接了一个ticket带着我做(因为我环境还没配齐所以最后就变成我看着他做了),代码写完提交后需要跑一些半个多小时的pipeline他还盯着pipeline结束了继续给我讲。下午两点讲到四点没讲完他要去开会了,于是第二天还专门抽了三个小时给我讲,我真的是感动到暴风哭泣。但是!这位大佬,像所有的技术宅一样,也,很喜欢,自言自语……但是!又一个但是!开始划重点!!!
因为毕竟不是我们组的,所以虽然对于公司主要的代码库的结构心里有点数了,讲了几个小时我还是完全不知道自己以后该干什么,甚至不知道他给我讲的这个代码我以后是不是真的会碰到……
快到四点了,大佬发现自己要去开会了,连忙在Slack上给我和我同组组员(视奸LinkedIn后发现是个长蛮帅的的波多黎各小哥哥)拉了个群聊,叮嘱我有啥问题就问这位小哥哥,以及叫小哥哥把我拉进自己组里的各种群聊之类的。等一下……所以这一天都快结束了我才进自己组的工作群吗?
好不容易被拉进群了,结果……半个小时都没人说话……所以这是什么鬼!?原来不是所有公司都像自由轮——
老大负责给全部门发邮件介绍新人–>几个同事塑料的回一句welcome onboard–>新人进小组群部门群–>群里其他人一票塑料的”Welcome!” 然后新人回一句”Thanks everyone looking forward to know you”
——这样有仪式感的吗!!!?想了想我刚毕业在C’ville实习入职的时候也没什么所谓的仪式感,但至少老板主动找我给我派任务来着(扔了Flask和Knockout.js的教程给我看……oh~也许早在我玩knockout的教程玩的不亦乐乎的那个下午~我靠npm install拼凑起来的职业生涯就已经注定~)
星期二到星期五
我一直以来都有个还不错的习惯,就是能查文档/看得懂的代码/Google,就绝对不问人。于是星期二,我根据周一隔壁组大佬和小哥哥给我发的几个链接,我顺藤摸瓜找到了整个组的confluence space。上午大佬给我讲完代码和开发流程以后,下午我就开始狂啃文档,一边啃一遍按照自己的理解总结自己想问的问题准备回头一次性问人。虽说文档啃的脑仁儿疼,但对于组里业务也算是有了自己的理解(现在想想,当时的理解很多都是错的😂还是直接看代码更能了解业务)。看到快下班的时候终于翻到了一个和代码有关系的文档,然后我发现……妈蛋!所以其实我们总共要维护五个repo对吗!为什么我只有两个!!!
离下班还有一个小时的时候,我把剩下三个repo也拷了下来,并试图配好环境看看能不能把代码跑起来。这时候才发现,我好像还少两个地方的权限啊……
周三,另外一个休假的组员大哥终于回来了,于是我终于被邀请参加组里的daily morning standup,也认识了组里另外两个人(一个好像个子比较高的码农大哥,另一个负责业务方面的Director大姐姐,在组里的角色相当于PO吧)。站会哦不坐会讨论了一下,决定下午让另外两个码农组员这两天好好给我再过一下自己组的代码。standup完了以后……又没人理我了。
经历了前两天被闲置(?)后,我又一次陷入了失望和自我怀疑,于是鼓起勇气和高个子大哥打了个招呼问他“下午什么时候聊聊合适“,马上对方热情的回应——哦,吉尼童鞋,我一直想找你来着,忙忘了!(而且一整周下来他不是唯一一个这么说的)
于是周三下午和周四主要就是在听人讲代码和自己看代码,其中还发现了不少技术债,让我的内心蠢蠢欲动——我是不是可以来了先靠还一波技术债来争取C位!?
抱着这个想法,我周五发了在新公司的第一个Merge Request(在pre-commit里面加上了linting和单元测),虽然因为某些原因到现在都还没有merge😂
同时,因为问了大姐姐一个业务方面的问题讨论了一会儿,我也直接和她约了一个第二天中午的会,聊了一个多小时业务,虽然没完全听懂但是收获了很多有用的学习资料,对于自己能主动往外迈步还是有点成就感的。
第二周
这一周过得还挺爽的,开始接各种bug tickets而且基本上都能独立找到解决方法(虽然可能别人用两个小时我用一天?不过我钓鱼时间长啊😂),虽然有时候会因为找不到“这货在哪儿定义的?”而有求于人。因为天天有一些比较actionable的事情做,所以心理上的包袱倒是少了很多。一般情况下工作上卡壳主要是因为配不出环境,而且组里的小伙伴也配不出来,于是主动接触了几个负责相关环境的同事们,觉得他们是发自真心很nice愿意帮我的!我觉得我当老人的时候对于其他组的新人好像做不到那么nice,就算表面上做到了心里应该也会吐槽“什么鬼啦你们自己组的大哥是怎么教的”😂而且不知道怎么做到的,成功摆脱了“不好意思麻烦别人”的心理压力。
不过有时候还是很担心自己问的问题太蠢……比如说有这么个event handleronSomeEvent = (evt) => {...},虽然我猜到应该是有个event名字叫’someEvent’会触发它,但在代码库中搜了半天,既找不到’someEvent’也找不到这个event handler在哪里被register的,加班找了半天找不到,第二天问同组小哥才发现——‘xxxEvent’本身是由第三方库发出来的(这点我本来也想过,但因为代码其他模块有无关event叫一样名字的),然后这个handler的绑定……addEventListener(eventName, obj["on" + eventName.capitalizeFirstLetter()])…
此时,我不知道我该觉得“代码这么写我全局搜索当然找不到”还是“这我都找不到我怎么这么弱鸡”……
第三第四周
可能是因为第二周过的比较让人放松警惕性,觉得大概从现在开始看得懂代码又对业务有了一定了解我就可以c位出道了!结果第三周过一半时被扔了几个新手村范围以外的ticket,于是我懵了……
当然和工作环境也分不开。我之前提到的那个电脑bug让我只能在自己之前设好的workstation上班,必须连着外接显示器。然而不知道是桌子高度还是椅子高度,我在那个位置上一会儿班,眼睛脑袋肩颈就都会非常难受,于是到了下午我整个人对于“上班”都是拒绝的。
然后就是接了几个方向不是很明显的ticket,类似于“你看这个report,从前几天开始这个数字突然就降低了,怎么回事”这样的,看得明白却不知道如何下手。可能是因为觉得“已经来了两个星期了不应该什么头绪都没有”,我竟然很自作多情的背上了偶像包袱(?),犯贱地自己跟自己死磕就是苟着不问同事(“不能让他们知道我这么蠢!要自己研究出来以后惊他们一讶从此c位出道!”)现在想想,这大概就是菜鸡的自尊吧……
让我感到自尊心非常受挫的还有一件我自己干的蠢事。另外有一个ticket,我头一天快下班时很快找出了代码哪里需要改,于是在第二天早上的组会说“我写好代码测一下今天就能把这个ticket做完”。结果当天测完以后发现,虽然我的思路没有问题,但是要达到那个ticket的acceptance criteria,还要修另一个我完全不知道怎么修的bug……那自己定的deadline流着泪也要自己赶,先是问了一下同组同事那个bug他有没有见过应该怎么修,结果同事大哥提出来的方法我试了也没用,但又给我一种错觉就是“这个bug应该我自己默默修了而不是给其他人开ticket”,加上我那可耻的与实力不符的自尊心,我愣是自己吭哧了大半天还是毫无头绪,试了各种方法结果全走到死路里了。因此那天下班后觉得自己特别失败,第二天standup提到那个ticket的时候心理压力也非常大。还好,在克服自己的偶像包袱后,同事表示……你提到的出bug的模块,负责的tech lead是谁谁谁(啊刚好是我当时的pair programming面试的面试官)于是找了这个tech lead以后……对方直接给自己组开了个ticket修了……
前两天重新读了一下我刚毕业开始在C’ville实习的时候写的总结,惊讶的发现其实那会儿的我虽说毫无社会经验但是对自我的了解居然挺成熟的——里面总结的经验,对于现在已然工龄五年的我,居然一点都没过时,反而还说中了我的很多优点和弱点。这到底是说明我刚毕业的时候够成熟,还是说明这么多年了其实我一点进步都没有😂
多方原因加起来,上周有好几天我觉得自己都抑郁了,甚至有点后悔自己为什么好好的老司机不当非要回炉重练当萌新……后来专门抽了半个小时和菜师傅聊了聊(真的,自己钻死胡同的时候真的需要靠和其他人聊天把自己拽出来),感觉有些想通了——I was too eager to impress, which was totally pointless. 偶像别说不背包袱了,光着屁股他也是偶像。不是偶像的人非要背偶像包袱,只能更加让自己像个铁憨憨。
经验教训之萌新卖萌
回想之前当老司机的经验,发现了个很有趣的事情——我自己当萌新总是想着“怎么让别人都觉得我很聪明,我聪明他们就会崇拜我,我笨他们就会嫌弃我”,然而回想一下我之前带萌新(或者给其他组的萌新解答问题)的心理过程,我发现自己从来没有judge过“这人是不是有点笨”,而更在乎“这人教不教的会”——黄蓉这种一教就会的固然让人眼前一亮,但是郭靖这种资质靠死记硬背填鸭式教学最后也是不愁成才的。就怕碰到杨康这种,懂点花拳绣腿就自己想法多得很,这山看着那山高,拜了一圈师父结果啥也没学成,最后丘处机欧阳锋梅超风没一个待见他的……(不过有他那样的爹好像也没必要到处拜师了)
那么从一个老司机的角度来讲,萌新应该怎么卖萌呢?这个话题我前段时间在一亩三分地上和人讨论了不少,加上我总结了自己做的好以及做过的不好的地方,无非就是要礼貌,要有眼力见儿,还有就是别像我这样太自以为牛逼最后啪啪打脸。有很多网友提到可以每周给上级发一个summary说明自己都做了什么,想法挺好的不过我还是厚不起脸皮来做这件事情,那我姑且认为每天和组员standup够用了……吧?(写到这里,我觉得我这两天有必要问问老大“新人来多久了会和老大进行review”这个问题从而把汇报工作这事儿提上日程)
那么总结一下,萌新卖萌合适姿态大概是
- 主动和人打招呼(对内向的人来讲很难)
- 碰到问题以后,可以花15-30分钟查google/内部文档至少看看能不能理解相关术语。当然查还是要查一下的,别说其他人会讨厌伸手党了,自己不会觉得工作没成就感很无聊么……
- 自己研究半个小时还研究不出来的问题别苟着不问人,该问就问,别觉得自己苟着就可以隐瞒自己智商很低的事实。我自己当老司机的时候其实还蛮喜欢给新同学解答问题的,谁不愿意借机拉拢新朋友呢哈哈哈哈
- 划重点,主动和老司机book meeting!!!
前三条算是常识吧,就算做不到心里也都有数,但是最后一条我觉得可能有很多人并不知道!比起新人犹犹豫豫不知道问题该不该问,老人做着自己的事情结果不停的被新人打断,直接安排整块时间沟通的效率无疑是最高的,但是对于规模不够大因此没有正经onboarding程序的公司/小组来讲,
经验教训之老司机装b
通过这次上岗,啊不,应该说是通过每次上岗,我都会深深的认识到,我其实真的是个比较内向的人。我知道认得我的人大概觉得很好笑,但是主动和不熟的人或者很久很久不联系的人说话,对我来讲真的需要鼓足全部勇气啊!我当老司机的时候连主动和新人说话都不敢,只有在被外向的人认领以后变熟了我才会放飞自我(
现在想想我以前当老司机的时候做的也不怎么样,带着过代码的时候喜欢自言自语这个就不说了,主要是每次来个新人我都总会担心“唐突”导致不敢主动打招呼啊!一定要全组一起开会了,在组里其他人都已经很熟的情况下,我才敢说一句“啊新同学来了大家自我介绍一下吧”试图表达一下我对新同学的欢迎😂然而在大家介绍完以后,我……还是没有勇气没事跑去找人私聊……我怎么那么怂啊!
我也一直觉得美国这种崇尚“外向”的文化挺有毒的。虽然扭扭捏捏的性格确实提高了交际成本,但是社恐们之所以社恐也不是自己的错啊,而且因为没有把能量放在社交上,所以一旦被外向的人认领,哦不对被大家理解以后,可以释放巨大能量的好嘛!
所以我觉得老司机们应该积极认领社恐新人啊!社恐老司机主动认领新人的交际成本,应该是比社恐新人主动找老司机的成本要小很多!
- 新人找老司机除了克服社恐以外还需要考虑“老司机现在有没有空理我”“我这个问题问的到不到点上”之类的问题,会更加加深自己的社恐。而老司机可以直接默认新人没事干,问问新人有没有各种权限能不能看到代码,或者甩几个文档过去让新人试试看把环境配好,就能把话题打开了!
- 新人就算克服了心理障碍主动找老人聊天,其实很可能也不知道该说什么。比如说“这个东西是什么”——新人都不知道有什么东西,怎么可能问老人要“这个东西”呢?还有各种库/文档/pipeline的权限,老人不主动问一下,新人哪知道自己需不需要有……(当然大公司应该这方面是有成熟的列表和流程的,这里只是针对我公司我们组这种两年才招一个新人的地方,连代码都因为只有两个人维护所以不关心可读性,何况文档呢……)
还有一点很重要的就是expectation management,我觉得老司机和新人在这点上能直接交流并达成一致还是很有用的。像我这样总是想着装逼的新人其实最关心的问题就是“其他人对于我有什么expectation”,来了多久可以开始写代码,再过多久以后可以完全独当一面等等。这些问题我现在都会直接问,但是刚毕业的娃娃们有时候心里会好奇这些却又不知道怎么问出来,所以能有老司机耐心解释清楚就最好了!不要说什么“你自己做到最好就可以不要关心其他人的看法”,说起来再轻松不过,但我觉得只有神才能真正做到不在乎人类的想法吧,凡是“不要想太多”“别人的看法和你有啥关系”在我看来都是站着说话不腰疼,只能拿来督促自己不能以此要求别人。当然如果我是这个老司机的话,大概会把onboarding所需要的时间说长一点点,把任务说难一点点,尽量减弱新人啥都不会所感受到的挫败感吧。