PHP面试两三事

经过近2个月的面试,总算顺利拿到了offer。每天在Boss直聘上刷简历,不断地前程无忧上海投的事情总算可以告一段落了。不得不说,最终还是在前程无忧上的1家公司找到了归属。
这里,简单地分享下PHP面试的几个小事及注意事项,仅供参考。

小处见端倪

不得不说Boss直聘是个很不错的平台,只是我不怎么适应这种模式。基本上每天都会有5-6个BOSS会自动跟你联系,但是不排除一些BOSS的性情不怎么好。
在最开始的,当BOSS联系你的时候,我犯下1个错误就是直接询问对方如下一些情况:

  • 贵公司是否双休
  • 贵公司是否五险一金齐全

有些BOSS会直接如实回复你。但是不排除如下一些BOSS直接反问你,你就只是想找双休的工作?甚至有些直接跟你说,我们现在前2个月996,你接不接受?
而以上一些特殊的情况,主要发生在一些小型游戏公司、外贸公司比较多。不知道从什么时候起,PHP工作待遇的标配就是:

  • 大小周或单休
  • 五险

实际上,我的期望并不是很高,只是双休加齐全的五险一金就好,只是公司给你购买的基数是多少也不大想太多过问。在这个过程中,还有家搞区块链的公司直接跟我说,公司实际上也不会给你太多的公积金,所以有跟没有差别不是很大。这样回复的公司,倘若是你,你会选择去面试?
记得有家游戏公司问我会不会Yaf,我跟她简单说了下Yaf的优势。结果她得知我在项目中没怎么使用过,就直接拒绝了我。实际上,谁家公司项目会用Yaf,开发起来还不如用原生PHP的7.0。当然,那家公司是单休。

学历是道硬伤

不知道从什么时候开始,连PHP的开发都要本科学历了。而我朋友给我介绍的外包公司,也必须要本科学历才能考虑是否让你过来面试。当然,随着这几年大学生毕业,就业门槛提高是在所难免的。
印象最深的就是,投了某家电子商务的公司的职位。那天人事助理联系了我,结果得知我还不是本科学历,直接跟我说不好意思,因为公司方面强制要求最低本科学历,而那家公司在2016年才刚成立。
因此没事还是多提升下自己的学历,读个继续教育拿个本科学历,至少在未来一段时间内不会因为学历而被拒之门外。

细节决定成败

你的工作年限只是过去,没有1家公司会因为你工作了5年就觉得你靠谱。在天安科技园某家公司笔试的时候,有这么一道笔试题目:

$array1 = array(  
    'a'=> '1',  
    'b'=> '1',  
    '2'=> 'c',  
    '1'=> 'c'  
);

现在希望得到下面这样2个二维数组:

$array2 = array(  
    '1'=> array(  
        0=> 'a'.  
        1=> 'b'  
    ),  
    'c'=> array(  
        0=> '1',  
        1=> '2'  
    )  
);

最开始的时候,真没看出什么端倪。后来发现,把1个数组中的键值作为键名,进行反向处理即可。于是编写了类似如下的代码:

$array2 = array();  
foreach($array1 as $key=>$value){  
    if(array_key_exists($array2,$value)){  
        $array2[$value] = array();  
    }else{  
        $array2[$value].push($key);  
    }  
}

然而正是上述的代码让面试官询问我是否发现一些问题。当时真的没发现什么问题,在他给我稍微提醒下才发现把数值给丢失了。于是我也失去了这份offer的机会。

说清楚简历上的内容

自己之前工作的老东家,由于数据量比较大,因此会对数据库进行一些优化处理,比如分表、加索引什么的。于是在简历上有这么一条:

  
对200GB大小的原始数据库进行相关指标的计算  

于是问题就来了,面试官首先会问如下几个问题:

  • 首先这么大的数据量,你使用的是什么数据库进行存储
  • 最大的一张表是哪张,最大记录数是多少
  • 你做了哪些数据优化

