阿里巴巴灵犀互娱

收藏
游戏
1000-9999人
不需要融资
广州

20

在招职位

132

面试经验

0

真题试卷

查看官网
上传简历
此刻你想和大家分享什么
职位类型
全部
测试
最新
热门
        我仔细思考了一下灵犀互娱四面为啥挂,想到了一个非常有可能的原因。        四面是技术面,说是技术面但实际上问的全是开放性问题,比如你最近了解哪些国际进展(不限于技术),比如你对AI 的看法等等。按理说这些问题时很好回答的,但是我犯了一个致命的问题,我一直在谈老东家。        问到国际进展的时候,我说我了解到了字节国际电商的业务进展和今年的形式,然后面试官问你觉得国际电商业务转好的原因是什么,我又一直在谈周受资的牛逼和能力之强大。聊到AI的看法时,我也提到实习的时候字节这边也有很多AI结合创新的点子,等等。我提了太多太多的字节,在四面的时候,这是很致命的,给面试官一种你其实根本不想去他们那边,只关注字节的感觉。        这是我踩到最大的雷区。        以下还有几个我认为的雷区:        1.提前准备没做好        在实习的时候面钉钉,当时提前10分钟我才发现没有给我发邮件,想找hr或者面试官的邮箱和联系方式也找不到,最后只能等面试官打电话问我怎么没通过他的钉钉好友,我才知道要下载钉钉。那个时候以及迟到两分钟了,然后现场下钉钉,手机电脑扫码之类的,最后迟到十分钟才进去。虽然疯狂道歉,回答的也还行,但是泡了9天挂了。        2.突发状况影响面试体验        这个点就是,面试官可以有突发状况,但你不能有(扶额苦笑)。秋招面美团到店二面,首先是面试面着面着突然掉线,然后花了一点时间才上来;其次是会议室约的时间不够,写算法写到一半,后面的人来了,只好跟面试官说换个位置。最重要的,以上情况加上手撕没撕出来。。。挂了是我活该。       大家还遇到过什么奇葩原因挂你的,可以评论分享一下,避免再次踩雷!#牛客创作赏金赛##24届软开秋招面试经验大赏##如何判断面试是否凉了#
