- 什么是composer?以及composer是干什么用的?工作原理
- PHP如何实现静态化
- 你了解设计模式吗?说下你最常用的设计模式
- 观察者模式是如何实现的?工厂模式是如何实现的?适配器模式是如何实现的?……
- PHP的优化方案
- 说下你了解的session和cookie
- 如何实现不基于session和cookie的用户认证。
- 说下你目前框架所用到的核心概念
- 什么是CSRF攻击,XSS攻击?如何防范
- 你了解RESTful API吗?说说干什么用的。
- 设计的原则
- 如果实现自动加载?不用composer如何实现?PSR-4是什么?
2. 数据库方面
- 你知道nosql吗?你用的nosql都有哪些?
- mysql索引优化
- mysql的优化方案
- mysql的事务
- mysql的读写分离
- 消息队列如何实现
- 查询优化
- msyql的存储引擎,以及各自的区别
- redis和memcache有什么区别
- 索引有哪些,你是如何做索引的?
- 如何分表
3. 服务器方面
- 说下一些你常用的linux命令
- Linux如何搭建LAMP环境
- 你们平常工作的系统环境是在哪里?
- 你了解Docker吗?
- 你说下常用的服务端口号
4. 前端知识
- 说下都有哪些跨域。
- 事件冒泡
- DOM事件流
- JS是如何实现继承的
5. 算法和其它方面
- 最常用的排序算法
- 做一个微信抢红包的功能
- 如何防止高并发
- 你们用哪种版本控制?如何避免代码冲突
- 在浏览中输入网址后都发生了什么
- 你了解socket吗?
其它,必问知识
- 在项目中碰到的问题
- 是如何解决问题的
- 未来的规划是什么?
- 为什么离职
- 你的领导会如何评价你
- 你做得你公司最不错的项目,都用了哪些技术,带来哪些成长?
- TCP的三次握手,为什么三次,两次不行吗?为什么挥手又是四次
对程序员的建议:
- 一般面试的技术都是以后你要跟着他干的人员,所以多站在对方的场景下想问题,对方肯定是希望有个能帮他分担工作压力的人。
- 回答不要一问一答,最好能说出你自己的理解,以及它的优缺点。
- 一些技术方面的问题,要回答那些实用看的见的效果,比如composer可以解决自动加载类,不用你写过多的new。
- 技术不需要你全部会,但是要有自己的理解,这东西我没用过,但是我了解过一些,大概是什么,它是个啥技术,是为了解决啥技术。
- 对于面试的是技术的,不会就不会,没用过就没用过,如果你乱扯,技术一听就能听出来你说的对不对,但是你可以说说你对这个理解,这样就不至于冷场了,蒙对了加分,蒙错了也代表你会思考这个东西,会去想。