腾讯面试历程

1 篇文章 0 订阅

        最近1个多月经历了27轮面试(面试了7家公司),最后落实了“进家大公司”的基本目标,为此作一个面试经验的总结。一是用于总结自己这段时间的心路历程和学习方法,二是面试技巧,三是能给一些想要提升自己的伙伴们提供一些参考,

        年龄危机作为中年人的一种常规焦虑,为什么会这样,无非是三种情况。一、是没好好学习,到了要被市场淘汰的边缘。二、不自信,总觉得自己不如别人,不敢挑战困难,不敢挑战自己。三、没有好好总结,也懒散,然后错失机会。这是个人的一些观点,不一定对,但是是我的切身体会。这两个月来,过年我都在看书,发现原来自己漏了那么多知识点,所以每天都是看12个小时书以上,看的知识体量远超出了自己能接受的最大上限了,或许这也是对我以前不总结的一种惩罚。其实心里还有很多话想说出来,但是这是个技术贴就不多说了,那就来看看我这段时间的学习内容和学习方法。

前言:如果掌握了下面的学习内容和面试题,你进不了1,2线大厂,那就是你的问题

学习内容

1.数据结构与算法

栈、BSTree、AVLTree 相对平衡、RBTree 等价23树 黑平衡

Trie 名字快速索引、二三树 绝对平衡、线段树

hashcode key、哈夫曼树、B Tree、B+Tree

各种排序算法、贪心算法,动态规划,滑动窗口,寻路算法,BFS,Dijkstra,

2.设计模式

面向对象设计原则、单例模式+Gof23

3.机算机组成原理

寄存器、缓存、浮点。。。。。。

4.网络基础

TCP/IP/UPD/HTTP/FTP 3握4挥 FIN_WITE/TIME_WITE

5.数据库

Mysql/Mongo   (redis)

6.操作系统

Linux/Window 包括多线程的一些设计区别

7.你的主语言C++/C#/Java

尽量精通,只能说尽量精通

8.图形学

OpenGL/DX

9.计算机数学(内容有点多,但对于性能优化及图形学优化有很大帮助)

泰勒展开式 全职一些开平方要的优化(如卡马克快速法)。。。

学习方法

记忆力是作为学者持续输入知识的关键,所以找到一个好的记忆方法非常重要。我比较多用的是图像记忆法,缩词记忆,关键字记忆,并尊从艾宾浩斯遗忘曲线。每天晚上睡前我都会过一遍上面的学习内容,在脑海中快速过一遍,在脑海里编码和组织语言,看下有哪一个是我没记住的,然后放到第二早上起来复习。还有记词头法,比如记面向对象设计原则

单一职责 类负责一个功能

开闭原则 对扩展开放,对修改关闭

里氏替换 子类可覆盖父类,父类透明使用子类

依赖倒置 抽象不依赖细节,细节依赖抽象

接口隔离 使用多个接口设计,而不使用单一接口

组合复用 尽量使用类的组合 而不是继承

迪米特法则 软件尽量减少与实体的相互作用

单开里依接组迪,只背7个首字,然后每天去理解和解释完整的东西,加上工作经验和对设计模式的理解,慢慢你会发现,这像初恋,忘不了。

面试技巧

对于回答技术问题,如果你在回答具体方案上能用上合理的设计模式和数据结构与算法,你要主动的关联上。前提你关联上了,要真的懂,不然就是自己往抗里挑。我举个其中一个例子:

面试官问:你的战斗服务器端整个实现过程是怎么样的?

我的回答是:除了要回答表的设计加载,属性设计,类的设计,战斗的具体方式,指令的设计,网络的交互设计,这里肯定是要详细说的,然后,你要说到用上的设计模式。比如我用了命令模式来接收和执行每个处理指令,目的是为了让发送接收解藕,更好的实现单机或实时交互。。。。。。我AI的仇恨值排序用到了堆排序,为了提升排序速度。。。。。。

