聊聊最近找工作的一些感悟(非技术向)
我一周前从上家公司离职了。
我的上一家公司的外包公司,平时做的业务体量比较小,老板和主管都挺欣赏我,但是就个人成长来说,确实不适合再待下去了。
老板待我不错,临走时我把所有的项目都给收尾了,没有留下任何技术债,但也导致我错过了金三银四。
我在家大概看了几天面试题,就准备在 BOSS 上面投简历看一看,我觉得比较好的公司都不招人了,给发 HR 消息都是「已读」或是「送达」状态,现在疫情很严峻,很多公司都在缩减成本,而且打工人经济压力也比较大,几乎没什么人员流动,在招人的基本都是外包公司。
然后我要的薪资水平要高于平均水平的 25% 左右,这超出了大部分公司对于 PHP 程序员的预算,去面试的时候也是几乎当场就能给 OFFER,但是都没有达到我理想的薪资。
我是在北方城市,不得不面对的一个问题就是:这里的 PHP 技术栈太落后了,好多公司的框架还停留在 TP3、TP5,普遍的公司没有什么技术氛围,他们对 PHP 的基本要求就是「能出活就行」,没人在乎你的代码写的怎么样,没有 Codereview,只要不出 Bug 就没问题。
这就导致了一个 PHP 程序员的致命问题:对自己要求不高。
我在原公司也担任过一些技术面试,也见过一些工作了三五年的开发,不会用 Composer,Git,不会组件化开发,多人协作时,用 FTP 上传文件,经常出现互相覆盖代码的情况,缺乏基本的安全意识,不只是什么是 CSRF、XSS、SQL注入。
我找工作的标准有以下几点:
- 公司有技术氛围,有 GEEK 精神
- 追求较新的技术栈
- 分享交流、高质量的代码
我真的特别热爱技术,我这个人平时算是不怎么爱说话的那种,但是如果你要跟我聊技术,我能聊一宿那种。但很遗憾的是我没看到这样的公司。
有一个比较有意思的现象,就是我出去面试的时候,面试官几乎都不知道 Learnku 这个论坛, @summer 还得继续努力,哈哈。
对,这里的技术栈就像这里的经济水平一样暮气沉沉。由于几乎没有 Laravel 技术栈的程序员,所以不知道 Learnku 也很正常。
甚至有些时候我在和面试官聊天的时候,我都有一些恍惚觉得这是在聊 10 年前吗?
这里没有大厂,面试不考八股文、不考底层原理、不考算法、只聊业务,甚至我在面试的时候,都要悠着点说,我怕说的多了面试官听不懂。
面试了两天可以用四个字形容「灰头土脸」,基本上没有我感兴趣的公司,也没有能出的起我期望薪资的公司,可能还是我的能力不够吧。
一个比较残酷的现实
我不停的刷着 BOSS 招聘,发现推荐的 PHP 岗位,几乎都是几个月、甚至是半年、一年前发布的信息。
从最新发布的信息列表中,几乎很难看到 PHP 的身影,而且几乎都是外包公司这种人员流动比较大的公司在招聘。
大部分的岗位需求都是前端,还有少量的 JAVA、CPP 这些。
这里我们不聊一些大厂的 PHP 依旧活的很滋润,PHP 依旧是主力 Web 开发语言这些话。
只考虑现实生活,因为我们大部分人都是普通人,不是人人都能进大厂,我们要考虑养活自己的问题。
我觉得 PHP 程序员应该准备好自己的第二语言来应对将来的变化,至少我的切身感受是这样。
还有一个现象就是:PHP 的平均水平工资要比其他岗位低,比前端低、比 Java 低,GO 的入门级薪资水平是 PHP 成手的薪资水平。
积累很重要
我一直刷 BOSS 招聘刷到晚上 9 点多,就在我对这里的 PHP 市场感到绝望的时候,我看到了一个 Hyperf Swoole 技术栈的公司,抱着试试看的态度投了一下,对方立刻就回复了我,要查看一下我的简历,然后要加我的微信聊一下,当时已经是晚上 10 点了。
然后开了一个视频会议,对方看了一下我的简历,看我 Laravel 用的比较熟,就问了我一个很简单的问题:
如何设计一个文章列表的 API 接口
我当时心想这么简单的问题,差点就回答一个很草率的答案。但是我又多想了一下,然后我是这么回答的:
- 我会先为这个数据表创建一个 Model
- 看业务需要是否需要封装 Repository
- 注册 Get 路由,看这个路由是否需要用户 Token 鉴权,如果需要的话要放到鉴权中间件内或其他业务中间件
- 如果列表有类型参数的话,看看是否需要使用 RESTFul 路由参数
- 是否需要创建 Request 类来判断列表的请求参数,使用依赖注入的方式将模型或 Repostory 注入到控制器方法
- 使用分页器
- 看前端是否有字段或特殊的数据格式要求,如果有的话,还需要在返回数据中封装一层 JSONResource,来自定义数据返回格式
大概就这些,回答完这个问题后,面试官的话匣子就打开了,后面还问了一些其他问题,整个面试持续了三个半小时,从晚上 10 点开始,一直到半夜 1:30。只有前半个小时在面试,后面几乎就是在聊天了,我对这个公司的业务也非常感兴趣,高并发场景、还有一些 GO 语言使用场景、MySQL集群、Docker、容器,服务这些都是我比较欠缺的知识。
最终也是毫不犹豫的拿下了这个 Offer,也拿到了自己期望的薪资,在我们这按照 PHP 的标准工资来说,应该是属于中上的薪资水平了。但是我觉得我的能力跟面试官的要求还是有一些差距,这份工作对于我来说挑战也不小,是我从初级工程师迈向中级工程师的门槛。
也不是什么大厂,只是一个小工作室,主要做北京、上海,还有一些海外的项目,面试官就是老板+架构师,人也很好。因为我现在住的地方离公司比较远,老板让我先去公司拿一台 macbook,在家远程办公,后面再搬到公司附近租房子。
这其中让我很感慨的就是:积累很重要,我们平时要多学一点、多写一点、多做一点,能让别人一眼就看出你能力的东西。自己的运气也很好,遇到了这家比较和我胃口的公司,但如果没有平时的积累,那我可能就要和它擦肩而过了。
一开始面试官说我的简历上没有什么出彩的地方,后面聊到 Hyperf 框架的时候,由于我对 Laravel 很熟,一些业务流程几乎都能回答得上,除了对 Swoole 不太熟练,这个我也是很大方的承认,有不会不懂的很正常,我这个人比较实在,有一说一,不喜欢装,也不想撒谎。
后面面试官又看了我的博客,然后我跟他说了一下我挑战论坛 Laravel 板块版主的经历,他对我的整体评价是:虽然从业时间比较短,但整体经验还是很丰富,资质也不错,比较有潜力。
感谢 @小陈同学 帮我修改简历。
最后我想再说一下关于 PHP 程序员的其他选择,就像 Codinget 老师在 分享:PHPer 请停下来好好想一想,你到底想要什么样的出路 中说到的一样,我们不是美团和饿了么,非要让自己二选一,多学一些,多看一些,总没错的。
我想跟大家分享一个论语中的典故,也是一直让我不断接触新知识,新领域的动力:
『君子不器』
真正的君子,不但要志存高远,更要脚踏实地,要避开“器具”的壁垒,不能像器具的固有容量那样,把自己的才华和能量过早的固定化,要善于突破自我,发掘自我潜能,突破功利色彩,变有限为无限,既能干顶天立地的大事,也能做微不足道的小事,在任何环境下,都能体现出与众不同的个人魅力和价值。这样的人,真君子也。
我们虽然是吃程序开发这碗饭的,但谁来定义你是 PHP 程序员,还是 JAVA 程序员还是 前端程序员?是你自己。
为什么非要把自己贴上 PHP
JAVA
前端
这些标签来束缚你自己?
我们是程序员,是和计算机打交道的,不是和编程语言打交道的。
Be water, my friend.
感谢大家的鼓励,本来只是一些感悟,没想到这么受关注,谢谢大家。
推荐文章: