应届渣渣前端面经(还有游戏策划以及鸡汤)
前言
本来不准备发的,可是看着自己写了半年的面经,不发呢就让他烂在电脑里,发的话呢,又给各位大佬献丑,后来觉得还是可惜,那还是发吧。
大学四年,方向都是不固定,身边大部分人思想放不开,永远想着专业对口, 又放任自己,我显得不合群。大一想创业,后来发现家里没经商背景没经验,0社会经验创业这是扯淡。大二做了数学建模,开始做得好好的,拿下很多奖,最后队友居然弃坑,然而后期大家都是已经组好队,是找不到3个人组成一个队的了,又放弃了。大三开始做游戏策划,做了几个月又经历了秋招,结果发现自己真心的并不是喜欢做策划,最后还是做回了前端,现在美滋滋的。
本文有前端、游戏策划的面经,可以选择性地看,也可以直接跳到后面看鸡汤。
正题
自学半年的非科班菜鸡,从游戏策划转行前端,一路过来也许有点顺利,遇到一些不错的人,不过也踩了很多坑。非科班的,又要另外补算法数据结构、计算机网络、操作系统,再刷个牛客网,差不多了。
前端
maka
一面:(30分钟)
先做一小时题目,然后来了一个很帅的人来面试,讨论了题目
1.讲一下闭包
2.promise版本的ajax
3.怎么学前端,一般去哪里看文章
4.盒子模型
二面(1小时)
1.看见你会canvas,怎么做的(面向对象、绘制、清除、动画帧)
2.webpack讲讲(loader、pugin、entry、output方面)
3.node错误处理(demo党,讲得比较僵)
4.浏览器从url到页面的过程
5.很多js,要怎么加载(按需加载、动态异步加载,AMD)
6.浏览器页面渲染详细过程
7.node爬虫需要注意什么(操作字符串dom、异步顺序)
hr面:(30分钟)
1.为什么你手写代码就没那么顺手了(编码能力不够扎实,以后会改)
2.说说你家的情况
3.你是不是大家的骄傲
4.大概什么时候来上班
5.我担心你可能觉得一些工作容易而不认真,不能沉下心来
网易:
一面:(电话20分钟)
1.怎么学前端
2.jQuery和vue对比
3.webpack的了解,整个流程,插件开发,loader开发
4.性能优化,页面过度渲染怎么办
5.http状态码、缓存
二面:(电话30分钟)
1.vue 整个流程,双绑,complier,htmlparser,render函数
2.开发的流程,从构建、接口、前后端、数据表、ui还原、中间层角度都问一遍
3.css布局,从两列到多列到低版本ie过一遍
4.原形链、闭包、作用域
5.我们正在做一个游戏平台,迭代更新,你觉得平时开发需要做点什么和注意什么细节
hr:(电话20分钟)
1.为什么选择我们
2.对网易有什么看法
3.有玩过什么游戏
4.你觉得乱斗西游怎样,你当初为什么弃坑,你带领的帮派为什么平民玩家都能占排行榜前面
5.加班的问题
多益
(视频20分钟)
1.最自豪的项目?遇到的难点?做了多久(新手的时候,慕课网的加强版个人demo搬出来了,vue1变换到2踩的坑,求稳就说了这个,说做了一个月)难道这点就自豪?(其实我3天做完毕设,但是在熟悉的情况下做出来的我不自豪)
2.最自豪的事情?(公司一天速成ng并能够按时或者提前完成任务)
3.前端工程化以及介绍(webpack、gulp、grunt。对了给你介绍一个好东西,dva)
4.webpack和gulp区别(模块化与流的区别)
5.dom是什么,你的理解?(...)
6.关于dom的api有什么(...)
7.css预处理器有什么,擅长哪个?(less)
8.说一下less(嵌套、组合、组合爆炸、运算、变量、混合)
9.post和get区别(...)
10.我看见你写了一个js库,说一下有什么?(封装了es6一些方法原生实现、一些设计模式、常规操作)
11.看过什么书?(红书、犀牛、css权威、css世界)
12.有没有一页一页看?(重复看的只有红书)
多益的比较看重经历,技术问题都简单。而且只有一个视频面就定结果。这一天实在是曲折的经历。首先收到了cvte的面试通知,预约下午6点。今天下午坐车过去的时候,突然一个hr打电话来说,预约4点面试,我就奇怪了,我说我昨天预约6点,然后叫我加面试官qq视频面。我说我就在坐车去你公司,你想我现场面还是视频面,去和他们说清楚,好像对方和我也牛头不搭马嘴的。后来说视频面试,叫我加面试官qq,一加发现,多益面试官!然而我已经下车准备跑回宿舍!
cvte原先约6点,多益的通知就是突然来的hr短信叫我4点面试(没有注明公司,看见短信的时候我以为是cvte),接着发生了这一幕,双方懵逼,直到加qq我才知道一切
cvte
(50分钟)
1.怎么学习前端->其中说了社区互相交流->那你有没有参与社区网站的开发和开源项目(没有,我只是在MDN贡献了一点)
2.公司的后端是node中间层,再发到java吗?(直接node的egg框架)那你有搞过这个项目的后端吗?(开一个接口给我自己测试)
3.怎么cors跨域跨域cors的cookie设置,安全性,接下一题(那个地址设置成我们自己那个,'Allow-creadentials'true,)
4.公司的后台对cookie的处理、xss、csrf(我只是说了过滤、反转义、httponly)
5.cookie在多个页面的通信,有效和过期的区别( 单机党这就开始悲剧,反正只说了setcookie和getcookie方法,expire、登录拦截)
6.nginx反代熟悉吗(用过)
7.vuex数据流的理解(把流程图背一遍,然后用原生vue+storage和vuex做比较)
8.vue双向绑定原理(observer,watcher,complier,MV->(文档片段节点劫持)->VM(defineproperty的set和get)->MV(观察者模式,第二阶段导致变化,发布信息publish))
9.promise实现(先try运行一次excute,出错reject,然后then方法给this添加成功和失败的回调,并再返回另一个promise,其他api全是基于then)
10.你擅长什么方面,为什么不去搞算法(因为前端有webrtc、然后到webar,需要很强数学基础,新技术又有pwa、webassembly、css houdini,node又让前端涵盖面更加广)
11.手撕assign的深拷贝(太急不审题、递归拷贝得太深,事后我和他都吐槽)mac电脑的键有点不一样,出丑了一分钟。男面试官:其实这个题目挺有意思,每个人都有不同的方法,而且处理不同的数据类型,以及不同的递归深度控制(早知道我看看的深拷了,我觉得最完美的深拷是lodash源码但是只是mark没有看)从此以后,谁和我讲深拷,我就写一个兼顾n种类型、原形链和环引用的完整版给他
其实,他们是要我手撕jQuery的extend,还是我自己太急不审题,快要做完的时候发现,人家给的参数是:
类似这样子deepClone({a:1},{b:2,c:{d:'hello cvte'}}),就是要我实现es6的assign和jQuery的extend嘛,我居然,然后又被引出了数据类型的问题
cvte比较看重的是node中间层、http那块,react技术栈。我擅长的设计模式、手撕源码都没有具体问到,而且是我自己引开的话题,又被他带回来http这块,然后我答的比较普通,然后他给我科普,难受。多益这波,我中途跑回去是有点冲动了,其实白跑了,在车上也可以视频面试,然后cvte又迟到又气喘吁吁地排队,刚刚好是最后一个,心都没有定下来。
珍爱网
(30分钟)
1.CSS怎么实现倒三角形、怎么实现(border,大家都懂的)
2.学了多少计算机相关的课本(我们专业只讲c语言、计算机网络两三章书)
3.数据库除了你所说的CURD, 你还了解多少(mongodb关联查询),要是存放用户地址信息怎么存(对象形式,获取经纬度)
4.VUE双绑(这个比较熟悉),如果我们有三个v-model绑同一个变量,想其中一个不绑怎么办(v-once)
5.dom加载过程(背书),对于你的首页直出、SSR,首页性能测试,怎么测试时间(分情况讨论new Date的时机,再求差,回去才发现too young。performance那里还有很多学问的)
6.事件冒泡(背书)
7.b树、b+树、红黑树(不会)
8.微信开发了解吗(了解不多,类似vue,一般用内网穿透调试)
9.你项目的难点(实现websocket+iframe+localstorage组成的实时聊天系统,可以不同源实现websocket,顺便吐槽了一下网上一堆shell版本的聊天室)
10.如何统计全国单身女性(开放题)
当然是挂的,树没有答出来、数据库也不太熟悉
唯品会:
一面:
1.看github,问快排
2.如果我第一次不交换会怎样
3.如果是奇数次不交换会怎样,复杂度呢,稳定不
4.为什么是nlogn
5.链表相交点
6.多线程、死锁、竞争、安全(说webworker,他说不讲这个,叫我从操作系统底层讲)
操作系统不熟,他后来说他是安卓的,不懂我们这些,所以我想写代码他叫我不用写,想说webworker也不给我继续说。
看见隔壁桌的聊前端聊得飞起,我是不服的,没办法,刚刚好这问题对于非科班的我没办法,实力不够运气也不够
凡科
先做一份题,也是那些this、闭包、作用域,有坑容易挂,所以很多人说凡科是商业宣传,其实进笔试题的坑了。那个题大概是绑定3个事件,用了dom0到dom2,还有用了call、中间嵌套了n层函数
一面:(30分钟)
是一个同事,先讨论做的笔试题一大阵。
1.visibility:hidden、opacity:0;display:none区别(占位、绑定事件、会不会渲染、会不会绘制,这个自己试吧)
2.canvas写字怎么写(touchstart开始,touchmove计算这次和上次鼠标坐标差绘制,touchend防止跳线设置null)
3.数组去重几种方法、性能(set、indexof、字典)对象查找是最快的,当然是用一个对象缓存,还有一个操作加分了:Obeject.create(null),这样子for in就好很多
4.扯到了我对深拷贝的研究,常见的对象类型和环引用,100多行代码,(装逼成功)
5.web里面嵌入自己的字体(font文件),这个不了解,不过他们部门是干这个的(路过的有知道的可以讲讲)
二面:(2小时)
是部门的boss,人特别好、大块头、络腮胡子
1.event loop(同步有宏任务、nexttick、微任务,异步有6个阶段)
2.浏览器渲染、加载(常规操作,然后列举async、defer带来的结果)
3.性能优化、pwa(service worker)
4.说说houdini(我自己讲的,装逼成功)
5.canvas画图(面向对象、清理画布、绘制、碰撞检测)
6.防抖节流、懒加载、预加载(基本操作,都要了解)
7.谈人生、谈待遇
回去后马上看见github多了一个星星,掘金也被人关注了。虽然一直都比较冷清。
墨子谷
一面 :(电话 30分钟)
1.现在在哪里?大学学了什么和编程相关的?什么科目对你影响最大?(学校教过两三章c语言,所以学js也快了)
2.数据结构有哪些?红黑树、链表?为什么用他们,他们有什么用(举了一个查找的例子)
3.js和c的对比(表示c了解不多,列举了强类型和弱类型的区别)那js快还是c快(当然是c,js底层也是c)
4.es6的新特性,let和var的区别(let解耦声明和初始化阶段,块级作用域)
5.看见你的页面加载 1.8秒,是快还是慢,怎么看性能(看见人家的网站是这个速度,我觉得这个算是及格线了。peformance)
6.那首屏加载怎么快呢(ssr、利用缓存)
7.cookie、localstorage、sessionstorage区别(大家都知道的)
8.get和post区别(数据包、传输大小、安全性、副作用、传输方式不同)
9.visibility:hidden、opacity:0;display:none区别(占位、绑定事件、会不会渲染、会不会绘制,这个自己试吧)
10.严格模式(不能变量提升,不能重复声明)那我这样子不就是不爽了吗?(项目大了,这样子很有问题,导致项目的命名存在问题。另外说到
了垃圾回收,全局变量写得多,越不能垃圾回收,尤其是node上,长期不关机,内存就爆)
老板是腾讯前400人之一,里面很多前腾讯的人,实力很强,应该接下来会招人,公司准备搬到腾讯那边
腾讯CDC:
一面:(电话 50分钟)
1.js基本数据类型
2.闭包、内存泄漏、垃圾回收算法(闭包概念,用于柯里化、缓存、模块化,导致内存泄漏。垃圾回收有新生代的scavenge和老生代的标记清除)
3.js的原形链、继承,es6的class(本来举例子的,他说不用讲那么多,叫我简单讲怎么继承)
4.移动端了解吗(不)移动端有一个xxx(马上打断,我知道,点透问题),点透怎么解决(zepto的tap,用一个div去挡)。
5.浏览器缓存一套(强制缓存、协商缓存、应用缓存)。url到页面的过程。js、css阻塞页面那些问题,异步加载js(async、defer、动态创建)
6.跨域,同一个一级域名不同二级域名低成本跨域(jsonp、iframe桥接)
7.两个网站的js低成本跨域(iframe)
8.完全的跨域,加上后台的(node转发、jsonp、cors)
9.用vue是吧,说一下虚拟dom
10.说一下vuex(复杂关系的组件,统一的状态管理),再说一下单向数据流(类比react的state),那我子父组件通信呢(事件总线)
11.css布局(除了flex、grid还有吗,我说常用就这两个)那么不兼容呢(用回position、float那些,顺便说一下bfc、ifc)
12.你是怎么学习的,你对你自己的评估怎样,职业规划,为什么不满足你的公司
13.xss、csrf,防御措施
14.说一下pwa(server worker,离线或网速慢的情况下正常运行,依靠本地缓存)
15.评价三大框架(针对ng1的di思想、vue的彻底双绑以及学习成本低、react的数据流,虚拟dom)
16.为什么虚拟dom就快了呢(转化为js数据结构,最小化dom操作,最后render插入)
体验很好,会提前打电话叫我准备一下。移动端比较菜,tap怎么实现没有看,css也比较菜,问题是答上来了但不够好
二面: (电话 40分钟)
1.事件模型,事件委托
2.闭包、内存泄漏、浏览器查内存泄漏的方法
3.document.fragement,重绘、重排
4.如果有操作需要频繁重绘,css重绘优化(GPU加速、节流)
5.面向对象、ES6实现面向对象、promise
6.vue原理
7.跨域(特地把iframe随便带过:还有iframe那套),那iframe父子窗口怎么通信(刚刚好这几天博客写这个)
8.nginx相关、webpack、gulp,有自己写过吗
9.vue ssr,vue如何做多页面应用,知道webpack能配这个吗
10.pwa
11.用node干了什么,mvc+模板引擎,多页面应用
12.项目遇到的难点
13.动画处理,怎么优化,动画卡了怎么办
14.xss、防御措施
腾讯课堂:
一面:(几小时)
陪着他们一起下班,挺好的氛围,第一次感觉到上班像玩游戏一样,时间一下就到晚上11点。
还是常规,笔试再面试,不同的是接着就是漫长的电脑操作。
笔试:写一个函数,给dom加遮罩层、文章里面出现频率最高的、正则匹配属于qq.com的、插入1000个li、手写观察者模式、大数相加
看起来都简单,不过你要是无脑做是必死的,追求极致解和考虑所有的情况以及效率,眼高手低的人在这里是死定的
面试:
1.继承、类,对类的静态、私有、共有什么看法
2.事件模型、重绘重排
3.http2相关
4.说刚刚做的题,文章最高频率单词那道题,考虑多个结果的优化
5.为什么requestAnimationFrame在插入li那道题是一种优化
6.跨域、哈希值你的应用场景、刷新了怎么办
7.大数相加,考虑到9999那种情况,当场写得代码比较冗余
电脑操作:
1.两个盒子,一个盒子能拖动,拖到另一个盒子里面就变色。这里考到事件委托了。不能用drag事件
2.防抖节流、深拷贝
一不小心11点多,面试我的那个人打车,接着坐了一个顺风车,留下了微信
二面:(视频2小时)
1.聊人生
2.项目的难题,现在重复写一遍(border-radius用canvas实现,而且缩放不能是椭圆,其中一个角还要有阴影。用到微积分)
3.三列布局,想表现自己,挑了圣杯布局来写,而且没写好
4.大数相加,因为上次没写好,这次写了一个厉害很多的版本
5.实现一个像百度那样子的搜索框
6.webpack自己写过插件吗?没。计算机网络了解不,协商缓存、强制缓存
7.时针和分针在5点15分和7点45分的夹角
每一题都是10分钟,我想表现自己圣杯没写好,对方说怎么好像你布局不熟啊,在这里乱来试,你面试也不少了,怎么能这样子试的。最后时针分针的,我第一次答对了没听清楚他念了几句什么话,以为自己错了。第二次,他问我变个时间有那么难?我说感觉有坑,你刚刚说我错。“我没说你错啊”
又说到布局,问我有flex,有很多方法,怎么用那么老的。我想表现一下我的实力,我css好菜。“还是取决于的价值取向,这就是你所谓的成就感?也不菜啊,还可以的,没说你菜”
总监面:(视频 1小时)
1.聊人生
2.写快排。10分钟,完美版本,无错误。
“看看哪里错了?为什么要用草稿本,难道自己写的代码不能看出错误来?”
“还有什么可以优化的吗?”
“执行效率上还有问题吗?”
经过中间n多改进与纠缠。。。留下qq继续战。
又战了两三天,最后结果,左中右3管齐下的快排+中间基准值,测试5000个数4000个重复的情况,结果比数组sort方法还要快。兼顾到数组元素的特性以及长度。我那边还要继续准备毕设。
快手:
一面:(视频 1小时)
1.了解前后端交互吗(restful的api)那怎么传数据(跨域、不跨域情况)跨域怎么跨(cors、jsonp)
2.那jsonp原理呢,返回数据格式呢,手写
3.了解js的自定义事件吗。(有一个api的,我忘记了,然后定义了能用eventlistener监听,类似于发布订阅者模式)
4.那写一个发布订阅者模式(成功把他引入我熟悉的坑)
5.非计算机的,那计算机了解吗,tcp3次握手,如何将一个数转16进制,16进制的数是什么样的
6.看来你还是有了解的,那再问你堆和栈(常量池存基本类型、栈存变量和指针、堆存复杂类型)那我平时改一个引用类型,另一个也变了怎么办(问到这里他还没说完,突然窃喜,果断把我的深拷贝的各种类型研究说一遍以及环引用解决讲出来,他介绍我研究一下lodash、immulable源码,我说immulable才是最完美的,不完全深拷贝。然后对方说我对这方面研究很深)
7.浏览器缓存
8.写个函数判断是不是回文序列
9.看见你博客,挺有个人独特见解的,你怎么学前端的
二面:(视频1小时)
刚刚吃完饭,hr打电话叫我面试,还以为是另一个公司,我们双方不明不白地尴尬了一阵(突然想起了多益和CVTE那次尴尬)。我说发链接给我邮箱就行。hr:还是那个链接,现在马上面试,面试官在等你了,于是匆匆忙忙打开电脑继续
1.给一个节点树,ul里面可能有ul和li,但li就不会有东西了,判断数的高度(我用的是bfs,不过出了一点问题,面试官叫我用递归试一下。递归解法类似剑指offer的二叉树深度,只是for in 循环整个ul取最大值)
2.用vue是吧,说一下响应式数据原理(balabla)
3.用过slot吗(类似于模态框,可能有警告、提示、成功不同类型,我们只需要做个内容分发避免了写多个组件)
4.cookie、localstorage、sessionstorage区别(大家都知道的)
5.es6的新特性,let和var的区别(let解耦声明和初始化阶段,块级作用域)
6.那好,我const obj = {a: 1};obj.a = 2;这样子会不会报错(基础问题)
7.发散题,怎么判断一个数是不是2的n次方。我写了辗转相除、递归、toString2。然后他说,我能做到O(1)。我说那就是字典了,他说我不用字典的。
n&n-1===0
体验史上最好,没有之一。简直就是当你是同事、朋友一样,拿着摄像头说,看,这里是我的办公室,这里是xxx,这里是xx,你上北京的话,我们可以一起挑战一下新技术。我说怎么没人呢,他说现在是中午,大家在趴桌子,现在要继续上班了。我这里呢有tob和toc的,toc的pc端对性能要求高一点。那么要兼容ie6吗。不用,没什么用户了(此处手动滑稽)
8.有什么公司offer
hr面:(20分钟)
面完俩面睡会觉,突然hr小姐姐又打电话过来了,说等下hr面,叫我准备一下。后来,是招聘的总监,不是小姐姐
1.通过前面俩轮,技术还是过关的,能来到我这里的人不多,说一下你的体验(史上最好,没有之一)
2.你为什么选择我们(社会的热点、boss是大牛)
3.你实习过吧,讲一下之前的经历
4.抛开你的公司和快手,你认为什么样的才是好的工作
5.说一下大学经历。我看见你有数学建模拿奖,说一下(再叙陈年旧事)
6.对于北快手、南抖音怎么看(从用户群体、用户管理、用户喜好分析)
7.周围的人说快手xx,或者抖音xx,快手不如抖音你怎么办(辩证思维,不存在绝对)
8.前面面试官给你说过要干什么吗(b端、c端的广告投放)
看,后面是我们的书架,刚刚找了很久,终于找到一个地方了,这里是留给未来的新人放书籍资料的。
不得不说,面试体验真好
总监面:40分钟
1.52张牌去掉大小王,分成26*2两堆,从其中一堆取4张牌为4个a的概率
2.3个人分100个金币,第一个人先提出方案,超过半数不同意要死,如果没问题继续下一个人重复步骤,怎么使得第一个人拿到最多
无心插柳柳成荫的面试,我不准备去北京的,本来想随便玩玩的,然后随便丢了旧的简历过去,接着是超棒的面试体验,突然觉得有点对不起他们
intal360
一面:(电话2小时)
1.怎么学前端,学多久
2.react生命周期,单向数据流
3.vue源码,双向绑定,render、component、mount原理和优先级
4.webpack的spa,为什么选择spa,前端路由原理
5.多页面,glob模块,多页面+单页面
6.父子组件、子孙组件、兄弟组件、无关系组件传值
7.跨域,jsonp原理,内存泄漏,隐形循环引用
8.虚拟dom,domdiff
9.开发环境,docker容器
10.electron相关
11.pwa,service worker,webworker
12.产品迭代更新相关
13.css垂直居中
14.BFC相关
15.node中间层,转发,负载均衡,nginx
16.变量提升的原理
17.es6新特性,用过哪些,原理是什么
18.三大框架的对比
二面:
去公司见老大,对我上次面试特别满意,所以直接谈公司和福利了
hr:
1.什么时候入职
2.有没有女朋友
3.准备在深圳发展吗,为什么选择我们,你对技术栈的要求
4.你高中的数学成绩是不是非常好(没错,一般140)
5.那你物理也很好(没错,一般差不多满分)
6.你偏科很严重(当然)
pundi-pundi
hr面:(20分钟)
1.你为什么选择我们
2.你对技术的追求,你认为什么才是你满意的技术栈
3.你身边的人是怎样的,怎么评价你的
4.你怎么学习前端
技术面:(50分钟)
1.你的vue商城项目具体结构,逻辑
2.所用到vue全家桶的技术,具体举几个例子
3.那vue-router怎么实现的
4.为什么需要vuex,他是做什么的
5.登录为什么选择session+cookie而不是token
6.pm2、log4js项目用过吗(没有,但是demo玩过),那你觉得他们的作用是什么
7.产品迭代更新注意点、如何设置埋点
8.讲一下懒加载和预加载
9.性能优化,http2,负载均衡
10.什么时候过来,见一下我们老板,再谈一下
游戏策划
太长远,很多小问题想不起来了。
诗悦:
一面:
1.玩过什么游戏,RPG类的一般是什么套路
2.MMO类玩过吗(少),梦幻西游的世界观构建
3.魔兽地图金庸丛林肉搏移植到pc端游,怎么做
4.如果一个游戏是封闭式经济,某个区域通货膨怎么办
5.如果游戏出了bug当晚很多人刷了神装,我们怎么回档才能让大部分玩家满意
6.西方神话相关的场景,一个与牧师相对的职业技能属性文案背景设计
建议回去把梦幻、剑与家园认真玩一遍,把经典的MMO全都玩一遍,不要说SLG不喜欢就不玩,现在你可以来实习但是正式工我们给不了你
37互娱:
一面:
1.一个装备从掉落到背包的流程(结合了开发的思想回答,状态、接口)
2.十八般武艺,装备分类
3.如果一个区,大vip******全区,怎么办
4.游戏加班严重,怎么看
二面:
1.知道abc三件装备爆率,求收集完一套的次数的数学期望(马克洛夫状态转移矩阵)
2.两军战斗,战斗力m和n,战斗是直接碰撞的算法,求赢的一方的剩余人数(兰彻斯特作战模型)
3.一道推理题,就是谁喜欢吃什么打什么球和谁有什么关系那种,总的有7个人,推理出每一个人相关信息
星辉:
一面:
1.看见你带了一份数值分析,那你讲一下
2.骑马与砍杀里面怎么拓展,可玩性如何增加,它的mod和魔兽的自定义地图的区别与联系
3.写一段文案,场景是未来的主角如何杀一个人,要求用上那堆关键词
4.一个概率论的题,忘记了,需要用微积分+不等式证明
交叉面:
1.游戏有很多是失败的喔,你为什么要做
2.游戏加班严重的,你怎么看
3.SLG类,如果要结合ARPG的元素该怎么结合
4.我们有四个职业,战士法师刺客骑士(特点你懂得),设计一个练级区使得每一个职业的专业练级区效率和花销差不多
5.如何压着人民币土豪玩家,而且让他不弃坑
6.设计一个转盘,使得价值合理(加权平均值)
腾讯:
群面:
问题是。设计一个意念游戏,确定类型,如何设置以及他的可玩性,技术难题是什么。
全组挂,明明在外面吹了半小时牛,自我介绍还要一万年,一个说改造王者荣耀,两个说沙盒(我也支持沙盒的,因为最强大脑里面有一个拼字的比赛项目),一个说GTA,一个说vr说得自嗨了,一个打酱油的抢总结,两个抢timer。不能说队友坑,我hold不住队友也是我实力不够,真正的策划肯定能轻松解决这些沟通问题,还是认命吧
4399:
一面:
1.你怎么做到利用植物大战僵尸2(手机版)的bug刷装备的,我还充了几百块
2.你觉得植物大战僵尸需要增加的模块,哪个模块做得不好
3.你用什么编程,为什么不用Python
4.你觉得守望先锋活跃玩家少的原因,如果要增加英雄你应该怎么设计
5.你说要增加装备系统,那怎么设计,如何和技术人员沟通(会编程的策划还是有用的)
6.游戏上线后发现bug,而此时是高峰期,怎么做才能使得玩家不生气并且修复bug
我觉得你还是会的,策划基础好,但是你没有奥数、国际比赛那些证明,你的数学能力我们还是不能认可(强行好人卡)。一个数学建模的奖,重于建模而我们暂时不太需要建模的。不过既然你会前端,可以考虑一下我们的前端岗。
对于游戏策划,建议好好刷游资网、GAD,好好看每一篇文章。数学上要会一点微积分、概率论,面对抽奖题就要想到加权平均值的角度,面对爆率就要想到排列组合和概率论,设计题就看个人了。记得增加游戏的广度而不是深度,很多人以为自己玩游戏多了就能做策划,其实只是一个堕落到玩游戏成瘾的,而且仅仅只是某个游戏,lol、王者、吃鸡?问王者哪个数值不平衡、怎么改、后期要黑箱测试怎么做,问世界观构建、游戏是n派还是l派、爆率题、技能设计题就懵了。也许能说出技能效果,但数值怎么设计才能合理,为什么要这样子设计,和哪个英雄冲突?又怎么讲?
就算自己不会做游戏不会写代码或者没有会写代码的大腿抱,也记得常写一下游戏demo,写成ppt也好,写成文档也好,用unity大概潦草做出都行。策划就是游戏中的产品经理,产品该做什么,策划也差不多做什么,只是策划针对的是游戏这个领域。但是,会一点编程,是大大增加竞争力的
最后,秋招的时候还是转前端了,闭关锁国,好好写代码,美滋滋。我还是不喜欢做策划,因为你的方案不一定被采纳,而且游戏产品失败的比较多,并且总是反推其他游戏(其实就是“借鉴”),很少公司想认真的研发真正的自己家的游戏,没想过做那种4A大作。我喜欢自创,所以js我做demo的时候全是用原生写的,自己造轮子自己写。只有做公司项目才用框架。
鸡汤
还有好几个不足150人的小公司前端offer,海投太多名字都忘了很多,中间很多公司面试当天忘记写面经就永远的遗漏了。这些算是当做一次锻炼自己的机会,交流技术查漏补缺。当然不是随便放个屁就跑了,无论怎么选择,都要拿着最好的态度去面对而不是看不起别人,无论你多厉害,也不会厉害到碾压整个公司。有的公司看我博客就直接开工资了,所以说想找好的前端,有发展前景的,当然是有难度的面试。面试什么难度和问题角度,发展前景如何,代表着工资多高、你能学到什么,这些自己心里也有一点x数的。别说那些什么前端要求贼高,现在前端要求什么都会真烦,前端饱和这种话,自己有多少实力,自己清楚,该拿多少,该去哪里。
别说什么虚报工作几年、面试怎么忽悠这些问题,至少,说得出这些话题的人,自己可能技术一般般或者比较菜,或者中了培训班的毒。现在前端圈一个是因为门槛低但学精难,造成没编程基础的人大量涌入,注重插件、用轮子、写页面,认为这就是前端。然后各种培训班讲的东西比较low,万年静态页面特效,jQuery+bootstrap,好一点的有过一遍vue文档做小项目,最后教怎么忽悠面试官,说什么包就业。可怕的是学生觉得666还满腔热情。大公司面试一层层流程,写两句代码,啥都看出来,忽悠谁啊。唬住50k,唬不住5k?不存在的。拉钩上面的3年以下,应届生大胆去投,很多公司其实都可以的,有实力完全不用计较什么工作经验,反而不怎么厉害的天天想各种歪路子抱一个侥幸心理。当然也别认不清自己去投5年经验以上的高级工程师或者架构师或者技术主管,大家都是学生,少扯些虚幻的。
见过50人以下、150人以下、300人以下、500人以下、2000人以上的各种规模的公司,无论哪里都会有特别厉害的人,所以别以为自己能高高在上,其实无论你多厉害也不会碾压全公司(毕业生要是能的话,那公司就可以说是...)。我和很多前端一样,开始是html、css、js,但是我下一步并不是jQuery+bootstrap,而是直接看jQuery源码(表示现在还不熟悉jQuery但是我用起来肯定没问题)。很多人沉浸在自己写的网页里面,认为这就是成功,再加上一个vue、react、webpack(有种学一下angular),认为自己已经拥有全世界,膨胀无比。就像一个阿里的面试官说的,你们前端一大堆学个vue就来面试。人家你原理,问webpack怎么写插件,叫现场写一道剑指offer的题,现场给你一个场景题写代码实现,然后很多人就挂了,回家吐槽:现在前端要求真tm高,啥都要会!去bat里面拿个贵宾卡呆个半天一天、或者和大佬相处一段时间,估计很多膨胀的人都会学乖了,都能好好沉下心来学了。
我初学也是看视频,腾讯课堂积分还换了几百块钱,然后进了很多前端群,后来发现视频和群已经满足不了我,于是自己开始捣鼓ECMA规范、看那几本大书、框架源码、原生写es6的新api、原生造各种仿造版轮子、看英文文档,发现只要基础学好,没有什么是做不出来的,看个文档一次就搞定,出错自己也能很快解决(一般就是版本坑、默认值没给上、手残)。另外,坚持写博客,学到的东西就马上输出,不过发布出来的博客比较少,个人有一点完美***,觉得不满意或者不全面就不发。面试的时候,项目经验除了公司项目其他基本都是demo级别的,我直接承认实践经验不足。但是面试官看见我一手原生js,有时候还是对我眉开眼笑的,觉得还不错,问一下源码又答出来(虽然我现场撸不出来一段框架源码)。css也比较菜,写得少,只会原理,知道浏览器渲染的一个流程,然后用起来还是不能写出一个很漂亮完美健壮的ui组件。面试的时候,虽然css菜,不过问到原理好像都能答出来。
所以说,前端总是处于鄙视链底层,就是让一堆以为门槛低不注重原理的人搞的,有事了就问插件、问框架,那边又天天喊加班,工资低,后端坑,ui要求高,pm瞎提需求。那怎么我从来没见过?
后端坑,那去沟通一下,看看是谁的锅。是自己的赶紧处理,是他的你就争赢他。要是你天天用插件做特效写html,可能完全没有反抗能力(如果人家坏一点,从头到尾都欺负你菜、忽悠你,完全是没问题),别怪世态炎凉,只能说自己技不如人甘拜下风(dota2玩家路过)。
加班?那你加的是什么班,是做重复的工作还是研究新技术?重复写繁琐的样式、调插件的特效、写一万年的繁重业务逻辑,那就是加班,然后又没有抽出时间学其他东西,早就了工作几年一年经验的人大批出现。真的,做事不要死脑筋,人类的进步就是靠懒惰的智慧,有了电器、有了交通工具、有了电子设备……等等。既然公司写的业务繁重,那就自己准备一些轮子,或者写一些可复用的代码,写一套模板甚至写一个插件,完全没事。我呆过的公司,人家都可以在固定的地方让你扩展、造轮子的,也有的可以给源码扩展新的api,这些都不是问题。闷声写代码,天天做重复的事情,也不问一下老同事有没有什么字段可以利用,有没有什么方法可以扩展。这些都不能满足?这些都不能满足的公司,那就洗洗睡吧。
ui要求高?我只能说我css菜,但是我总是可以改回来,虽然可能有点吃力,但是回头看看自己第一次写的css,自己都看不下去吧,别说ui,先把自己打赢了再说,打赢了自己,ui基本就会喊666了。做后台系统的,b端的,内部系统的,用ui框架的,也许从来不用担心。hh,想做后台系统。唉,还是c端挑战性大一点。
pm瞎提需求?一个合格的pm,不会无理取闹的,而且你只要用技术来说服他,他就服。最后取决于你们谁说服谁,谁赢了听谁。但是你得有理有据而不是做一个无脑喷,从技术上的难度和成本综合考虑。一个公司的pm瞎搞,无理取闹,不存在的。真的是的话,那继续洗洗睡吧。
工作的时候热烈讨论,活跃的氛围,下班吃饭一起玩王者一起吃鸡,哪里有那么多怨气?还有,为什么有的人总遇到那种该回去洗洗睡的公司?自己心里也有点x数吧。找工作总会有一些循环:没经验-》找不到-》没经验,菜-》公司垃圾-》菜,上次业务没完成-》加班-》这次业务没完成。没经验?不存在的,我就是没经验的,学了几个月的野生前端,学了两个月找到了实习。随便写个项目,写出深度,有挑战性的地方,比如用原生写、写一个牛逼的功能(ai)、写个骚一点的操作,加上一些正规的东西(构建工具、开发环境、写个后端、买个阿里云部署、再来个测试、i18n、最后补一个整齐的readme)。
学这玩意,还是看个人的价值取向,有的人纠结css甚至花精力去背,遇到问题又搞不定;有的人学了原理,查一下文档什么都可以做,有问题也可以解决,查多了文档也自然能背。有的人一辈子在框架api表面划水,一到解决不了的时候就上网找插件;有的人就能自己封装组件写插件,公司提薪次次都有他。有的人一段简短的代码很快完成任务,然后被技术老大说性能差到爆无扩展性;有的人就先慢慢想好怎么写,然后写了一大堆代码,语义化一目了然而且能扩展,性能和兼容性完美。
真正的程序员,不应该拿苦逼这个词来形容你的工作,你的加班不是加班而是学习,你能够按时完成任务,然后在空余时间学东西,写个博客,美滋滋的生活,这种生活绝对不能用苦逼这个词,也不能叫他“加班”,而是学习。有了这个关键的学习时间,到时候就有提薪的资本。
可能有的人要喷了。不过我说的是事实,都是赤裸裸的经历以及一些网友的经历,我自己也是个渣渣,没什么实践经验,只是分享一下我所见所闻。看牛客的都是好孩子,你们都有自己的理想,而且都为自己的工作做准备,未雨绸缪,都是很棒的。别问什么前端好不好?前端难不难?四个字:干就完了!
#面经##春招##校招##前端#