点赞 评论 收藏
分享
点赞 评论 收藏
分享
       本系列到第七期了,这一期和下一期都来看一下灵犀互娱二面遇到的一些问题。二面过程中的技术问题不多,但是个个都深入原理,而且由于灵犀互娱这边是游戏公司,所以涉及到很多渲染优化的知识点,因此能够学习到很多原理。       涉及到原理的部分我的理解比较有限,大家看的时候辩证的看哈。        今天我们就看一个问题吧。Q:浏览器渲染原理是怎么样的,gpu进程和渲染进程之间如何协调配合,如何通信?       在问这个问题之前,面试官问了一个大家都被问过的问题:url输入到渲染全流程。没错,整个渲染全流程大家基本都知道,但是想要回答后面的问题就需要更加细致的了解中间的一些概念(先来背一遍进程和线程的概念)。       (面试过程肯定不用说下面这么多,但是我觉得借此机会了解整个过程还是很重要的,知道全过程才能用自己的语言描述出来,并且也不怕面试官详细到某个点)       首先来回顾一下浏览器的多进程架构。浏览器的四个主要进程是主进程、第三方插件进程、GPU进程和渲染进程,其中主进程只有一个,负责浏览器界面显示与用户交互,负责各个页面的管理,创建和销毁其他进程等等;第三方插件进程有多个,每种类型的插件对应一个进程,仅当使用该插件时才创建;GPU进程最多一个,与其他进程隔离处理 GPU 任务,用于加速绘制;渲染进程(也就是我们常说的浏览器内核Webkit等)有多个,默认每个 Tab 页面都会产生一个渲染进程,互不影响,他的内部是多线程的,渲染页面、脚本执行之类的就靠他。       其中渲染进程有五个主要线程:1.GUI 渲染线程:负责渲染浏览器界面,解析 HTML,CSS,构建 DOM 树和 RenderObject 树,布局和绘制等。需要注意的是GUI 渲染线程与 JS 引擎线程是互斥的。2.JS 引擎线程:JS 引擎线程负责解析 Javascript 脚本,运行代码。JS 引擎一直等待着任务队列中任务的到来,然后加以处理,一个 Tab 页(renderer 进程)中无论什么时候都只有一个 JS 线程(单线程)在运行 JS 程序。3.事件触发线程:他不受JS引擎线程控制,主要用于控制事件(例如鼠标,键盘等事件),当该事件被触发时候,事件触发线程就会把该事件的处理函数添加进任务队列中,等待JS引擎线程空闲后执行。4.定时器触发线程:也就是setTimeout,setInterval所在的线程。浏览器的定时器并不是由JavaScript引擎计数的,因为JavaScript引擎是单线程的, 如果处于阻塞线程状态就会影响计时的准确,因此通过单独的线程来计时并触发定时器,计时完毕后,满足定时器的触发条件,则将定时器的处理函数添加进任务队列中,等待JS引擎线程空闲后执行。5.异步HTTP请求线程:当HttpRequest连接后,浏览器会新开的一个线程,当监控到readyState状态变更时,如果设置了该状态的回调函数,则将该状态的处理函数推进任务队列中,等待JS引擎线程空闲后执行。具体这些线程之间的关系从帖子中找了个图(图1)       然后我们看下渲染原理。浏览器接收到返回的html之后就会开始渲染流程,输入的 HTML 经过一些子阶段,最后输出像素。看看图2,有整个渲染过程。       这个过程涉及到渲染进程中的主线程,合成线程和光栅线程池。       主线程:1.浏览器接收到HTML后,主线程开始解析HTML并转为DOM结构,在这个过程中,如果遇到script标签会挂起渲染线程,让js线程进行解析,因此script标签会阻碍DOM的解析。2.DOM解析完成后会进行CSS解析,计算样式,在计算过程中需要遵守 CSS 的继承和层叠(层叠的规则不记得的回去抄书)两个规则,这个阶段会构建CSSOM树。3.有了DOM树和CSSOM树就要创造渲染树了,因为有了DOM和component style(每个元素对应的样式)之后还不足以绘制页面,需要知道每个元素的位置和几何属性,这个阶段叫做布局(Layout)。4.有了渲染树之后,由于CSS中有复杂的效果,以及各元素之间有z-index等层级关系,因此下一步是分层。对于这些场景为了页面展示的正确性,渲染引擎还会为特定的节点生成专用的图层,并生成一棵对应的图层树。5.有了渲染树,图层树之后,主线程会遍历这些树并确定一个绘制顺序,创建绘制记录。       合成线程:分块,光栅化,合成。上面主线程的步骤走完之后,会将信息提交给合成线程,合成线程中会走光栅化(栅格化)这个步骤。什么叫光栅?大家可以搜一下,就跟栅栏一样,很多很多狭小的缝隙,那么光栅化的过程其实就是把整个页面分割成很多很多小的块去处理。为什么要进行这个处理,就是因为页面很长的时候,用户只能看到视口内容,有些图层可能超过视口很多,一次性渲染整个图层未免有些浪费,因此合成线程会对图层进行分块处理。栅格化之后,每一块会送给光栅线程池中的一个线程。合成线程的最后一个过程就是合成,会创建合成帧通过 IPC 通信(进程通信)提交给浏览器进程。浏览器进程接收到指令后会将内容绘制在内存中并展示在屏幕上。       光栅线程:上面提到光栅线程要去处理每个块,这个阶段会和GPU进程进行通信协调,会光栅化每一个图块并存在GPU内存中。       至此,浏览器渲染的完整原理就完全结束了(里面还有很多细节,这里帖一个参考帖:https://segmentfault.com/a/1190000041840526#item-2-8)。到这里也基本可以回答“gpu进程和渲染进程之间如何协调配合”这个问题了,配合的阶段就在光栅化这一步骤。       最后就是主进程,GPU进程和渲染进程三者如何通信。浏览器进程收到用户请求,首先需要获取页面内容(譬如通过网络下载资源),随后将该任务通过 RendererHost 接口传递给渲染进程,渲染进程的 Renderer 接口收到消息,简单解释后,交给渲染线程,然后开始渲染。渲染线程接收请求,加载网页并渲染网页,这其中可能需要浏览器进程获取资源和需要 GPU 进程来帮助渲染,当然可能会有 JS 线程操作 DOM(这样可能会造成回流并重绘)。最后渲染进程将结果传递给浏览器主进程。浏览器进程接到结果并将结果绘制出来。       上面都提到了整个流程,那么从这个流程的角度去理解一下重绘和重排。当我们通过 js 或者 css 属性更新了元素的几何属性会触发重排,此时浏览器会触发图3中布局及以后的所有步骤;当我们通过 js 或者 css 更新元素的绘制属性而不改变几何外观的时候,浏览器会触发图3中绘制及以后的所有步骤。因此重绘的开销相比重排会小很多。       为什么我们为了避免重排和重绘而去采用 css3 的 transform 等属性呢?因为此时整个主线程的流程会被全部跳过,执行后续的流程,而后续的流程交给了在执行线程、光栅线程和 GPU 进程上执行没有占据主线程的资源,因此效率是最高的。           这个问题到这基本就完整结束了,一个小小的问题,其实考察对于浏览器内核的渲染原理,在被问到之前我自己从来静不下心去看这个只是点,因为实在是低频。但是实习过程中又总是听到其他同时讨论渲染进程的优化问题,直到自己被问到不会了才沉的下气去看这些问题。还是要逼自己多看点东西。       如果大家觉得有用,欢迎大家点赞收藏关注送花!!!该系列往期链接:第一期:https://www.nowcoder.com/feed/main/detail/a79cb52ce00c4f6d874683e65b8eb718?sourceSSR=users第二期:https://www.nowcoder.com/feed/main/detail/04aee48cc23f4b09a04d0dba327f0c5d?sourceSSR=users第三期:https://www.nowcoder.com/feed/main/detail/0195906f12dd4fc0826251e9ceee19ab?sourceSSR=users第四期:https://www.nowcoder.com/feed/main/detail/2c0a525fa04240778e6c43d7d355a7ca?sourceSSR=users第五期:https://www.nowcoder.com/discuss/673869939018588160?sourceSSR=users第六期:https://www.nowcoder.com/feed/main/detail/ebead4b4e5da48439388aab5d4be290d?sourceSSR=users#阿里##灵犀互娱##前端##24届软开秋招面试经验大赏##我的求职思考#
点赞 评论 收藏
分享
         不知道这个系列可以更新多久,我预期是希望逐步整理所有的我认为有价值的问题,趁着还有时间,多复盘一下,大概每篇更新四五个问题,在精不在多。         如果大家觉得有用欢迎点赞收藏送花!1.(Minimax二面)react的单向数据流怎么理解,有什么好处?        当时对这个概念了解的不太深入,没回答好,下来复盘我觉得可以按照如下思路展开。        首先这个问题想回答好就需要理解几个概念:什么是数据流?什么是单向?为什么要设置成单向的?咱一个一个看看        react组件中最常用到的数据有两类:state和props,state是组件内部自行维护的,props是父组件传给子组件的,下面说的数据我理解都指的是props。        数据流:也就是数据在不同组件或节点之间的流动,比如a数据(引用类型)被b节点引用,又被b传递给c,那么a数据改变后会影响b,从而影响c,这就叫数据流。但是这种流动是双向的,因为如果在b或c修改了这个数据,其他的也会变化。        单向:在react中,单向是”自顶向下“的,也就是react规定了数据的流向是从外层组件向内层组件进行传递和更新的,而内层组件是无法直接修改props影响外层的。        那么为什么要用单向的形式?如果内层的组件可以通过修改props来修改外层的数据,那么外层使用到这个数据或者其他使用到这个数据的地方都会造成数据更新,UI渲染也会改变,这会造成数据紊乱和不可控。所以为了更好的可控性,react设计了单向数据流。        除此之外还有一个好处,所有的数据更新是单向的,那么出现问题的时候会更好溯源,因为修改数据的链路是确定的,排查起来顺着调用链就可以一层一层找到问题了。2.(快手二面)如果用户传了一个很大的excel要解析,如何处理比较好?web worker如何和主线程通信?        首先这个问题可以泛化到很多复杂计算上,而不只是excel解析,其次可以延申展开一些东西。‘        web worker是JS里难得的多线程。        在 HTML5 中,工作线程的出现使得在 Web 页面中进行多线程编程成为可能。众所周知,传统页面中(HTML5 之前)的 JavaScript 的运行都是以单线程的方式工作的,虽然有多种方式实现了对多线程的模拟(例如:JavaScript 中的 setinterval 方法,setTimeout 方法等),但是在本质上程序的运行仍然是由 JavaScript 引擎以单线程调度的方式进行的。在 HTML5 中引入的工作线程使得浏览器端的 JavaScript 引擎可以并发地执行 JavaScript 代码,从而实现了对浏览器端多线程编程的良好支持。HTML5 中的 Web Worker 可以分为两种不同线程类型,一个是专用线程 Dedicated Worker,一个是共享线程 Shared Worker。两种类型的线程各有不同的用途        和主线程之间的通信是通过postMessage来进行的。简单的说,主线程用postMessage向webworker推送消息,子线程用onMessage接受并处理,处理完之后在子线程内调用postMessage将结果返回给主线程,主线程同样用onMessage接受。具体内容请查阅MDN文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API/Using_web_workers3.(灵犀互娱一面)多个web worker如何保证顺序?        还好当时面试官只是提了一嘴,没让我解答。        这个问题属于上面的问题的延申版本,其实没了解过具体方式也能猜个七七八八(类比文件切片上传之类的)。要想保证顺序,最简单的方式就是在给不同web worker分配任务时附带上一个唯一编号,在web worker处理完返回结果时也将这个编号一起发回给主线程,在主线程中按顺序重组。        查了一下,webworker自身也提供了all和race等方法,这些其实就是在promise的基础上封装的(想来也正常,毕竟不同线程,肯定要异步返回)。有一个很详细的知乎文章,有兴趣的uu们自行查阅哈:https://zhuanlan.zhihu.com/p/41431253#:~:text=web-worker4.(快手二面)setInterval准确吗?        感觉大家可能也看过,但是这个问题还是比较有意思的。        答案是不准确,为啥呢?        嵌套的 setTimeout 相较于 setInterval 能够更精确地设置两次执行之间的延时。        下面来比较这两个代码片段。第一个使用的是 setInterval:        let i = 1;        setInterval(function() {          func(i++);        }, 100);        第二个使用的是嵌套的 setTimeout:        let i = 1;        setTimeout(function run() {        func(i++);          setTimeout(run, 100);        }, 100);        对 setInterval 而言,内部的调度程序会每间隔 100 毫秒执行一次 func(i++)(图1),时间开始计算的位置是调用内部方法的那一刻,因此第一次方法结束到第二次开始之间的时间间隔其实是小于100ms的,这就是为啥他不准确。        再看看setTimeout(图2)。时间开始计算的位置是内部方法调用结束的时刻,也就是说两次方法之间的时间间隔是准确的100ms。好处在于如果内部方法调用的耗时比较长,那么这个方法也能确保两次调用之间的时间间隔。        延申:如果setInterval的内部函数执行耗时大于设定的时间间隔咋办?        在这种情况下,JavaScript 引擎会等待 func 执行完成,然后检查调度程序,如果时间到了,则 立即 再次执行它。极端情况下,如果函数每次执行时间都超过 delay 设置的时间,那么每次调用之间将完全没有停顿。5.(百度一面)语义化标签如果没加样式,跟div、span这些非语义化标签有啥区别?        这个就看大家对语义化标签的理解了。首先肯定能想到的一点就是更方便理解,看到header就知道是顶,看到aside就知道是侧边栏,但是这些任务div都能完成,区别在哪?        1.即使在没有CSS的情况下,HTML页面也能呈现出很好地内容结构、代码结构。语义标签具有默认的CSS,比如html5之前的h1、h2等等就是语义化标签,他们表示几级标题;虽然我们在html没有引入任何css时,我们仍然可以看到h标签有字体放大加粗的效果。 实际上,html本身是没有表现的,我们看到例如 h1标签是粗体,字体大小2em,加粗;strong是加粗的,不要认为这是html的表现,这些其实html默认的css样式在起作用,所以去掉或样式丢失的时候能让页面呈现清晰的结构不是语义化的HTML结构的优点,但是浏览器都有有默认样式,默认样式的目的也是为了更好的表达html的语义,可以说浏览器的默认样式和语义化的HTML结构是不可分割的        2.不仅人更容易看懂,也更利于机器看懂,对SEO更友好。再次感谢大家的点赞收藏和花花#软件开发2024笔面经##前端##快手##minimax##百度##面经#
点赞 评论 收藏
分享
09-23 21:04
门头沟学院 C++
点赞 评论 收藏
分享
隔了几天才有时间整理三面面经,三面面试官聊业务,会看之前的面试评价,从里面挑之前面试官没问过的一些问题。没开摄像头,但聊起来沟通没啥压力。灵犀的三面好像都是一个面试官来面,所以面试得排队,可能比较忙就约的比较晚了。面经:1.分享一个所有项目经历中最有自豪感的事情,介绍一下自己做的事情2.微前端的意义和作用3.这些方案和工作是独立设计/实施还是跟mt一起完成的4.各子应用之前是否有通信5.子应用是类似与iframe的嵌入还是都挂在一个dom下6.各子应用对全局的污染如何解决7.怎么选择前端这条路8.本科期间没接触前端9.为什么选择读研之后再出来工作10.为什么选择了一个游戏公司11.平时玩什么游戏,挑一个玩的时间最久或者对你影响最大的一个讲一下12.逻辑题接下来的一道题直接想了二十分钟,好难的逻辑题。。。说了两个方案,感觉都有瑕疵给出一个平面上的点的数组(偶数个),每个元素是点的横纵坐标,怎么找到一条线把这些点分成数量相等的两半面试官说如果觉得很复杂那就是想复杂了,有很简单的思路,但我到现在也想不出来13.最近读过的技术相关的书籍14.自己学过的课程中哪个最感兴趣,学得最好15.(说了深度学习)有没有自己手撸过一些神经网络16.为什么不选择算法方向感觉偏聊天向,但是逻辑还是需要清晰的#灵犀互娱##前端##秋招#
点赞 评论 收藏
分享
因为真的还蛮享受这次面试的,结果一天就被挂了(甚至周六面周日给我挂了),十分遗憾,遂来写面经1.对游戏策划数值策划有什么了解?我没答得很详细,说了数值策划系统策划文案策划等等,现在想来应该多说一些?2.你觉得代号鸢里哪个角色设计得比较好?我答张郃,因为它是机制型密探,永远有就业。而且在持续伤害队由于董奉的存在张郃并不是主力,也是一种平衡3.你觉得张郃为什么是能抵挡70%的血,而不是和其他游戏里一样无条件抵挡?我答因为如果无条件抵挡就有点超模了,像高难关卡是很需要秒杀伤害,无条件抵挡会让玩家缺乏挑战(这里可能没答好,应该更详细一些?4.你说到董奉,那么如果你未来设计一个和董奉定位不同的治疗型密探你会怎么做?答:吸血,队长技能或自己技能的效果可以让其他密探在一定回合中吸血。董奉是短线程防被秒,吸血适合回合数多的关卡,比如限制在20回合必须击杀boss,就会适合带吸血。这里也是我自认为答得比较好的点5.代号鸢里你印象比较深的活动?答:我说的这次的新活动。我已经打完了,优点是都是机制关卡,普通玩家白天也能打过,缺点是机制boss有点太多,应该数值怪和机制boss都有否则玩家会感到疲倦6.玩过什么其他卡牌游戏,比如阴阳师?答:其他女形象游戏里的卡牌,阴阳师玩过一小点,剑灵手游,炉石(现在想来还有绝对演绎,狼人夜等等,忘了说)7.玩过MMO没有?答:魔兽,剑三,天下3,逆水寒,奥比岛手游(现在想来其实太多了,一时间都说不完8.挑选一个你玩过的MMO,说说里面的多人活动?答:奥比岛手游里的家族活动,每个人有一个火把,火把有限时,熄灭了人就会死,所以必须共享火把。同时还需要去探索宝藏,并在一定时间内找到出口。这个时候他问我你觉得这个游戏是怎么鼓励玩家社交合作的,其实面试官也意识到我已经讲了,就是火把,同时通过宝藏的分布去鼓励策略。9.你觉得设计得比较好的战斗系统游戏?答:英雄联盟。面试官还问我是什么段位,我说铂金。问我玩啥位置,我说我除了上单都打。他问我那就挑辅助位来说吧,你觉得泛用性比较高的英雄是什么,为什么?我答莫甘娜,因为可进攻可保人,carry绝大多数控制辅助还能推线。10.你觉得为什么莫甘娜这类英雄在比赛中不会出现,低端局很强的英雄在高端局却不会?答:(这里莫甘娜在高端局也存在的,水子哥有段时间排位必ban莫甘娜)我主要围绕着上限下限来说,像一些剑圣安妮之类的技能可以被预测,而青钢影佐伊这些并不会,可能说得有点啰嗦。现在想来,应该还要加上高端局对版本更敏感,能更大地体会到伤害的极限11.有关注过英雄联盟更新信息吗?他们会从哪些方面削弱英雄?答:布隆刚出的时候很强,后来被削弱了,但是我只想起来Q的伤害减了,于是把削弱一个英雄的途径都说了:基础属性/成长属性,耗蓝,技能cd;重做,暗改技能;装备、定位以及地图、中立怪物也会有影响。后来刚面完就想到少说了一点:和其他英雄的配合12.你刚刚说到有一个版本妖姬过强,如果让你在砍伤害和砍施法距离之间2选1,你会选什么?答:伤害。因为砍施法距离影响手感,影响玩家体验,而改伤害比较隐秘,玩家可能还觉得是他们自己的问题13.了解三国吗,了解哪些代号鸢没出的人物(诸葛亮吕布那些除外)?答:这里我先是答的法正,然后他让我设计这个人物的技能,我对法正没那么了解于是改成张春华了 ,我说张春华很狠辣,设计出的角色是使用双刀,平A是轻击和重击交替(这里借鉴腕豪),技能也可以根据轻击重击有不一样的效果,甚至可以一个是直接伤害一个是持续伤害。这里也是我私以为答得不错的。14.再后面就记不清了,一些诸如有没有发生矛盾、怎么解决矛盾的问题昨天上午面完今晚在官网就发现被挂了,有些惊讶直接就给我挂了池子都不泡。也很遗憾,毕竟真的是挺想去的。面之前跟人说就是投着玩儿并不会去,面试的时候因为体验太好都有些感动了,于是也是真心想去。那么看来现在我还是得去搞嵌入式咯。如果有兄弟姐妹对于这些面试问题有更好的答案请告诉我~
点赞 评论 收藏
分享
09-23 07:31
已编辑
北京交通大学 Unity3D客户端
简单写几个近期的面经攒攒人品,都是一面凉经🕒 岗位/面试时间9.6 网易雷火游戏测开一面交叉面,总共面了八十分钟第一场自我介绍让我介绍崩铁里的一个角色的机制,并设计测试用例看我实习用的Python,就问我是否能认为Python也是我会的语言讲讲自己做游戏项目时遇到的挑战手撕:计算出金的期望抽数。面试官现场编的概率。就考的数学功底八股:讲讲构造函数。讲讲泛型。unity的overdraw知道吗,如何降低最后问了我对测开岗的了解,为什么投测开,以及之后的职业规划。反问第二场自我介绍给抽卡设计测试用例为什么喜欢玩崩铁,崩铁有什么优点,崩铁的小游戏或者活动里的玩法最喜欢哪个继续追问自己的游戏项目,还有什么技术难点,有没有考虑过性能问题,有没有做过什么优化(提到了a*,让我简单讲讲a*。提到了ui动静分离,问我为何需要这样做)也问了我是不是也算会Python手撕:最长公共子串八股:tcp和udp的区别,你认为崩铁用的是tcp还是udp。如果这个游戏移动端和pc端都有,那游戏的网络通讯有什么区别。反问🕒 岗位/面试时间9.10 米哈游游戏测试只面了三十多分钟,面完就觉得多半凉了。问了一些测试的基础,比如测试方法和它们的定义。两个场景题设计测试用例。自己的项目有没有遇到什么bug,是如何排查和解决的。为什么选择投测试(其实是被调剂的)。反问。无手撕。🕒 岗位/面试时间9.12 灵犀互娱游戏客户端这个最离谱,四十多分钟全程拷打项目,也有点跟我讨论技术的感觉,整体面得很随和,就面试官好像也在想该问啥的样子…偶尔也会顺着项目问一点八股(Unity生命周期,update和fixed update的区别,AB包压缩方式,寻路算法有哪些,面向对象的特点,面向对象的设计原则),也没有手撕。可能是被kpi面了。不过这次也让我感受到了自己游戏项目的深度还不够,要选一个方向深耕。 #面经# #游戏客户端# #游戏测试#
点赞 评论 收藏
分享
模拟面试
真实面试体验,快速补齐短板
应聘感受
暂无应聘感受
牛客网
牛客企业服务