题目如下
就这么一道题目,几乎没有做上来的。。
我的笔试题是提前告诉的,偶尔有提前背过题目来的,但是对 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 ![]() 大学 C 语言实现过一个玩具 HTTP server,看到这个表示太简单了 |
6 linxl 2018-03-26 17:11:11 +08:00 发现我也写不出来, 我甚至没咋用过这三个函数, 特别是 `fsockopen`. |
![]() | 7 Kilerd 2018-03-26 17:11:46 +08:00 ![]() 如果说原理,可能实习生有 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 ![]() 这题写出来,你能给实习生 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 ![]() 如果是提前告诉过的,要么是他不上心,要么就是水平可能真的不行,我司面试时也是提前告诉面试者要考哪些点,具体面试时会逐渐深入,一可以看重视程度,二看学习水平,三看基础,至于经验什么的,对于实习生也不太会考那些东西,我觉得楼主的面法没什么问题 |
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 ![]() @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 GG668v26Fd55CP5W 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 ![]() “回字的四种写法” |
![]() | 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 ![]() 大家好,我司打算耗巨资 3k 招一个全栈实习生,能手撸 Windows 的优先。 |
![]() | 33 huijiewei 2018-03-26 17:44:01 +08:00 不查文档我也记不住 PHP 大部分函数我都会自己再封装一遍 |
![]() | 34 hxndg 2018-03-26 17:44:27 +08:00 ![]() @wangbenjun5 我觉得你还是不要随便代表1年到 5 年的程序员好了。 |
![]() | 35 strong>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 F281M6Dh8DXpD1g2 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 ![]() 倒是看不出喷楼主的,如果是没有任何准备就出这种题目那是纯粹无聊。但很明显楼主是提前给了题目,随便你去查资料文档。这种开卷考试不就考察下实习生自我学习,寻找资料的能力和基础理论的深度么? 这么简单写出来是基本要求,如果能在看文档的时候了解周边的知识说明还不错,要是能准确记住各个环节,说明很有天赋,起码记忆力惊人,一遍过去就没什么问题。 |
![]() | 69 GG668v26Fd55CP5W 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 ![]() 面试这东西吧,最好现场直接面,过就过,不过就告诉不过,继续面别的家,一点不影响。 最讨厌提前给点题目,或者说回去学习一个月之后欢迎再面试这种,浪费时间。 很多时候跟一个新认识的人交流,聊几句就知道水平如何,能不能合得来了。 |
![]() | 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 leveraging 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 ![]() 其实吧,作为一名快速开发业务的语言,楼主这样问其实对实际的工作意义不大的,如果招聘的实习生满足一般的数据库添删改查,会 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 ![]() 这个题不算难吧,主要是这种重复造简单轮子的事情吧,做得出来的懒得做,多半最后也懒得来你们公司,我觉得这题可能起的负面作用更大一些 |
![]() | 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 fengyj 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 ![]() 写不出来,满足了楼主的存在感,给 7K 一个月 写出来了,让楼主出丑非常不爽,给 7W 一年 |
100 rubycedar 2018-03-27 00:59:51 +08:00 via iPhone 瑟瑟发抖 |