三年PHP面试总结

2017/08/07

在第一家公司工作有三年了,以前只专注写PHP,现在换工作后才了解自己知识的匮乏,现在总结下面试中会问到的问题。也是工作三年的PHP应该必须知道的内容
以下并不提供答案,只是碰到问的面试问题,因为好多我都没答上来。

1. PHP方面的问题

  1. 什么是composer?以及composer是干什么用的?工作原理
  2. PHP如何实现静态化
  3. 你了解设计模式吗?说下你最常用的设计模式
  4. 观察者模式是如何实现的?工厂模式是如何实现的?适配器模式是如何实现的?……
  5. PHP的优化方案
  6. 说下你了解的session和cookie
  7. 如何实现不基于session和cookie的用户认证。
  8. 说下你目前框架所用到的核心概念
  9. 什么是CSRF攻击,XSS攻击?如何防范
  10. 你了解RESTful API吗?说说干什么用的。
  11. 设计的原则
  12. 如果实现自动加载?不用composer如何实现?PSR-4是什么?

2. 数据库方面

  1. 你知道nosql吗?你用的nosql都有哪些?
  2. mysql索引优化
  3. mysql的优化方案
  4. mysql的事务
  5. mysql的读写分离
  6. 消息队列如何实现
  7. 查询优化
  8. msyql的存储引擎,以及各自的区别
  9. redis和memcache有什么区别
  10. 索引有哪些,你是如何做索引的?
  11. 如何分表

3. 服务器方面

  1. 说下一些你常用的linux命令
  2. Linux如何搭建LAMP环境
  3. 你们平常工作的系统环境是在哪里?
  4. 你了解Docker吗?
  5. 你说下常用的服务端口号

4. 前端知识

  1. 说下都有哪些跨域。
  2. 事件冒泡
  3. DOM事件流
  4. JS是如何实现继承的

5. 算法和其它方面

  1. 最常用的排序算法
  2. 做一个微信抢红包的功能
  3. 如何防止高并发
  4. 你们用哪种版本控制?如何避免代码冲突
  5. 在浏览中输入网址后都发生了什么
  6. 你了解socket吗?
  7. 如果打开网页的时候白屏10秒才显示出页面,如果进行排查。

其它,必问知识

  1. 说下你在项目中碰到的问题
  2. 你是如何解决的问题的
  3. 你未来的规划是什么?
  4. 你为什么离职
  5. 你觉得你的领导会如何评价你
  6. 说下你做得你公司最不错的项目,都用了哪些技术,对你带来了哪些成长
  7. 说下TCP的三次握手,为什么三次,两次不行吗?为什么挥手又是四次

这些并不是说都需要会,都要知道,只是你需要了解这些。工作中不一定会用到,但是需要你在提某项技术的时候你知道有这项技术。

笔试的时候基本都是些PHP,mysql,linx等的基础,所以基础还是需要看的,比如考察一些函数的用法。HTTP的一些状态码,一些sql语句,一些排序算法。

面试一般会看你的简历来问,所以说对于虚假的东西一问就露馅,所以不要过多的美化简历。面试的时候一般会针对你简历上的某项技术,一直深入问下去,直到问到你答不出,然后转到另外一项技术上面。

一般面试的技术都是以后你要跟着他干的人员,所以多站在对方的场景下想问题,对方肯定是希望有个能帮他分担工作压力的人。

回答不要一问一答,最好能说出你自己的理解,以及它的优缺点。

一些技术方面的问题,要回答那些实用看的见的效果,比如composer可以解决自动加载类,不用你写过多的new,比回答,composer是一个依赖管理工具,composer会帮你安装这些依赖的库文件,要强的多,当然也可以说,以前都是复制粘贴一些代码到自己项目里,然后把代码改为自己需要的,现在使用composer我可以直接引用别人的代码而不需要过多的更改。

技术不需要你全部会,(你也不可能全部会,别人就是要问到你答不出来为止,不然怎么压你工资),但是你要有自己的理解,这东西我没用过,但是我了解过一些,大概是什么什么玩意,它是个啥啥啥技术,大概是为了解决啥啥啥技术。

对于面试的是技术的,不会就不会,没用过就没用过,如果你乱扯,技术一听就能听出来你说的对不对,但是你可以说说你对这个理解,这样就不至于冷场了,蒙对了加分,蒙错了也代表你会思考这个东西,会去想。

(PS: 以上都是我自己的总结,并不知道HR是如何想的,只是单纯的觉得技术应该了解的一些技术。因为我们有专门的运维,前端等,所以面试问的其它方面问题相应较少)

Post Directory