V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zgxxx
V2EX  ›  职场话题

一个 1 年工作经验的 PHP 程序员是如何被面试官虐的?

  •  
  •   zgxxx · 2019-04-11 11:08:53 +08:00 · 1569 次点击
    这是一个创建于 2053 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

    首先需要说明的一点,本人只是一个毕业一年,只有一年工作经验的普通 PHPer,能力有限,这篇文章只是将我这几周来的感受和体验分享出来,希望能给许多像我一样,或者互联网行业的新手带来一些收获,当然哪里说的不对或不足还是希望大神们可以加以点评补充。

    金三银四,每年这个时候都有很多人想借此机会跳槽或者投身某个行业,目的很明确:需求更好的环境,兑现自己的价值。特别是近十年来非常火爆的互联网行业,无论是刚毕业的,敲代码敲了几年的,还是跨行进入 IT 行业的,都希望自己能“拿高薪,学知识,享福利”,而如今,高校扩招,IT 门槛降低也导致市场太多“低技术,高目标”的幼年程序猿(我也是其中之一),再加上今年互联网寒冬,僧多粥少,想要寻求一个面试机会都不容易,更别说拿 offer 了。我是不甘心浪费时间在目前这家公司,具体原因不说,所以我下定决心找一份新的工作,一方面证明自己,另一方面想让自己走出舒适圈,给自己多一点挑战。

    狼狈的三月

    一开始心高气傲的我,用半天时间把自己的简历整理了一遍,那时候我的简历应该还是不错的(后续文章会详细描述如何优化简历),第二天开始在 Boss 直聘和拉勾上开始投递简历,一开始投递的是广州地区 PHP 的 1-3 年开发岗位,虽然反馈比例不高,但还是很幸运收到几个面试邀请。接着我留了两天时间给自己复习,其实也就是在网上 Google 一下 PHP 面试题,打开十几个标签页各种面试题,这就是我所谓的“多刷题”操作,结果可想而知,看的东西很乱导致去面试那天基本忘的七七八八,有很多还只是记住一些答案,压根就没清楚,惨状见下面具体面试。

    准备不充分 -- 第一轮不过

    第一家,广州琶洲一家环境超级好,福利也不错,主营美颜 APP 的公司,这也是我最感遗憾的一次面试机会。一开始有笔试,主要内容有点偏向 C 语言那方面,PHP 的几乎没有,仅靠大学的模糊知识写了一些答案,具体的时间有点久忘记了,这里就不详细说笔试内容。主要是第一轮面试:

    • 第一个问题:Redis 的 5 种数据类型,只答了一个 String。

    • 第二个问题:你知道 Redis 怎么做到数据落地,同步数据库吗?连数据类型都不知道,我只能说不清楚,没用过。

    • 第三个问题:如果数据库量很大,你怎么优化?我的回答:做好索引,mysql 语句优化。

    • 第四个问题:在工作中你做了哪些 mysql 语句优化?我的回答:我用 where in ( id1,id2 …)来做优化。。。

    一年的 PHP 开发中其实我没怎么用过 Redis,就简单的用过 String (也看出我真的菜)

    其实 where in 那个是 Laravel ORM 预加载使用 where in 来解决 N + 1 问题(具体可以看 Larave 手册),where in 并不比 left join 效率高

    最后聊了差不多 20 分钟,就让 hr 来问我一些问题,例如我对公司的印象等,应该就是走走流程,接着就让我回去等通知,当然也就没通知了。

    基础不过关 -- 第二轮不过

    第二家,深圳大学旁边一家保险业务的公司,给了我最大的打击。没有笔试题,第一轮是一个差不多和我同龄的年轻小伙来面试,问的问题很简单,基本都是网上那些面试题,比如 tcp 和 udp 的区别,三次握手,include/require 的区别等,我基本都回答出来了。接着是一个头发相对稀疏,经验应该更加老道的人来面试我:

    • 我的简历有提到一个 JWT 相关的知识,所以他让我描述具体的东西,和 session 的区别等。项目时间有点久,我也就简单的把 jwt 的东西跟他说,但是明显不能满足他,一直问到底层,那时候我就很慌了,更加想不起来了。

    • PHP 这些框架是怎么实现文件自动加载的?我回答魔术方法__autoload 和 include,对方反问了一句再具体一点,还有没有别的?我实在想不出

    • 写一个链表吧?不会。。。

    其实有关 JWT 的问题,面试官应该是没用过,服务器这边其实有一个私钥 Secret 字符串用来签名,从而达到前后加密解密验证的效果

    第二个问题应该是还有一个 spl_autoload_register 可以用来注册多个文件

    第三个链表,后悔大学没好好学数据结构,后续得补一补

    最后面试官直接给结果:很抱歉,你的不适合我们公司,希望你之后多去补一补基础知识,不要只停留在会用,要知道为什么可以这样用。虽然打击很大,但是也是这个面试让我认清自己,知道自己欠缺的知识面太多,基础太差了。

    还是很喜欢这种面试直接给面试结果的。

    实践不足,知识面太窄 -- 直接不过

    第三家,面试官是大牛,之前和韩天峰大神一起做朋友网的,人很好,很亲切。没有笔试,没有自我介绍,主要问我的工作经历,印象比较深的是:有没有抓过包,用什么工具,对 TCP 的理解,有没有用一些语言来实现 TCP 的过程。。。无奈自己真的没实践过,知识面太窄了,仅仅知道一点死记硬背的知识,聊了 20 分钟,就走了,也没结果了。

    白高兴的 offer -- 幸运过了

    第四家,也是在深圳,招聘网上看到的公司不小,有 100-500 人,但发 offer 却是另外一家公司,网上查了一下貌似是子公司,有点外包性质。没有笔试,一个年轻的小伙子面试的我,主要问我一些有关 Laravel 的内容,一般手册上都有,我答的也不怎么完整。最后有个问题:你知道哪些设计模式,六大原则是什么?对设计模式我只停留在单例和工厂模式,六大原则也回答不完整。

    最后很意外让我过了,我想是公司急需人员。给的薪资也挺满意,心想面试了那么多家终于有一家肯收留我了,也答应了对方下一周就过去上班。第二天回公司第一件事就是找我们总监要辞职,要一个星期后走,结果被告知要走一个月的交接流程,其实那时候我东西基本交接的差不多了,项目也不大,但是公司给的理由是,如果你没有工作交接说明你平时没做事,工作不饱和,会影响后续招人。直接把我整懵逼了,一方面我不敢提前裸辞,很多人都是互联网寒冬,所以就等到拿了 offer 再提离职,这时候老东家行政放话一定要走一个月流程,新的公司又继续一个星期后到岗,怎么都没得商量。。。最后,我还是放弃那个 offer,一方面想到这家公司有点外包性质,另一方面以子公司名字来发 offer 总让我有点担心,毕竟之前实习的时候,有一家以腾讯的名字来招聘,进去后发现是腾讯汽车代理商。。。

    结尾

    以上便是三月份我面试过比较印象深刻的公司,基本都是被虐了,当然无非都是自己没有好好准备,基础不好的问题,导致浪费了很多机会。所以在此还是要告诫大家,如果下定决心要走人,要做好十足的准备,这种准备不应该只是所谓的刷面试题,后续我会另外开一篇文章用来具体讲述我在多次面试失败后,如何花两个星期做到——”有计划, 高效率,优简历“,最后成功拿到自己心仪的 offer。

    有计划——如果规划好每天的学习目标,主要有操作系统,计算机网络,mysql 等近 10 个方面知识

    高效率——我会介绍我如何高效记住一些核心知识,尽可能覆盖面试知识点

    优简历——面试是第一步,简历是最关键的,我会介绍我是如何优化自己的简历

    三月份投的简历应该有上百家,反馈的十几家,给面试的应该就只有七八个吧,除了上面说的几家其他的都是一些外包或创业公司,甚至有人找过我要我跟他们一起创业,和一个前端实习生一起开发小程序(笑哭)。总之目前这种市场状况不好,但是还是有机会拿到面试机会的,如果你刚毕业,最好走校招,如果你和我一样,一两年工作经验,更应该好好准备,而不是埋怨环境不好,只想不做。当然,一些 985,211 的大神就应该找大厂或者考研,目标更远大一点,我是比较考虑现实的人,目前我的实力和教育背景想要去大厂是很困难的,所以只能在条件不至于太差的中小型公司寻求成长。程序员更应该用实际行动来证明自己,脚踏实地,不要眼高手低,这便是我的个人想法。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2805 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:22 · PVG 22:22 · LAX 06:22 · JFK 09:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.