回复内容:
Update: 最后加上了基础题分析说明两年多之后,更新一下新的面试题.
基础题
场景:
你入职了一家新公司.
上班第一天,接待人给你安排好了座位,然后拉过来一台没拆封的新电脑.
你把电脑连接好之后,按下电源....
好吧,这真是一台新电脑,里边竟然内置了个DOS系统!!
你找同事拿来了操作系统光盘/U盘(这个无所谓了).半个小时后,操作系统安装好了.
第一件事就是要把LAMP环境搭建起来,这样才好工作.简述搭建LAMP环境过程中的注意点.
LMAP环境搭建好之后,你拿到了第一个开发任务.给公司内部开发一个通用审批系统.公司内部有一个DNS服务器,上边已经配好了这个系统的域名,叫approving.great-company.com,并指向了你本机的ip. 你尝试访问了一下http://approving.great-company.com ,出现了apache经典的It Works页面,域名是生效的.你打算在桌面新建一个目录叫approving并在这个目录下完成这个系统的开发.如何配置apache使得访问http://approving.great-company.com的时候能够打开approving/index.php
apache配置好之后,你开始了开发工作.这时,同事给了你一份代码,是另一个人写了一半的通用审批系统.这下好多了,你不用从零开始写代码了.你翻看了他的代码,发现逻辑是这样的: 用户使用email和密码登录这个系统后,程序把这个用户的id放到了session里.通过$_SESSION['uid']就可以拿到登录用户id,然后去数据库里就能把这个用户的个人信息(比如叫什么名字,是哪个部门的)拿到了.接着,你找到了这个通用审批系统主要功能点的代码
经验所谈,禁止转载!上面的回答可能仅仅是针对初级程序员制定的,我讲讲各个层级的吧!
首先我觉得做一份笔试或机试是很重要的,不一定非得全部作对,能看到很多交谈中看不到的问题!
既然是PHP程序员得围绕PHP各方面问问
- PHP
基础:
单引号和双引号区别?
GET和POST的FORM表单的Action有什么区别?
Session工作原理
如何取出数组最后一个值?
Git分支合并
翻转字符串"example"
打印出2014-09-23 23:08:01的时间戳
Debug方法
Composer用法
进阶:
框架各部分了解程度(路由、设计规则、数据层包装、视图层、可扩展等)
面向对象的了解程度(静态方法、变量可用范围、抽象类、接口、继承、克隆、魔术方法等)
命名空间
测试用例
异常处理
缓存数据(memcache、redis、模板缓存、apc等各类缓存)
正则测试
高级:
PHP SPL
设计模式(挑选两个,比如工厂、单例讲讲)
排序算法(挑选两个,比如冒泡排序、插入排序讲讲应用点)
加密算法(挑选两个,比如sha、crc32讲讲应用点以及区别)
测试驱动开发
敏捷开发思考
最优开发模式
疑难问题解决方法
- 安全
分别讲讲XSS、CSRF原理和防范
SQL注入防范
上传应该注意哪些问题
变量覆盖问题
危险函数该如何处理
服务基线
安全域 - 数据库
事务处理
各类锁处理
分库、主从与离线
左连接、右连接、交叉连接
SQL优化
不常用SQL函数应用
曾经遇到的坑 - Linux
挑选两个命令,比如find、awk用法
文件排序方法(比如取某文件夹最后修改的文件并将大小显示为以M为单位的)
python、shell等脚本程度
写的比较仓促,有漏掉的再补充!
上面主要侧重技术层面,其实很多技术对于一些人来说学起来很快的,所以还是人聪明或学习能力强最重要。
数据缓存
数据库优化 booklist.
Talk about the web security what you know.
Do the DRY in your codes since? if yes,very good,tell me.
Tell me how do you debug your code.The more the better. 1、先明白你要做什么样的事情,然后再考虑找什么样的人。
2、找合适的,不一定技术是最好的,这一点太重要 能在多大程度上挖掘出应聘者的开发水平跟面试官的水平也是有很大的关系的, 你的水平越高, 就可以从简单的开始问起, 难度慢慢加大, 直到对方招架不住, 当然这里面要把握好度, 因为如果你真的准备聘用这个人的话, 给人留下咄咄逼人的感觉也不太好的 世界最好的语言是什么?
答PHP的走人,眼界太窄
不答php的也走人,干一行爱一行 直接给个可以联网的电脑写代码吧,能搜索出来也算。题目可以很简单,比如在pdo的基础上封装个最简单的orm,类或者函数都可以。基本上合格的可以在10-20分钟内完成,给半小时好了。很吃惊的是脱离了框架70%的人连这都不会写。能又快又好完成的,可以在这基础上深入下,再给半小时,要求改写成读写分离的(主库读写皆可,从库只读,读请求均匀分离)。
代码实现里,用绑定的方式避免注入,这是最基础的不用多说了吧? 这个问题主要在于你想招什么。是“php”程序员,还是php“程序员”。看你着重哪个了。
相关文章推荐
• PHP编译器BPC6.0已发布,聊聊有哪些新功能吧!• 汇总有关PHP多进程开发面试常见问题(附答案)• php对称加解密的5个问答小结• 验证码的使用• 使用Sphinx对索引进行搜索_php技巧独孤九贱(3)_JavaScript视频教程
javascript是运行在浏览器上的脚本语言,连续多年,被评为全球最受欢迎的编程语言。是前端开发必备三大法器中,最具杀伤力。如果前端开发是降龙十八掌,好么javascript就是第18掌:亢龙有悔。没有它,你的前端生涯是不完整的。《php.cn独孤九贱(3)-JavaScript视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了javascript知识。
JavaScript教程140056次播放
独孤九贱(6)_jQuery视频教程
jQuery是一个快速、简洁的JavaScript框架。设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。 核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等,是全球最流行的前端开发框架之一。PHP中文网根据最新版本,独家录制jQuery最新视频教程,回馈PHP中文网的新老用户。
jQuery教程115080次播放
jQuery与Ajax基础与实战
jQuery是最流行的JS函数库,封装了许多实用的功能,其中最引人入胜的就是Ajax。 jQuery中的Ajax操作,语法简单,操作方便,使Ajax从未如此轻松,前端人员从此不再为与服务器异步交互而发愁,本套课程,精选了最常用的几个方法,从基本的语法到每个参数,再到具体实例进行了全面的讲解。
AJAX教程14752次播放
Git教程(60分钟全程无废话版)
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持
JavaScript教程12799次播放