注册博客园后,我原本打算每一份工作经历都记录下来。但是,这份工作已经换了半年了,好几次想要写,又不知道该怎么写。太多的负能量。我始终相信,情绪是会传染的。我基本决定放弃写这篇文章了。就让时间去淡化经历的一切。
但是,世事就是这么起起伏伏,想要淡化而且以为已经淡化的东西在不经意间又浮出脑海。昨天下午,和同事吃完饭到公司楼下散步时,又聊起了之前那家公司的一些事。聊着聊着,已经熄灭的火种又燃了起来。今晨,4点就醒来了,之前的一幕幕就像一个脓包被掐破脓水喷涌而出一样。一直到天亮,再也没睡着。我就知道,一切都没有这么简单。那还是来说说这些经历吧。但其实现在才来写,有些尴尬,这次换工作只面试了两家离住所近的公司,而且细节都已经忘了。所以,这篇没什么面试总结。只是闲聊一下工作上遇到的一些事。
2017年8月,我去面试了这家公司并当时就拿到offer(当然,后来我发现其实这公司招人的时候很随意,在试用期觉得人家不行再把人家开掉),压了一些工资。那时,我已经毕业两年。头两年做的是休闲小单机,技术简单单一,没什么经验积累。基本都靠自己自学摸索。这不多提了。我面试的时候也把情况跟主程明说了。
面试的这个主程和我说:“我们的主程是个女的,你要是欺负她,立马让你走,都不带交接。”入职后,看公司的组织架构才知道,只有他自己就是主程,其他那些“主程”,都是普通程序员,听说是他自己“安排”的“主程”。为了区分,后面,对他指的那些“主程”我都加上引号。没有别的意思。
我当时还有另一份offer,是做棋牌的,那老大比较喜欢我,比这家高开了15%的工资(不是出国的那种,哈哈)。但我当时还是很坚定的选择了这家公司。因为主程说:“我们有大IP,做大项目,有牛逼制作人,而且是两个!项目刚刚开始,做的是MMOARPG。”我当时想法很单纯,就想要有个完整的大项目经验。
入职后,给我分配的第一个任务:背包系统(包裹、仓库、临时包裹,就是梦幻西游那一套背包系统)。当时还是很自信的,预估了一个星期的工作量。事实证明,我这是作死啊!!系统的复杂度超出我的预判,加上对项目框架不熟悉,对lua不熟悉,对NGUI(unity的开源ui插件)不熟悉,不懂得前后端协调开发,一个星期只折腾出了一个雏形。然后,主程给我延期了一个星期。这里不得不提的是,当时我犯了一个严重失误。当时后端把背包系统的协议结构定得层级很深,大概有5,6层吧,而我没有封装一个自己的中间层,直接使用了解析后的protobuf结构。 然后,开发着开发着,后端说之前定的结构有些不合理的地方,要改。我当时没有意识到事态的严重性,直接同意了。他改他的,我继续做我的功能。当他改完了,我改的时候才发现问题大了。由于没有定中间层,引用protobuf的字段满天飞!增删改查全要改一遍。不能找引用,全局搜一堆同名。中间甚至有xxx.equip.equip.xxx 这种东西,真心懵到头大。对于刚刚接触lua这种ide支持不高的弱类型语言的菜鸡程序员来说,其中的心酸真的是说不清道不明。于是,有一次早上开会的时候我就提出这个问题,我觉得背包协议定太多层,太复杂了,维护和修改起来不方便。我在会议中说明了疑惑和困难。主程觉得看着项目来说比较清楚。开完会后,做背包系统的后端、后端“主程”、前端女“主程”、前端系统组长、主程围在我身后,为我“排忧解难”。我说完之后,后端“主程”也觉得不太妥,太多层次了,一般两三层比较好,让再优化优化。但主程说,他觉得没问题,如果是他,他也这么设计!我瞬间觉得自己真的很菜,无话可说。那好吧。继续干活。后面几乎每天都会来问进度。后面女“主程”发现了我直接使用协议数据,告诉我要写一个类把proto封装起来,并写了一个模板给我,她还标上了自己的名字。为了不被后端“玩弄于股掌”,我立马按她的思路把后端传过来的数据加一层封装,这样,无论他怎么改,我都只要改封装层就好了。大概半个月,才把背包搞定。主程找我谈话。他问:“你还想不想干?”我也挺心灰意冷的了,心态都崩了,我想估计凉了。我说:“无所谓。”他说:“你这么回答太让我失望了!你王者都上星耀了,你应该是一个不服输的人才对!”
这里插入一点小插曲,后面主程在我那看代码,发现了上面所说的数据类(对proto message的一层包装)。因为把一些解析数据的代码写在了数据类(我觉得没什么毛病,逻辑紧凑,易于理解),主程看到后脸立刻黑了起来:“这什么垃圾代码,赶快删了,我看得都恶心!”我“机智”地把代码滚到开头,上面标注的是女“主程”的名字。而女“主程”就站在我旁边。这就尴尬了。主程很机智,立马说:“没事啊,谁都会犯错,回头把它改了,不要这么做”。事后想想,我当时做法是挺贱的,有点无耻。虽然由于女“主程”脾气问题以及与主程关系“亲密”,公司很多人对她意见很大。但是,有一不说二,刚去公司那会,她对我的帮助是很大了。是我应该感谢的一个人。
后面,熟悉了框架怎么玩,对lua、NGUI也熟练运用了。做东西比较快了,预估时间的时候也给自己多留了一些弹性。很多次,开会的时候主程都表扬我,说我进步很快,表现很好,让大家鼓掌。我当时挺高兴的。
我内推了一位之前的同事(公司声称内推是有奖的,但一直没收到所谓的奖励。后面人事告诉我,我内推他的时候,这个政策还没出台。尴尬),这同事没做多久就离职回家做生意了。他离职的时候,主程找他聊,说:“很看好你,你留下来,很快事情多了让你去做核心的部分。那个Xxx (也就是我啦^_^) 基础太差了,连protobuf都不会!最后才考虑他。”这已经是2018年了,半年多都过去了,还揪着背包协议不放。因为协议问题认定我永远是个菜逼,哈哈。如果这位同事和我转述的时候,误差不太大的话。那我真就要问问:这样两面三刀有意思吗?一边开会夸我,一边背后损我。还是明知那同事和我关系好的情况下。这比当面批评我还难以释怀啊。当然,我也没办法啊。我想要一个完整项目经验啊!忍着嘛。努力提升自己才是王道。
2018年底,入职一年多了,从来没调过薪,项目也没上线。走又不甘心,留又没盼头。就主动找主程请求加薪。他很爽快,直接就答应了我。还跟我说了一番话,大概意思:“我觉得你加薪是应该的,没加薪这是公司的不对,我觉得很对不起你。”第二天, 他就找到我,说加薪的事没问题了,流程已经走上去了。还说如果不相信的话,可以给我看申请流程。我当然说不用了。但过一段时间,他跟我说:“我尽力了,全部流程都走完了,就卡在老板那里了。我希望你能坚持下去,但我对不起你,你要是因为这离职,我都不好意思留你(这里是他后面说他之前是这么说的,但我当时的印象是:你走我都不留你。但愿我真的是听错了吧)。”那般境地,相信也好,不相信也罢。不管我有没有那想法,但我从来没说过“不加工资我就不做了”。都这么说了,我真不想干了。但又不好立即辞职,那时我老婆快生了,又临近过年了,我决定过完年休完陪产假就走。但年还没过,又经历了两件事。
其一,那个时候,项目弄了一套测试用例代码,用来测试服务器抗压能力的。要求下班后大家开启测试。有一次,我选错了一个ip地址,直接在大群里怼我,把他之前发的规则截图发到大群。公开点名批评道:这说得还不够清楚吗?!但后面,又有两同事犯错了同样的错,当什么事都没发生。
其二,打包到手机后,有一个界面上模型加载比较慢,主程叫我过去。问我怎么回事。我说,界面上东西比较多,在ui上显示模型比较耗,我加了延时,但在电脑上看没有延迟这么多。会不会是因为手机卡掉帧使计时器误差太大。他说不可能。我说update在卡顿的时候可能时间间隔会大一些(我看过计时器代码,就是用update写的)。他说不可能。我说,那我不知道了。他就发火了:“你这是扯蛋!一点都不负责任!”然后我顿了一两秒,转头就走了。过了大概半小时,他又找我过去。他说:“你这是情商问题,这是你的功能问题,你不能说不知道,如果是XXX(我们的组长)遇到这种情况的话,他一定会说:‘那我回去研究一下。’”第二天,有位女程序做的技能有问题,主程找过去,我清楚的听到那女程序说了:“这我不知道哦~balabala~” 但什么事都没发生。我之所以说明是女程序,有的时候,确实女的在这方面会有优势一些。我还和同事调侃,真是男女有别啊。
第二天,我越想越不爽。实在忍不住了,反正都不想干了。我就qq跟他说:“我觉得因为加工资的事,你在针对我!”然后把上面几事陈述了一下。他解释说:“是你想太多了。第一、我确实觉得很对不起你,我说了我希望你留下来,这是前提。我的原话应该是:我希望你能坚持下去,但我对不起你,你要是因为这离职,我都不好意思留你。第二、我已经严厉批评了那两位同事,可以给你看记录。(确实有记录,叫他/她们注意一下,在他们几个人拉的小群里)。第三、我是这样的脾气,说话比较直。你说XXX(上面提到说“我不知道哦~”的女同事),也说了“不知道”,她是团队的核心,为了团队做了很多贡献,我不可能因为这点小事责备她。”他还顺便把他怎么上位的事和我说了,叫我要努力。他说:“我们都是平常人,也不聪明,那怎么让老板发现自己呢?那就只能卖力。我那个时候,在北京xx环,上下班都要花两个多小时,但我做得比你好,我每天12点才下班,周末都待公司。有几次,老板周末去公司处理事情,都看到我在那。刚开始老板并不认识我,但有一次老板过去和我聊天,问我叫什么名字。一来二去,老板就认识我了。后面我们主程离职了,老板就让我做主程了。经过努力,我现在在北京买了一套房子。”我说:“工作不就是为了生活吗?生活都不要了,工作还有什么意义?”后来还聊了挺久,灌了挺多鸡汤。
到了2019年2月份。我休了整整一个月,过年放假,年假,还有陪产假。在我休假期间,大概还有一个多星期假的时候。组长微信找我,问我什么时候上班。我告诉他3月1号。他说了一句,组织需要你。我回了一句,好的。后面他告诉我,其实是主程想要我提前回去上班。当然,我没有提前去。过了几天,主程微信找我,说工资的事定了,加了。我回:谢谢[抱拳]。他回:[微笑]。
我休完假回去,想着都加工资了,反正项目快上线了,再撑几个月吧。但后面,同事把我拉到了一个群,他们都在群里吐槽那女“主程”和主程,大家对两位各种不满。每天都充斥着各种负面能量。算了,我还是边找工作吧。这期间,我去面试了一家。觉得没离职请假好麻烦,不好直说请假去面试,还要编个理由。拖到了4月中下旬,我直接裸辞了。拖了一个多星期,4月底离职了。离职前,我拿到了现在这家公司的Offer。过完五一入职。
这公司有一些不错的地方。下午4点半可以休息半小时。这比较少见。加班有调休,早上可以弹性上班。大部分时间都是10点上班,稍微避开地铁高峰。
唉,说来说去。能坚持那么久,还不是因为得了一种病——穷。
先来说说现在吧。
这次面试了两家公司。第一家,还在职的时候面的。做街机游戏的,朝九晚六,大小周。当时,他们应该是还没有主程,技术面没什么好说的。好像就问了我什么是drawcall。还有一些其它零零散散的,都记不得了。第二家就是现在上班这家。做了笔试,考的是Lua基础,c#基础,还有算法题。有没有考渲染相关的我忘了,实在记不太清了。面试的话,我说我上份工作做ui系统比较多,就问了ui怎么管理,还问了一些AssetBundle相关的问题。问会不会shader,我直接说不会,我说我们公司有专门的TA。事实上,现在这家也有,而且有一个TA组专门负责渲染相关的工作。
然后说说为什么我会选择现在这家公司。我选择面试的公司都尽量选一些离我住址比较近的。因为拉家带口的,换住址很麻烦。面试的两家公司都离家比较近,第一家给的工资有点低了,没考虑了。入职前,也有听到很多这家公司的负面消息,由于离家近,虽然是996,但工资比第一家面试的公司高了百分之三、四十。所以还是选择了这家。公司有健身房,不忙的时候,可以8点左右去健身房,健个身。也挺好的。不过项目拖得比较久了,维护的人多了,代码比较乱是真的。我维护过英雄系统,界面上各种表格数据的获取、处理,一大串。同一段数据处理逻辑,在几个子界面出现。英雄列表的数据被几个界面重新赋值。这风险太高了。数据异常了,很难定位哪里造成的。就技术成员而言,主程脾气很好,很和善。氛围还是比较好的。上班了半年多,也就一些正常工作上的事。似乎没太多要说的。老板对游戏方向把控得很死,主策的想法得不到发挥一般都待不太长久。所以事情安排不会太紧。平常比较多空闲时间。隔两天晚上可以健个身。白天可以学习一些东西。
最后,比较一下两家公司,上家公司用A表示,现在这家用B表示。工作时间,AB都是996,时间上有些许差别,大体一样,大小周,周六晚上不用上班。项目方面,A代码要求比较规范统一。维护人家的代码的时候,易于理解,成本比较低。美术资源有专人管理,比较规范。美术效果图做得很好,很友善。图片尺寸,存放位置,名称;字体,字号,字色等都标得很清晰。B公司代码管理过于宽松,有规范文档,但代码基本都是实现功能就好,代码结构,命名都比较混乱。
总结:
1、面试不要先入为主表明自己的不足方面,这容易让人给你贴上标签。标上容易摘下难。当然,不好采被问到,那就能说就说,不能说就说不会。答非所问也很尴尬。
2、做什么功能都好,“不要相信”后端,自己封一层。从数据的清晰角度也好,可维护性角度也好,都应该这么做。
3、不要直接在界面上处理数据(包括不要在界面上获取表格数据,也不要直接界面上修改module里面数据值),无论何时,修改同一份数据,都应该用统一的入口。严格尊守MVC模式。
4、虽然,很多招聘上都会要求完整项目经验。不要太执著于这个。面试的时候问这个的,我好像没遇到。可能到了高级或者主程阶段会要求?
5、频繁跳槽,每个团队用的框架都可能不一样,熟悉框架需要时间,进去都从杂活做起。对于自已的提升并不太好.沉下心来,好好积累。当然,确实不爽,赶紧跳槽吧,不要浪费时间。自己把握吧~