我觉得自己在这里犯下的错误都快可以写成一本书了。当时回答使用的是Oracle数据库,使用pdo_oci8.dll完全是可以进行操作的。而后想想,自己并没有说清楚其中的缘由。实际上,为什么那个库会达到200GB的原因,自己并没有解释清楚。
由于数据库人员为了加快数据的查询,添加了不少的索引,而那些索引就占据了差不多85%的磁盘空间。而后近2W张大大小小的表,自然而言可以达到10几到20个G的大小。
于是我又一次与拿到Offer的机会擦肩而过了。

需要熟悉的技能

如果说PHP需要熟悉哪些技能,最常见的有:

  • 熟悉Laravel
  • 使用过Swoole
  • 熟悉Redis或Memcached

为什么把熟悉Laravel放在第一位呢?因为这个框架基于组件化的方式进行开发,基本拿来即可用。直接使用composer安装相关的依赖就可以开箱使用了。
对于熟悉Swoole的,基本都是游戏公司或者一些想做IM的产品的。实际上,Swoole是个很麻烦的东西,安装起来极其不容易。虽然提供了Windows和Linux的集成包,但是你要让它与curl一起使用的话,只能从头编译。而Swoole版本4.3要求gcc>=4.8,对于使用Centos 6服务器的公司来说,你就哭着升级GCC吧。
在刚工作的前几年,特别是2015的时候,面试问的最多的就是Redis跟Memcached有什么区别。其次是读写分离、主从复制相关的内容。

把精力投放在有把握的职位

不得不说,从事PHP开发不怕找不到工作,因为满大街都是招聘信息,只是要懂得筛选。
至于怎么筛选,就要结合自身情况和能力。如果是当毕业想积累项目经验,可以选择一些微信公众号、小程序开发相关的岗位。当然还可以接收一些APP接口的开发,而这方面的职位一般都比较少。要么对应的公司注销了,要么是没什么职位空缺。
对于我这种有多年工作经验的,一般就不考虑上述职位了。更多的会关注的是薪资方面,或者深入一些底层或协议相关的内容。此时找些使用Swoole、Workman的职位就比较妥当。
很多公司招聘岗位跟实际用人的要求还是有差距的,你投递了简历一般都会约你过来面试了解下情况,如果每天不针对性的选择一些职位,而只是让BOSS主动联系你是比较难找到合适的职位的。一些公司根本不知道想找个怎样的人,毕竟他们也不懂相关的技术,然后就会比较随意给你抛来橄榄枝,让你去面试,也是耗费精力的事情。
如果能针对性的关注自己感兴趣公司的一些岗位,根据其招聘要求弥补自己当前尚未学习的技能,那么去面试拿到offer的几率就会大很多。
另外,在面试之前可以看下这个岗位的薪资,比如有如下2家公司的薪资待遇:

  • 6k-10k
  • 8k-10k

对于这种薪资上限相同的企业最好选择下限大一些的。有些公司招聘人是给不了上限,而是按下限招聘人员的。为了避免老员工对招聘的新员工有意见,HR只能妥善给你下限薪资,当然你能力超凡就可以破例。
而如果是下面2家工资的薪资待遇:

  • 10k-25k
  • 10k-15k

对于这样2家公司,公司A的薪资差距是15k,而公司B的差距是5k,还是选择公司B比较妥当。没有哪家公司的待遇区间会是在1-2倍之间波动的,不排除这样的公司是皮包公司。

结语

如果说世界上有什么是不变的,那么唯有改变是不变的。PHP还是那个适用于Web开发的PHP,还是那个戏称世界上最好的语言,只是人们的期望和选择多了。
最后,没事最好别要任意跳槽,毕竟如果真的不是活不下去,出来会发现下一家不一定比上一家好。而且,换了家公司需要适应新的环境和建立新的人际关系。

若文章对您有帮助,请打赏1块钱。您的支持,可以让我分享更多精彩的文章。转载请注明来源


知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。