欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

后端 - 如何面试PHP

程序员文章站 2022-06-05 21:56:39
...
最近公司想招PHP做为后端,我是公司唯一做过PHP的前端,面试这个重担就……

公司主要是做app,安卓和iOS,所以用到PHP主要是用来做后端,可能涉及接口、数据等这方面多一些。做网站之类少一些。

我在面试的时候大致问了

做PHP多久 -> 为什么改行做PHP
对数据库和缓存有没有了解 -> 然后我也不知道追问啥
参与过那些项目 -> 主要负责哪一部分
有没有参与或开源项目 -> 人数 周期
有没有加入开源社区 或技术社区 -> segmentfault github -> 关注了哪些项目和大牛

如果是妹子的话问问婚否有没有对象,住哪儿……

但是全部问完遇到问一句答一句的就10分钟…,薪资待遇其他的人事会问

。。如何在面试者面前提高显出自己逼格提高公司形象问出优雅高贵的问题。
当然,想招一个靠谱的后端才是正经的事情。

回复内容:

最近公司想招PHP做为后端,我是公司唯一做过PHP的前端,面试这个重担就……

公司主要是做app,安卓和iOS,所以用到PHP主要是用来做后端,可能涉及接口、数据等这方面多一些。做网站之类少一些。

我在面试的时候大致问了

做PHP多久 -> 为什么改行做PHP
对数据库和缓存有没有了解 -> 然后我也不知道追问啥
参与过那些项目 -> 主要负责哪一部分
有没有参与或开源项目 -> 人数 周期
有没有加入开源社区 或技术社区 -> segmentfault github -> 关注了哪些项目和大牛

如果是妹子的话问问婚否有没有对象,住哪儿……

但是全部问完遇到问一句答一句的就10分钟…,薪资待遇其他的人事会问

。。如何在面试者面前提高显出自己逼格提高公司形象问出优雅高贵的问题。
当然,想招一个靠谱的后端才是正经的事情。

  1. * 或 SegmentFault 声望有没有 200 ?没有? **

  2. 参加过培训班?**

  3. 没有 GitHub 账号? **

  4. 不会写 Python?**

  5. ... ...


2015-10-27 更新:
今天收到消息,此答案被踩了一下,所以来解释一下 “参加过培训班” 这个问题。
前几天看到一篇文章《我前妻的故事,一个初中肄业生程序员的奋斗》,里面提到培训班出来的问题,里面说道:

她代码写得有点乱,所以,我就问她是什么出身,她就说是某大学毕业,后来上了北大青鸟的培训班学的编程。
我们业内一般都喜欢嘲笑培训班出来的学生,有几个原因:

  • 求职简历都写的完全一样。你第一次收到某培训班的学生的简历,可能感觉还不错,懂的东西不少,参与的项目也有点意思,说话也头头是道。然后,你发现后面30份简历都几乎一模一样的时候,你就会想说,简历这个样子的我一个也不想要了。

  • 缺乏自学能力。很多人就是因为觉得没有自学能力而去了培训班。去了以后觉得让我学会的任务,是老师的。这样的学生,即使最后学会了老师教的一切,往往也是废的,因为稍微变化一点的东西就学不会。

  • 不懂得任何的良好编码习惯、调试、调优技巧。培训班的老师们把课程全部都灌输给学生已经够困难了,这些自然就是奢谈。当然,国内大部分大学教出来的学生也是这样的。这些东西太庞杂,太繁琐,靠看书和老师教很难习得。必须看自己不断的去做东西,在过程中,不断的改进自己。

  • 很多老师和培训机构为了追求就业率,传授各种简历面试技巧,甚至不惜帮助学生作弊。统一教出来,所以简历和说话都是一个味道。

另:隐去原答案中不和谐的词汇。

你可以考虑直接在一些高质量的社区进行招聘,比如 V2EX 什么的,这样本身就相当于做了一次筛选。

编程语言的角度,我觉得 PHP 是一个语法上,和机制上很简单的语言,如果面试者只掌握 PHP 一门语言,我觉得是不够的。

项目经验可以问问参与的项目都是什么类型的,独立的系统,还是二次开发,还是库/框架。有没有独立负责或者主导开发的项目,有没有开源项目。可以问参与的项目中遇到过哪些困难,是如何解决的,这样可以给面试者一定的发挥空间,越有料的会聊得越多。

问问有没有 Github 帐号,使用过哪些开源项目,详细阅读过哪些开源项目。

个人认为一个合格的PHP服务端程序员必备的技能分一下几方面:

  1. 服务器运行环境
    PHP常用的几种运行环境,各自的优缺点是什么。是否有独立配置优化服务器的经历,如何配置优化的。
  2. PHP语言的熟悉程度
    PHP4、PHP5的主要区别,PHP5.3 的重大更新有哪些。之前的项目用的PHP是什么版本的,为什么选择这个版本。
  3. 开发模式和 OOP
    是否参与过多人协作项目,在多人协作项目中担任什么角色。Bug 如何管理,需求如何确定。项目采用什么开发框架,为什么采用这个开发框架。代码如何管理,测试发布的流程是如何做的。
  4. 安全意识
    是否遇到过安全问题,常见的安全问题有哪些需要注意的。XSS 和 SQL 注入分别如何防范。
  5. 性能优化和系统架构
    之前的系统 QPS 是多少。多少台服务器(顺便问问架构),每日的 PV 是多少。如果换你来优化,该怎么做。性能的瓶颈如何定位,给定一个使用场景,如何规划服务器架构。是否使用过缓存,是否使用过 NoSQL,Memcache\Redis 等适用场景是什么。消息队列是否了解过。

有没有gmail邮箱?神马,只知道QQ邮箱?滚粗!
有自己的独立博客吗?神马,只有QQ空间?滚粗!
你用什么系统?难道世界上还有除windows之外的系统吗?滚粗!

相关标签: php 面试 后端