然后面试官会问你什么是命令模式,你说说它的结构设计。如果你回答不好,本题算是给自己挖抗了,如果回答的好,你就加分了。又问你为什么堆排序会效率更高。。。。。。

面试经历的公司

广州库洛,北京蓝港,上海游族,上海莉莉丝,深圳创梦天地,深圳迅龙创威,深圳腾讯

客户端我引擎熟悉的是Unity 熟悉的主语言是C++/C# 脚本是lua

面试内容汇总

重点说下基础语言是一定要熟悉掌握的,因为这些问题太多了比如C#的频繁装箱拆箱为什么会有性能问题,这种在这就不列举了

大部分答案都能从我收藏的文章中找到答案

  1. 网络的优化
  2. Epoll实现原理
  3. Mysql建立索引要注意什么,列举一些影响的情况
  4. TCP 什么是TimeWait2状态
  5. UDP 和 TCP 的区别
  6. 状态同步和帧同步的区别
  7. Linux系统Top指令用过没有,里面的cache和buffer有什么区别
  8. Linux系统的内存分为哪几块
  9. 你是怎么做性能优化的(网络优化,内存优化 资源优化CPU优化,GPU优化)这里基本是自己讲出各种能想到的
  10. GC原理
  11. Unity的内存分布,主要是哪些
  12. 为什么你的moba项目选择帧同步,网络模式为什么选UDP,为什么CPU运算会有浮点精度问题,为什么要用定点数定点数实现原理,随机数实现方式帧同步战斗的设计断线重连有哪些优化方案,是否有做战斗问题分析系统
  13. 你熟悉动画系统不,有进行哪些优化
  14. IK原理
  15. AssetBundle压缩方式,及无损压缩原理
  16. PNG有损压缩原理,ETC及PVRTC压缩原理
  17. AVL树及红黑树的插入和删除的方式,他们在使用或特性上有什么区别
  18. 贪心算法和动态归划的区别和使用场景
  19. 地形LOD算法 四叉树和八叉树使用上的区别
  20. 组件LODGroup是否了解和使用过,使用上有遇到什么问题,有什么优化空间
  21. Camera的渲染模式有几种,分别用于什么情景
  22. 大批量相同物体绘制,有什么优化方案,GPUInstancing实现过程和原理
  23. 你选用的光照模型是什么,说说它的实现原理和你使用的方法
  24. 延迟渲染中为什么不能使用MSAA,TAA是自己实现的么,怎么实现的
  25. Shader效果的实现 ,白天黑夜效果,高光模型,多种水的实现,水倒映,模型/地形贴花,消融,植物的摆动
  26. 抖音推送,好友的好友,你会使用什么数据结构来处理
  27. 字典的实现原理
  28. O1级别排序的算法是什么
  29. 寻路算法你熟悉哪些,NavMesh的实现原理是什么
  30. 对于A星你有什么见解和优化方案
  31. 你的AI是怎么实现的,说说整个流程
  32. 行为树和有限状态机的区别
  33. Tolua中lua与C#对象的绑定原理是什么,性能热点有哪些,怎么优化
  34. Lua GC原理,lua使用中的一些优化点
  35. 矩阵的作用,逆矩阵,转置矩阵有什么作用
  36. 一副图片从加载到绘制,说说GPU的整个渲染流水线
  37. Alpha测试和模板测试哪个先哪个后,他们的工作原理是什么
  38. 你使用过哪些性能分析工具,是否使用过snapdragon
  39. 说说你用过哪些设计模式,并说出他们的运用场景
  40. 无缝大世界,你用的是什么方案
  41. 你说的接缝问题是怎么解决的,为什么会产生接缝
  42. 你大世界中物件的加载方式是什么,有使用多线程加载技术不
  43. 多线程中你用的锁是哪种,有使用过无锁同步方案么
  44. C#反射原理
  45. 多态的几种实现方式
  46. new 与 malloc区别

我会持续补充我漏掉的一些问题,大家加油!!!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值