PHP 开发

3 年经验的 PHP 程序员应该掌握哪些知识

2018-06-17  本文已影响0人  上善若水_f6a4

中级PHP开发面试经验及问题总结

标签 : 中级 PHP 面试


对于互联网的从业人员来说,每年的3,4月份可以说是一个跳槽的黄金时期,也因此业内有金三银四的说法。本人在上一家公司工作三年之后也渐渐按耐不住激动的心情选择了跳槽。在经过了半个多月的面试之后,对于目前市场上对于 3 年左右的程序员的的一个技能需求大概有了了解,对于个人的短板也有了一个更加全面的认识。今天我把最近一段时间面试中遇到的一些问题和考察的技能点总结下来,以供大家参考。也希望无论是否正在求职的程序员都能有个对照,如果你 3 年经验如果对于下面的问题大部分还不了解的话,那就需要有危机感了。

总的来说,3 年经验的程序员面试一般还是以技术考察为主,基础和架构都会涉及,问题也会相对深入。一般面试官会根据你在上一家工作的经历以及你上一家公司的技术情况(业务规模,PV,数据量、并发量)对你的技术有个大概的了解,然后结合你的实际项目进行考察。考察的主要有数据库、系统、网络、架构、前端、算法、面向对象和设计模式等这些方面,数据库索引优化、高并发场景、Redis的使用几乎是每家面试的,在 Linux 系统下操作日志、文件的方法大部分公司也会考察。

下面我将分门别类列出面试中遇到的一些问题,在每个问题后面并以 * 标识每个问题问到的频率和重要性(最高为 5 ),希望能给大家面试准备和技术学习提供一个方向

数据库

数据库基本是每家面试考察的重点,主要方向是 Mysql 索引及优化,基本每家面试都会问到

Mysql 索引及其优化

Mysql 索引及其优化几乎是每家面试都需要问的问题,重点考察的是 Mysql 联合索引的最左原则,这点必须要掌握

参考资料

  1. 索引基础——B-Tree、B+Tree、红黑树、B*Tree数据结构
  2. Mysql索引优化
  3. 细说MySQL索引
  4. mysql性能优化之索引优化
  5. MySQL架构设计——MyISAM存储引擎与InnoDB存储引擎
  6. Mysql explain执行计划详解
  7. MySQL Explain详解

Mysql 存储引擎

Mysql 存储引擎也是面试官喜欢问的一个问题,主要问题如下

参考资料

  1. MySQL中四种常用存储引擎的介绍

Mysql 事务和锁

Mysql 事务和锁这类问题也有公司会问到,问到的不多,不过也会有

参考资料

  1. 理解事务的4种隔离级别
  2. MySQL的四种事务隔离级别
  3. 数据库事务与锁详解
  4. 乐观锁和悲观锁的区别(最全面的分析)
  5. 数据库锁机制

其他

也有不少公司会让你根据数据表写查询语句,知识点的话有 having 和 where 的区别以及 case when 的用法。还有就是一些实际的复杂业务场景了。

网络

网络的一些知识大部分公司也会考,由于这方面实在是短板,吃了不少亏,主要有如下问题。

操作系统

操作系统方面主要考察在 Linux 系统下对日志文件的管理和如何查看系统的负载和运行状况。在日志文件管理方面主要是 awk、sort、grep 等命令的使用

架构

架构也是公司面试考察的一个重点方向,主要是提供一个业务场景,让你设计架构方案

参考资料

  1. 分布式中 CAP BASE ACID 理解
  2. 分布式系统事务一致性到CAP,BASE理论
  3. 分布式服务化系统一致性的“最佳实干”
  4. 秒杀系统架构
  5. 高并发秒杀系统的优化
  6. 秒杀系统架构分析与实战

Redis

Redis 也是面试官非常喜欢问的一个问题,主要是考察 Redis 的一些基本知识以及应用场景

前端问题

一般面试 PHP 程序员并不会怎么问前端问题,不过也会有一些公司问到,这时候你如果完全懵逼当然是不太好的,下面是我再面试中遇到的一些前端问题。

参考资料

  1. 浏览器的跨域问题以及解决方案
  2. 前端常见跨域解决方案(全)
  3. 那些年,那些跨域问题
  4. 深入剖析jsonp跨域原理

面向对象和设计模式

面向对象方面的一些知识也会问到,不过问的不多,主要有一下问题

设计模式方面考察的并不是特别多,主要是在笔试的时候实现一个单例模式,展开的话会问几个工厂模式的区别和用法,或者问你工作总用到的设计模式

PHP 的基本知识

面试 PHP 程序员通常也会有 PHP 相关知识的考察,主要有以下几个方面的问题

算法

算法方面除了让你手写二分法查找多一些之外,很少会考察课本的基本算法了,但如果你作死把话题往这边引的话,面试官是不介意考你一下的,不过也主要是那几个常用的排序算法。不放心的话可以把二分法查找的排序算法复习一下。
不考课本上的算法,面试官一般会结合实际业务中的问题,让你设计算法解决并手写代码实现,主要考察你解决问题的思路和编码能力。

其他

除了以上知识点外,还有以下相关的一些知识会问到

通过以上总结我们可以知道,对于中级 PHP 程序员的面试,数据库、系统、网络、架构是面试的一个重点方向,架构主要针对高并发、大量数据处理,系统主要是性能分析和日志操作。面试官在面试时也会主要根据你的工作经验及简历做相应的提问。希望这篇文章能大家以后的技术学习及面试准备提供一个参考。

上一篇下一篇

猜你喜欢

热点阅读