面试php工程师出什么考题好?
程序员文章站
2023-12-24 23:29:57
...
回复内容:
1 介绍自己过去工作中,或学习中,最能体现自己价值的成就。-> 等介绍完后,这个成就实现时,遇到过怎样的困难,如何解决的。
2 解释一下SQL注入的原理及危害,假设这里有一个不严谨的登陆程序,如何利用SQL注入进入。
3 解释一下跨站脚本的原理及危害,假设这里有一个不严谨的留言板,请构造跨站脚本范例。
4 解释一下数据索引为什么能提高效率。
场景SQL select * from user where area='广州‘ and sex='女‘ order by lastlogin desc limit 30;
如何设计索引?
现在有10万条 IP地址对应区间表,格式为 startip, endip, area
要求每个用户访问时都能快速分析出对方地区,请设计实现。数据库或不用数据库,要求每秒钟实现超过千次的查询。
基本上到这些对我而言就已经足够了,如果上面题目特别满意的,再附加
5 现在有一个屏蔽词列表,大约几千个词;假设有一个繁忙的论坛社区,发帖量巨大,要求用户每发一篇文章就要快速分析是否包含屏蔽词,请给出程序设计。
6 一个游戏网站,有数千个小游戏,每个游戏要做积分排行,数据结构如下
gameid,userid,gamescore
每天数百万积分提交,数据量巨大,目前要求分库处理。
要求,可以基于每个游戏id可以查询积分排行榜。 可以基于用户id查询,比如自己或好友的历史游戏积分记录。请问如何处理分库。
最后,你有什么要问的? 上面匿名用户整理的挺全的,值得参考。
工程师能否胜任某个岗位很大程度上受专业程度、周边知识、沟通能力、主动工作的意愿等多方面因素影响,对每个Team来说需要考核的重点是有区别的,一般会在面试过程中根据实际情况组合考察。
专业程度体现在对PHP的基本功的掌握和一些进阶知识的了解,比如对常见性能点、不同版本特性等,session的实现机制、include/require的差异,进一步的主流框架掌握程度、常见的性能优化策略、其作为脚本语言所具备的一些特性、如何规避PHP的性能劣势打造高并发的系统、如何保证高并发下的可用性和数据完整性等等。
周边知识主要会包括MySQL性能优化、Memcache使用、Nginx/Apache的配合、对于PV/Click等数据收集和观察的方法等。 同样的,利用curl/socket操作http/tcp/udp,进一步的RPC调用(Web Service/JSONP/Thrift等)的前后端实现,进一步的包括更多的Cache策略(远近、一致性哈希、数据一致性)、对Sharding即分库分表之类操作的了解、更多NoSQL产品知识、各类常见协议细节、安全性(注入和旁注、跨站和CC)等。
沟通能力从“简单介绍下自己”、“说说你在最近参与的项目中所做的事情”开始,根据其回答,进一步细化到考察是否能和业务部门、产品经理、运营人员自如沟通的“需求总是变更怎么办”、“怎么看待业务人员或产品经理提出的似乎并不合理的需求”、“作为一个开发人员,如何知道自己参与的某个项目在用户眼里做得好不好”等;考察团队领导能力的“作为一个小团队的Leader,你觉得带好团队最重要的点有哪些”、“团队里的工程师总是晚来早走/开小差,做为主管怎么处理这些问题”、“被分派到一个重要项目,如何激励团队尽快完成项目”等;考察其作为工程师个体,是否具备更全面的视角(从产品、设计、业务等角度看待问题的能力)的“让你运营一个论坛系统/企业微博账号,你会怎么做”、“作为一个XX产品的工程师,如何从技术的角度帮助运营人员提高ROI”等;考察发现和总结问题能力的“我暂时没有其他问题了,你有什么问题需要问我吗”。
主动工作的意愿则往往是通过了解其对加班的看法、对代码质量的态度、如何提高团队工作效率、对其参与的项目的一些细节的追问、如何提高参与的项目的代码质量或运营产出、个人兴趣爱好、以往的得意之作等侧面的了解。 谢邀,在公司作为面试官只面试过初中级水平的PHP程序员,对他们的要求基本上是能够干活,高级的PHPer的面试需要面哪些知识点我并不是很有经验,在这里只谈一下面试初中级别的PHPer。
先做一套面试题,题目基本上是基础的PHP语法,数据库设计和数据库优化,Linux基础,会在最后涉及一些深一点的内容。
根据简历和面试题的答题情况,针对他熟悉的项目进行深入。比如他做过用户相关,那我就问问session、cookie区别;实际用户登录时客户端和服务器端发生了哪些事情;改写过session 的存储吗;数据库设计是什么样的;密码怎么处理;怎么实现一个定时退出的系统等等。如果用过框架,那就问问对于mvc模式有自己的考虑吗;路由的原理是什么。。。
基本上根据答题情况,能够筛选一些还可以的PHPer,但是实际效果还是有一些不足之处。我以前招进来一个同事,面试的时候面的头头是道,但进入具体的项目中,对业务逻辑的理解让人抓狂,出东西慢并且代码写的很不好。后来就增加了一些针对业务逻辑的面试题,并且要求面试人员手写一些代码。
感觉我的答案可能不对题啊,更像是对如何面试PHPer的答案。 我咨询了一下我身边的一位很牛PHP程序员,他也是我的面试官,他的回答如下(非原话):
1.PHP基本功,字符串与数组
2.网络功能,发起curl,socket编程等
3.对网络开发的理解,tcp/udp, http 协议的讨论
PS:对具体函数的掌握要求不高,反正可以查手册。
---------------
以上 0.简单做一下自我介绍,? 然后谈一下近三年来你的得意之作?
1.看看简历,会问一些过去做的项目的用户量、pv、吞吐量、相关难点和解决方法等
2.数据库设计经验,为什么进行分表? 分库?
一般多少数据量开始分表? 分库? 分库分表的目的? 什么是数据库垂直拆分? 水平拆分? 分区等等?可以举例说明
3.数据库优化有哪些? 分别需要注意什么?
4.web开发方面会遇到哪些缓存? 分别如何优化?
5.给你256M的内存,对10G的文件进行排序(文件每行1个数字),如何实现?
对10G的文件进行查找如何实现?
统计10G文件每个关键字出现的次数如何实现?
6.假如你现在是12306火车订票的设计师,你该如何设计满足全国人民订票?
7.假如有1亿用户的访问量,你的服务器架构是怎样的? 用户信息的存储方案如何设计?
8.如果你是技术组长,所带团队任务进度无法完成你该如何解决?
如果在进度排满的前提下插入任务,你该如何保证总进度不延期?
如果有的工程师今天预定任务没有完成,你该如何解决?
9.从你的经验方面谈一下如何构建高性能web站点? 需要哪些环节? 步骤? 每个步骤需要注意什么如何优化等?
10. 为什么要对数据库进行主从分离?
11. 如何处理多服务器共享session?
12. 一个10G的表,你用php程序统计某个字段出现的次数,思路是?
13. 会告诉你一个nginx日志例子,用你认为最佳的编程语言统计一下http响应时间超过1秒的前10个url?
14. 给你一个mysql配置文件,用你认为最佳的编程语言解析该文件?
15. 给你两个路径a和b,写一个算法或思路计算a和b差距几层并显示a和b的交集?
16. 给你一个url,在nginx配置一下rewrite指定到某个具体路径?
17. 一个php文件的解释过程是? 一般加速php有哪些? 提高php整体性能会用到哪些技术?
18. session和cookie生存周期区别? 存储位置区别?
19. require、include、require_once、include_once区别? 加载区别? 如果程序按需加载某个php文件你如何实现?
20. chrome号称为多线程的,所以多线程和多进程的区别为?
21. php在2011年底出现hash碰撞,hash碰撞原理为? 如何进行修复?
22. web不安全因素有哪些? 分别如何防范?
23. 假如两个单链表相交,写一个最优算法计算交点位置,说思路也可以?
24. 假如你是技术组长? 如何提高团队效率?
25. nginx负载均衡有哪些? 如果其中一台服务器挂掉,报警机制如何实现?
26. 不优化前提下,apache一般最大连接数为? nginx一般最大连接数为? mysql 每秒insert ? select ? update ? delete?
27. mysql 数据类型有哪些 ? 分别占用多少存储空间 ?
28. nginx设置缓存js、css、图片等信息,缓存的实现原理是?
29. 如何提高缓存命中率? 如何对缓存进行颗粒化?
30. php的内存回收机制是?
31. 我的所有问题都问完了,你有什么问题问我没有? 不太认可目前排名第一的答案,有些问虽然面试的时候不知道,但是可以Google的啊.难道考历史的时候,问:曹操出生于哪个时辰? 能够知道的算是历史了解得多吗?不一定吧.
我觉得,一个程序员的能力,是如果把具体的问题抽象出模型来. 把公司遇到过的问题或业务由易到难各抽一些,让面试者提出解决方案或思路。 感觉不要面试什么过于理论的东西
而是解决实际问题的能力! 面试php工程师取决于面试官的角色
1,面试官是业务面试官还是hr。两个角色的思路和方向是不同的。
2,业务面试官的考题应该是针对专业技能方面。通常是由同岗位专业技能较强的同事来放任或是业务主管。但注意面试是为了了解对方的技能结构而不是要考倒他
3,hr方面则是从求职动机,期望的工作环境薪资待遇是否和公司匹配,注意用工风险方面。