如何面试 PHP 工程师?
程序员文章站
2024-02-12 10:01:22
...
回复内容:
问一些日常的正常的PHP问题,主要是考察应聘者的认知:- 一个包含中英文的字符串如何获得它的自然长度(看看ta是否有encoding的知识和意识)
- 问一问什么是ORM,有时候会问这个词的英文全称是什么,问问ta对于ORM有什么个人的看法?(看看ta学习细不细,有没有技术判断,PHP开发人员应该知道什么时候使用ORM)
- 问一问假如ta要自己去实现一个framework,ta会怎么设计。(看看ta对代码架构的理解,对MVC的理解)
- 问一问framework设计里的url dispatcher他会怎么考虑。(HTTP知识)
- 问一问ta对框架本身的看法
- 了解一下ta对Design Pattern的认知,比如Singleton,Observer,Factory等常用的设计模式,问一问ta对设计模式本身的看法。
- 问两三个数据库设计的问题
- 问几个前端的问题,哪怕ta的职位是PHP开发人员,好的PHP人员不可能不了解前端,而且很可能很了解前端
- 问一问ta对noSQL的了解情况(对与noSQL的认识是和传统Relational DB的认知是分不开的)
- 问一问ta碰到问题时候会如何去寻找答案
- 问一问ta习惯使用哪一个搜索引擎(如果是http://GOOGLE.COM就有加分)
- 问一问ta最近看的书
- 问一问ta的职业规划,喜欢做什么,对工作环境有什么要求
很多公司的技术人员招聘会刻意追求刺激的问题,比如很著名的微软的“下水道的盖子为什么是圆的”,不是说这些考察毫无道理,但更多的是一种“marketing”的手段。
Modern PHP / 中文版 / http://jump.im/i6 解决实际问题的能力,比现有的能力更为重要。PHP 是一门简单的语言,关键还是在于对实际需求的解决能力。问一些你遇到过的或者经验性的问题更重要。考什么算法。。之类。。崩了~ 分享一个整理的Lamp(Linux+Apache+Mysql+PHP)开发技能表,之前给社团做PHP的同学准备的。目前还不是很完善,后续会有补充。
http://blog.goody365.com/lamp/Lamp%E5%90%8E%E7%AB%AF%E5%BC%80%E5%8F%91%E6%8A%80%E8%83%BD%E8%A1%A8v0.html 好吧,对于楼上众位的问题,我有一半以上的答不上来.
面试者向来很就主观,而且都喜欢以他所熟知的领域或者知识点来刁难对方.无论你怎么问,他的知识范围和你的知识范围并集定是少之又少(除了php基础).但是考基础的语法,又体现不出水平.除非他知识面极广,这样人早有成就了.
echo '1'.print(2)+3;//这种代码很多人平时都不会用到.但查手册便知
我说点自己的经历,跟楼主的问题不太相关的。当我刚刚来到这个公司的时候,我投了简历,然后来面试了。结果,老板根本没有问我技术的问题,只是问了我一下学习经历的事情。我当时也很奇怪啊,后来在公司里面呆的时间一长,才发现,原来老板不懂技术。然后来了之后,刚开始三周,啥都没有干,没有人给我说任务。后来,就给我一个网站,然后给我一个参考网站,让我用thinkphp改造一下这个网站,中间都是我出现一个问题,然后解决不了,我就去找同事帮忙。老总说是有人带我的,结果最后还是我自己吭哧吭哧的把代码写完了。现在想来,我就是把代码熟悉了一遍,感觉有点囫囵吞枣,根本,有的代码是啥意思,我都还没有搞透。现在想来,是不是,我的基础太薄弱了。。。
1,解决问题的能力和掌握的知识,看你招聘的目的而决定其二者的平衡。了解流体力学的确会对通下水道有很大帮助,但流体力学专家未必都会疏通下水道。2,创造力,一个没有自己作品的程序员不是好程序员。编程跟写作一样,最终的目的不是敲字,而是完成作品。有人用windows图画板画蒙娜丽莎,而有人用ps就只能调调颜色,画几条线。二者的区别就在于创造力,而不是各自都会什么工具(或者懂什么知识)。
3,自学能力。编程界每天都在产生新鲜的东西,愿意自学和主动寻求新东西,会在将来的工作上事半功倍。
4,人品。这点会大大影响后期的团队维护成本。
5,代码的优雅。不在乎大括号在上还是在下,不在乎等号左右是否有空格的程序员,一定是不够谨慎、粗枝大叶的程序员,而有代码洁癖的程序员会不断挑战自己的代码,让自己的代码日趋优雅。
6,文档习惯。喜欢查阅文档,喜欢记录文档。这是团队协作与后期维护必不可少的能力。
7,足够聪明,话少。表达能力强的人,一般都不适合当程序员(大脑神经通路的影响),除非是头脑特别好用的人,但这种人很难遇到。
下面再列些我认为比较糟糕的面试,如果面试的朋友遇到这类面试,可以考虑直接走掉:
1,出各种古怪刁钻的程序题,而且要求面试者徒手解答。人的大脑是有极限的,记了琐碎的东西,肯定就装不下更多重要的知识。
2,考察的知识点凌乱繁杂。根据经验,这类公司最后的聘用薪资都低的可怜。
3,面试官盛气凌人、轻视、频繁质疑(或者频繁确认)面试者所阐述的内容。物以类聚这个成语同样适用在职场,如果你不喜欢他或者他不喜欢你,直接放弃吧,不要为难对方和自己了。 作为公司的电面和初面的面试官,说说我个人的方式,在这之前有一个背景,就是我要招聘的人是什么人,不同的人不同的面试方法。
另外,个人觉得没有PHP工程师这一说法,PHP工程师意味着知识面一定是要比较广的。
技术线(偏深度):
1. 基础知识,比如数据结构,多线程,I/O,Http协议等
2. 语言深度,比如PHP的运行机制,性能优化,APC(以及其原理等)
3. 源码阅读,比如看过哪些框架,其中的机制是怎么样的,往细了问
4. 知识宽度,静态语言,比如C、Java等,我始终觉得只会一门语言不是什么好事情
5. 项目经验,做过什么,是否复杂,负责什么,做了什么
6. 设计,这一点和第五点比较类似
业务线(偏能力):
1. 业务能力,也就是之前做过的项目(担任的角色,负责的部分)
2. 沟通能力,这一点能从沟通中就看出来
3. 主动性,之前主动推动的事物等等,哪怕是一个小的点也可以
4. 抗压能力,之前做过的项目中去挖掘细节
5. 技术宽度,了解不一定要深入,我一般会问一些比较泛的,比如多语言,Linux操作,HTTP协议等
一定会问:
1. 有GitHub或者Blog(技术热情)
2. 离职原因和同事相处(你懂的)
3. 业余时间利用(技术热情) 新手重点笔试基础
中级重点问一些功能方案,效率,模式,算法之类的
高级重点谈谈经历 架构 负载的处理等等
然后就是相亲了,看缘分 前端:
Doctype的作用。
如何隐藏超出对象部分的内容。
Name,ID有什么区别。
怎么使用jq,jq如果要是和其他类库冲突怎么办?
charset=utf-8一般写在html什么位置?
客户端的对象资源缓存问题。
如何隐藏一个对象。
Js url怎么传递中文?
http的header里面有哪些东西?
习惯使用什么工具作为前端调试?
举例说说IE和其他浏览器几个不兼容的地方。
Ajax的使用。
会不会SEO
PHP
PHP有什么东西可以提高运行效率的。
PHP如何防止注入
会使用哪些模板
如何防止一些关键php页面被下载
会不会memcached
如何防止XSS攻击?
正则表达式
Mysql
哪几种类型的存储引擎,各有什么优缺点
平时写sql语句要注意些什么
你认为的一般性系统瓶颈出现在哪些地方?缓存,数据库,php,前台。
如何优化他们。
额外:
SEO,网站分析,用户体验。
中级php程序员
- 基本技术了解
- 数据库的基本感觉,如何优化
- 熟悉的框架,MVC的理解,对象
- 代码安全因素
- 缓存技术的了解,memcached等
- 高访问量的解决方式
- 平时解决问题的方法
- 技术积累经验
- 错误经验分享
- 成功经验分享
- 对前台和服务器的了解程度
- 基本脚本和ajax的使用
- lamp环境的了解
- linux服务器
- svn方面
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
相关文章
相关视频