题目如下
就这么一道题目,几乎没有做上来的。。
我的笔试题是提前告诉的,偶尔有提前背过题目来的,但是对 fwrite、fread 等函数的参数和返回值完全说不清楚。
😌😔哎,既然背过了,为什么不一起看看文档。。。
补一个招聘信息:
#北京望京# 招聘 iOS、Android、PHP、Web 攻城狮 https://www.akaxin.com/docs/hire_document/index.html
1
wangbenjun5 2018-03-26 17:05:09 +08:00
我敢说这题大部分程序员都写不出来,甭管是 1 年还是 5 年经验,因为我从来没有去研究过!重复造轮子?没那功夫
|
2
imcnan OP @wangbenjun5 7W 与 7K 的差距就这么慢慢的出来了
|
3
wangbenjun5 2018-03-26 17:08:32 +08:00
@imcnan 如果不背题,直接站撸能写出来,这样的实习生 BAT 随便进吧,估计也不会写 PHP
|
4
thedog 2018-03-26 17:09:49 +08:00 via Android
很无聊的题
|
5
baixiangcpp 2018-03-26 17:10:37 +08:00 2
大学 C 语言实现过一个玩具 HTTP server,看到这个表示太简单了
|
6
linxl 2018-03-26 17:11:11 +08:00
发现我也写不出来, 我甚至没咋用过这三个函数, 特别是 `fsockopen`.
|
7
Kilerd 2018-03-26 17:11:46 +08:00 46
如果说原理,可能实习生有 30% 能说出了,应届生 50%,有工作经验的 90%
如果说实践,实习生可能 5%,应届生 30%,有工作经验的 20% 如果能查文档。可能 80%的人可以写出来。你这样无疑是要求应聘的人记住整个 PHP 文档。 PHP 在使用层面上讲,90% 的人不会接触到这三个函数。 如果你说这是 7W 和 7K 的区别,那么你开心就好。 |
8
tradzero 2018-03-26 17:12:06 +08:00
就问能不能查文档吧 不查文档这辈子我是答不出来了
|
9
cuebyte 2018-03-26 17:13:23 +08:00
樓主是用自研發的 PHP 框架?
|
10
myyou 2018-03-26 17:15:31 +08:00 19
这题写出来,你能给实习生 7w ?
|
11
tomychen 2018-03-26 17:15:41 +08:00
倒也不是多难...只是我想知道允许查阅帮助么?还是纯凭脑子记?
如果说要纯靠脑来记是有点难为人... |
12
jtsai 2018-03-26 17:15:50 +08:00
你直接考 http 协议比较好,这才是底层
|
13
UnknownR 2018-03-26 17:15:58 +08:00 1
如果是提前告诉过的,要么是他不上心,要么就是水平可能真的不行,我司面试时也是提前告诉面试者要考哪些点,具体面试时会逐渐深入,一可以看重视程度,二看学习水平,三看基础,至于经验什么的,对于实习生也不太会考那些东西,我觉得楼主的面法没什么问题
|
14
likai 2018-03-26 17:16:06 +08:00
这个题目难不难最大的问题是你这个 PHP 职位开的是 7W 还是 7K,
如果开的是 7W, 不难。开的是 7K,也许对大部分人来说有点难。 |
15
daxingzhesun 2018-03-26 17:17:48 +08:00 1
@likai 万一开的是 5000 呢,哈哈哈哈 h
|
16
mandex 2018-03-26 17:19:09 +08:00
我刚刚去看文档了,讲道理的话你提前给了题目,这个应该是不难的。
但是你这样招不到人啊,公司只是要个实习生而已。 |
17
lauix 2018-03-26 17:20:27 +08:00
还好曾经手写过 HTTP Server 没有什么难度,写过的人都懂。
但是没有写过的人当然不会了。 而且研究了有什么用,有那么多现成的框架用。 |
18
harker 2018-03-26 17:20:37 +08:00
说说书写结构和逻辑还好,如果不查资料直接纸上写还真是挺难,不提前做好充足准备,有思路函数也会有很多记不清的
|
19
zsx 2018-03-26 17:20:56 +08:00
记参数和返回值有啥意思吗……
|
20
lauix 2018-03-26 17:21:14 +08:00
HTTP Client 一样简单就是封装起来调用,需要好好设计了。
|
21
nosay 2018-03-26 17:22:28 +08:00
我猜如果提前告诉了题目,而面试那么多的人依然不太满意,可能还是没有吸引到优秀并且重视你们的人吧..
|
22
DavidNineRoc 2018-03-26 17:22:57 +08:00
fsockopen 的我就不说了,fwrite 和 fopen 这些参数记不过来的话,得打一顿。
可以提前查阅的话,楼主还是很人性了。他们自己不争气能怪谁呢? 如果是直接面考这个,没做过相关或者没有深入了解,我猜自己拼接请求头还是有点小难度的。 |
23
qf19910623 2018-03-26 17:23:54 +08:00
三年多的 PHP 工作经验表示我也写不出来,平时这种东西我都是直接翻文档,谁闲的蛋疼跑去背这些东西
|
24
falcon05 2018-03-26 17:27:53 +08:00 via iPhone
这个是得查文档才能写,第三方的那么多那么好,没事谁自己造轮子封装 http client。再不济用 curl 啊
|
25
mcluyu 2018-03-26 17:27:58 +08:00
欸..所以我要是能力这么强值 7w 的话,我为什么要去你们这么一个要用户没用户、要品牌没品牌、找不到看不到未来盈利点的公司上班嚯,还要全栈极客, 这样就能一个人干几个人的活了呢,省钱,还能出活,代码质量还都挺高,嗯为你的机智点赞
|
26
zjsxwc 2018-03-26 17:30:02 +08:00
不难,但要查文档
|
28
xuanyuanaosheng 2018-03-26 17:38:30 +08:00 via Android
建议考那种基础的理论了解程度,你可以详细问下 http 协议,请求返回码什么的,或者库,一般写程序都是一边查,一边写,不然轮子太多也不好记哈
|
29
cxbig 2018-03-26 17:39:02 +08:00 4
“回字的四种写法”
|
30
lifeintools 2018-03-26 17:39:08 +08:00
提前告诉了 应该可以的。
|
31
godsoul 2018-03-26 17:43:24 +08:00
给看 RFC 文档和 PHP 文档就可以写出来,我就不信题主可以不出错的背出 http 协议规则,当然如果能上机,请求下也可以复制出来。
|
32
coffeSlider 2018-03-26 17:43:42 +08:00 via Android 21
大家好,我司打算耗巨资 3k 招一个全栈实习生,能手撸 Windows 的优先。
|
33
huijiewei 2018-03-26 17:44:01 +08:00
不查文档我也记不住
PHP 大部分函数我都会自己再封装一遍 |
34
hxndg 2018-03-26 17:44:27 +08:00 1
@wangbenjun5
我觉得你还是不要随便代表1年到 5 年的程序员好了。 |
35
KIDJourney 2018-03-26 17:45:05 +08:00
我会写,你给 7w 吗。
|
36
hxndg 2018-03-26 17:45:13 +08:00
挺一下 lz 吧,工作以后发现即使做不出来能够体现思路也是可以的。
|
37
Chrics 2018-03-26 17:46:07 +08:00
讲真我 Laravel 贼溜,这个不会做。。
|
38
mcfog 2018-03-26 17:47:56 +08:00
嘛,就我个人来说,实习 /应届这头和资深老司机那头,我都是“请开始你的表演”的,前者主要看潜力,当前水平无所谓,后者问这些 general 的问题没啥帮助
最近开始尝试完形填空,感觉还不错 |
39
zhangfeiwudi 2018-03-26 17:49:53 +08:00
这东西,不查文档真做不出来,你让我用 C 写一遍我能写出来,php 是真没研究过这几个函数,无非就是几个函数的调用嘛,我觉得能把伪代码 或者思路说出来就行了
|
40
bfdh 2018-03-26 17:50:25 +08:00
貌似难点不在 PHP,而在面试者是否熟练掌握 http ?
|
41
zakokun 2018-03-26 17:52:31 +08:00 via iPhone
你这何必呢,就是一个实习生
问问 cookie session 的概念以及在用户登录中的一些应用 php 连接 db 的一些函数和基本用法 问问个人写的项目 用了哪些高级的用法 这不就行了嘛 |
42
groot 2018-03-26 17:54:57 +08:00
"列出您知道的 PHP7 中的新特性"
相比之下这题是不是太简单了。。。 |
43
liprais 2018-03-26 17:55:17 +08:00 via iPhone
难怪 php 日常招黑
|
44
joeke 2018-03-26 17:57:39 +08:00
其实吧 也没什么好记得啊,fsockopen 这个很不常用吧,另外两个用过知道的吧
|
45
moult 2018-03-26 18:01:34 +08:00 via iPhone
再进阶一题。使用 php 这三个函数进行 smtp 协议发邮件。
退一级的话,使用 telnet 命令完成一次 http 请求。 |
46
ooh 2018-03-26 18:01:54 +08:00
出题水平不行
|
47
imcnan OP @wangbenjun5 可以背题,我的题目是提前给的。但是只求背题的时候学一下看一下文档,不要只是背英文字母,这是学习方法的问题。
|
48
invoke 2018-03-26 18:04:08 +08:00
你提前出题 给我一点时间查文档 那就能写出来。
但是讲实话,我写 PHP4 年了 fsockopen 真的一次都没用过。 |
50
imcnan OP @likai 我指的差距就这么慢慢的出来了,指的是方法。
碰到自己不会的,是只 Google 一下然后背英文字母,还是期间真的认真看了一下文档。 |
52
sigouyi 2018-03-26 18:07:08 +08:00
应届生的时候出来找工作碰到过这样的,总算在 v 站发现一次了,吐槽一句,出这种题的真蛋疼,没水平
|
53
RorschachZZZ 2018-03-26 18:30:51 +08:00
如果我碰见这个题,我只写思路不写代码。
|
54
Sapp 2018-03-26 18:42:33 +08:00
这和前端手写 ajax 异曲同工吧
|
55
facetest 2018-03-26 18:43:20 +08:00 via Android
lz 自己能不看资料写出来么
|
56
sunmonster 2018-03-26 18:48:23 +08:00
@imcnan 既然工作中直接用的是 curl,那谁会去记用不着的概念东西?所以还是回到点子上,你只是为了面试而面试,而不是招一个能工作的人。还是那句话,编程是为了解决问题,不是用来显示自己有多么聪明的。
|
58
gbin 2018-03-26 18:51:27 +08:00 via Android
所以说实习生到底给多少钱呢?
|
59
moonsn 2018-03-26 18:57:06 +08:00
这道题考了什么?对 http 协议的了解?对三个不经常用的函数的熟悉?没啥意义。
但是,可以上网的话,写不出来确实不应该(也有可能没学过计算机网络?)。 |
60
azhi 2018-03-26 18:57:35 +08:00 via Android
open 下 host 然后 write 后面的 path,然后拼 header 就可以了,难道你们异步时不是这么玩的?
|
61
vincenttone 2018-03-26 19:00:27 +08:00
考的主要还是 http 协议吧,如果楼主的公司是个小公司,九成的人应该都答不上。
|
62
lastpass 2018-03-26 19:01:56 +08:00 via Android
能上网倒是没有什么问题,只要不是徒手撸。
|
63
neurocomputing 2018-03-26 19:01:56 +08:00
为什么要能够将“ fwrite、fread 等函数的参数和返回值”说清楚?
文档是用来查的,不是用来背的,笔试考这玩意儿有意义吗?笔试做不出来就意味着不能顺畅写东西吗? 你这笔试能够考出对语言的驾驭能力、编程思路和经验吗? 说实话,我觉得你这题出得挺 low 的 |
65
liuzhedash 2018-03-26 19:03:41 +08:00
没记错的话,大部分 PHP 虚拟主机供应商都屏蔽了这三个函数。。
|
66
zhongkouwei 2018-03-26 19:06:51 +08:00
这就是传说中的偏题了,能写出来的不一定适合你,写不出来的也不一定是菜鸡。我感觉面试题还是要以全面掌握面试者的各方面素质为目的,而不是难倒他们
|
67
MeteorCat 2018-03-26 19:11:02 +08:00 via Android
我 PHP 我写不出来,但是 C 写的出来,我感觉不限定语言的话,感觉没什么问题
|
68
v2dead 2018-03-26 19:11:11 +08:00 1
倒是看不出喷楼主的,如果是没有任何准备就出这种题目那是纯粹无聊。但很明显楼主是提前给了题目,随便你去查资料文档。这种开卷考试不就考察下实习生自我学习,寻找资料的能力和基础理论的深度么?
这么简单写出来是基本要求,如果能在看文档的时候了解周边的知识说明还不错,要是能准确记住各个环节,说明很有天赋,起码记忆力惊人,一遍过去就没什么问题。 |
69
falcon05 2018-03-26 19:13:52 +08:00 via iPhone
@imcnan 这无非是想考察对 http 协议的理解,用 curl 一样可以看出来,非要用冷门的东西,舍本逐末,那你试试用 file_get_contents,stream_socket 之类写,看看你自己要撸多久
|
70
MeteorCat 2018-03-26 19:17:55 +08:00 via Android
对了,如果能够用伪代码实现并且说明要点的话,我个人感觉就算通过了,比如 HTTP 的协议 header 构建,body 构建和分包问题、get/post 的传输区别等,不需要具体代码,写个伪代码就行了我感觉哪怕不完善也说明有基础只是生疏了,但是完全没概念的话,我感觉确实是不合格的
|
71
hheedat 2018-03-26 19:18:13 +08:00
我能写出来,不过我觉得这题没啥意思
|
72
livc 2018-03-26 19:20:25 +08:00 1
面试这东西吧,最好现场直接面,过就过,不过就告诉不过,继续面别的家,一点不影响。
最讨厌提前给点题目,或者说回去学习一个月之后欢迎再面试这种,浪费时间。 很多时候跟一个新认识的人交流,聊几句就知道水平如何,能不能合得来了。 |
73
kennedy32 2018-03-26 19:25:18 +08:00
实习生给 7 万?
|
74
future0906 2018-03-26 19:33:31 +08:00
不就是写个 http 解析的状态机?随便写啊。。。。
那么问题来了,既然我要手写 http 解析,我为什么还要用 php ? |
75
2225377fjs 2018-03-26 19:42:58 +08:00
能力强的看到你这题目还要过来,那也是见了鬼了
|
76
vastwelkin 2018-03-26 19:45:58 +08:00
是这样的,一道面试题最重要的是有针对性地考察面试者的某方面的能力。
如果想考察面试者对 HTTP 协议的理解,可以考察面试者针对不同的 header 解析,或者直截了当问 chunk 的概念等等;如果想考察面试者对 PHP 机制的理解,可以考 php session,甚至深挖 php session 的不同实现和部署。 想用一道大而全而基础的题来考察面试者的综合能力,估计可能会比较难,考察结果也未必客观准确。 |
77
Hardrain 2018-03-26 20:02:12 +08:00
如果用 curl,算通过吗?
一定要用 fsocksopen ? |
78
jinganchuqi 2018-03-26 20:04:17 +08:00 via iPhone
这个我以前在鸟哥博客中刚好见过,自己还动手实现过 要不你给我 7W😂
|
79
vigoss 2018-03-26 20:12:54 +08:00
熟悉这两函数的 fwrite、fread 返回值入参的意义是啥?背完 php 文档就有 7W 了么
|
80
assad 2018-03-26 20:13:25 +08:00 via Android
不查文档,估计你也写不出来,除非你背书了
|
81
nicktogo 2018-03-26 20:14:48 +08:00 via iPhone
能给 7w 就有人能秒做出来
|
82
kookxiang 2018-03-26 20:19:07 +08:00
看了下,我好像写得出来……
不对… 大学写过。。。 |
83
onion83 2018-03-26 21:00:35 +08:00 7
其实吧,作为一名快速开发业务的语言,楼主这样问其实对实际的工作意义不大的,如果招聘的实习生满足一般的数据库添删改查,会 css/html,懂点 js,且有点数据校验意识,能完整靠自己开发出一个小系统足够了,作为实习生有成就感,作为企业也有实际用处。
而且,如果楼主确实需要明确考察应试者对 Socket 操作的熟悉程度,为何不使用更为底层的 Streams 系列函数?顺便考察 udp/tcp 的使用场景,buf 应该设多大,拆包和粘包的方法,边界处理,超时等。如果对方这方面很熟悉,可以进一步考察为什么 buf 要设这么大,了解 MTU、MSS 对程序的影响么。 回到楼主的问题,我回抛两个问题给大家思考: 1、在使用 POST 往服务器提交数据的时候,有没有遇到服务器返回 100 的情况,为什么不是 200 以及如何处理。 2、请使用 fsopen 函数,指定路径,实现文件分块 POST 上传( multipart/form-data ) 我觉得作为一个企业的面试官,首先自己心态要平和,想清楚你为企业招聘的是 “工程师” 还是 “科学家”。在契合企业利益的前提下,尽可能满足初入职场新人的求职体验,为其指引正确的职业成长路线。 而不是以刷 LeetCode 为荣,以写 CRUD 为耻。 |
84
gamexg 2018-03-26 21:05:12 +08:00
应该是 php 工作中用的比较少。
go 表示成天的写网络应用,cookie、文件上传需要查资料,其他的没什么问题。 不过提前提供题目还搞不定,就太奇葩了。 |
85
xcssum 2018-03-26 21:11:11 +08:00 via iPhone 1
这个题不算难吧,主要是这种重复造简单轮子的事情吧,做得出来的懒得做,多半最后也懒得来你们公司,我觉得这题可能起的负面作用更大一些
|
86
zjyl1994 2018-03-26 21:41:48 +08:00
怎么说呢,对 CRUD 实习生太难也没必要,对手撸 HTTP 的老司机,谁会来面实习岗啊。
|
87
rekulas 2018-03-26 21:43:41 +08:00
感觉出这种没什么意义,这题考程序员对这几个(普通项目可能一辈子都用不到的)函数的用法以及对网络协议的熟悉,能上网查文档的话正常 1 年经验以上的应该可以写出来,但这样似乎你也只能证明对方查阅和理解文档能力尚可吧。。。
我面试就喜欢出不依赖任何类库、函数的基本算法逻辑题目,然后询问面试者对这个流程的理解以及考验对方算法水平,就我以前的接触来看,经验丰富的不一定算法高,但是算法好的解决问题的能力越强,经验越丰富 |
88
jhdxr 2018-03-26 22:16:14 +08:00
这题目在提前给出的情况下,我实在没能看出有这么多喷点所在啊。。。而且手撸一个 http client,我觉得再往前推几年虚拟主机盛行的年代不是必备技能么?毕竟谁知道环境里装没装 curl,只能所有可能的方式都写一遍来尝试啊。。。
|
89
okzpy9425 2018-03-26 22:16:35 +08:00
题不难,就是没什么意义。 当然,如果你们公司就是专门搞 web 服务器开发的另说。。
|
90
bolide2005 2018-03-26 22:20:29 +08:00
已经提前给题目的话没毛病,这都开卷了,程序员解决不了基础技术问题?
面试怎么问有意义的问题?问了你们又要说,‘拿业务问题在面试的时候找解决办法,low ’ |
91
cnwtex 2018-03-26 22:55:25 +08:00
php -S localhost:8000
|
92
bucky 2018-03-26 22:58:53 +08:00
偶尔有提前背锅题目的,说明大多数人根本就没看到你的题目,应该都是海投
|
93
greatbody 2018-03-26 22:59:15 +08:00
很简单啊
|
94
huiyifyj 2018-03-26 23:02:39 +08:00 via Android
现在实习生都要面对这种刁难不常见的那种题么?
|
95
easylee 2018-03-26 23:05:27 +08:00
在校生......在 V2EX 看到很多招聘要求或者大家给出的面试题复现,里面的操作题笔试题我能很快搞定,基本站撸,但是一说实现方式和查文档之类的,死翘翘。
我这样是不是很危险?卧槽! |
96
iyaozhen 2018-03-26 23:54:19 +08:00 via Android
如果是提前告诉的还可以接受。要是现场出这个有点过了。还不如手写快排
|
97
akira 2018-03-27 00:05:51 +08:00
这道题应该是加分题,我猜测大部分写服务器端的都不会做
|
99
johnnie502 2018-03-27 00:36:20 +08:00 1
写不出来,满足了楼主的存在感,给 7K 一个月
写出来了,让楼主出丑非常不爽,给 7W 一年 |
100
rubycedar 2018-03-27 00:59:51 +08:00 via iPhone
瑟瑟发抖
|