简单汇总一下近期招聘的心路历程。最近公司扩招,才发现找一个Ruby工程师是多么地不容易,也深感当年学校只教Java的做法是多么明智。

Ruby工程师一个难求

说说结果,最终我们还是招到一位有经验的开发担任公司Ruby工程师一职,只能说是上天眷顾吧。为此我们“被迫”提前开放了远程岗位,往团队远程高薪的目标又往前踏了一小步。只能说小伙伴来得早不如来得巧啊。

然而在此之前,招聘过程还是遇到了不少的冷眼。除了在社区发帖,每天基本上都要去Boss直聘上面去“撩”候选人。开场白大概都是“云长科技正准备招聘Ruby工程师,您有兴趣吗?”回答基本都是

您好,我这边暂时不考虑换工作。

我会比较在意大小周。

我想去大团队。

又因为Boss上面有Ruby经验的人还是比较少的,只好把其他语言的都撩了一遍“我看您有比较丰富的后台开发经验,不知道有没有兴趣写Ruby?”

n.times { puts '没学过' }

真的想加一句“Ruby很简单的,可以考虑学学”(你看我上面的循环多简洁)。后来想想,自己这样确实有点不太厚道。如果对Ruby这门语言没啥兴趣,别人凭什么要放弃Go,Java,Python,PHP,JavaScript这么多语言的工作机会而投奔一门冷门语言呢?毕竟对于一些开发者来说,工作之余也不会再学习别的东西了,那就有可能干了几年Ruby之后变得只会Ruby了。说不定未来Ruby的岗位更少,而随着年龄增长,反而不利于跳槽。何必为了一份薪资也不是特别高的岗位,选择一门冷门的编程语言呢(哪怕这门语言挺不错的)?

不过说实在的,看到Boss上玲琅满目求职意向都是深圳·Java深圳·Go深圳·Python的简历,Ruby圈的吸引力还真是自愧不如啊(估计有Ruby字眼的简历基本都被我“撩”过了吧)。再仔细看看Ruby之外其他热门岗位的薪资,福利水平,真的是抱歉打扰了。

为何还在用Ruby

说实在的,笔者也是一个30岁的人了。特别经过这一两年产品的洗礼,真对写什么语言没有那么执着了。昨天还跟小伙伴讨论,要是ActionCable性能方面无法满足直播聊天室的需求,可能要用别的语言来实现了。Go/Rust/Elixir/Java都无所谓。不过不得不承认,几年前,那时候笔者还是前端工程师(那时候年少无知),确实是看不上写Java的。毕竟自己写的是动态语言,Java有多臃肿自己是深有体会。再加上当年学校只教Java的行为确实让人厌恶,导致后面对Java都有点排斥了。不过并不排斥静态语言,写编译器的时候我用C呢。

前同事也劝我,Ruby以后不好招人,不如换别的语言。Node.js,Python,Java,Go后面都比较好招人。经历过这些天刷简历的过程,对同事的说法是越来越认可了,学校当年只教Java是多么明智,现在整个市场几乎都是Java的。毕竟大学生毕业的首要需求无非还是找一份稳定的工作而已,肯定是往工作岗位多的地方走比较稳妥。Ruby这种在中国越来越不吃香的冷门语言,有些时候确实没必要太过于执着。要是哪天遇到某种场景,用其他语言来实现更佳,那我肯定也会去尝试一下。只不过我们现在还在用Ruby,理由如下

  1. 写Ruby挺舒服的,过程还是挺享受的,而且一个人就能够完成很多工作。
  2. Ruby On Rails这套框架提供了不少实用且便利的功能,让我们公司前期可以进行快速试错,验证了一个又一个想法。依旧是2/8法则,Rails目前我也觉得够用,我能用很少的代码解决日常80%的问题。
  3. REPL是个好东西,调试挺方便的,配合Rails的ActiveRecord,线上修复异常数据都感觉比较让人安心。
  4. 人手不足,2022-03-14之前,公司的后端开发就只有我一个。就别提什么重写了,要一个人在短时间内完成试错以及一些日常的需求,Ruby On Rails无疑依旧是个不错的选择。
  5. 除了招聘过程中候选人不多,招聘相对困难之外,目前并没有别的需要重写的理由。公司情况也还没好到能像大厂那样,没事招一帮人进来把已有的系统重写。现在还是多少有点勒紧裤腰带过日子。
  6. ....

真要列举这个列表可以一直延续下去,相信能跟大伙劝我用别种语言重写的理由一样长。就招聘的那点便利以及所谓的性能提升,真的不足以让我们用别的语言对现有系统进行重写。后面遇到瓶颈,再用别的语言去优化倒是有可能。

候选人多就容易招了吗?

至于是不是候选人多,招聘就比较容易?其实这个问题根本就很难有定论。虽然笔者的公司不大(现在技术团队也就8个人而已)。不过呢,倒是设计师,测试,Web前端开发,后台开发,App开发这些岗位都有。基本都是笔者招聘的,我发现了这样一种现象。

热门岗位人多,招人也不见得容易

我记得回流刚开始的时候需要一位前端工程师,因为是热门岗位还得给Boss直聘掏钱。职位一发布,十几封简历都向这边投来。当时就心想:“这下稳了”。这么多候选人,估计很快就能招到合适的人选了。没想到的是,筛选简历也挺痛苦的,毕竟大家写的技能都差不多,又不可能每一个都约面试,只好采取偏激点的做法了

  1. 因为穷,价格范围超出我们设定范围的直接不看了。
  2. 有Gmail并且有Github账号的直接约面试。
  3. 简历上写着精通的,直接pass。
  4. 项目经验不怎么写,列了一大堆国家证书的直接pass。
  5. 有用过Mac/Linux而不仅限于Windows的,直接约面试。

我承认我的偏激,但是应对这么多简历,还是多少有点效果的。最后从众多简历里面挑选几个来做线上面试。然而.....你会发现很多技能写得天花乱坠的,连个基本的绝对定位都写不利索。而且还喜欢跟你扯些有的没的,面试官倒是成了他们最好的听众了。最终可算是在众多简历中挑选到一个合适的人选,如今依旧是我们团队唯一的前端工程师,只能说这个过程并不容易。

冷门岗位,简历少,成功率高

而对Ruby开发这个岗位,老实说,候选人要少得多。不像前端岗位那样有很多人主动投简历,Ruby岗位基本上都要笔者到Boss直聘里面去搜索相关的人,一个个聊。而且其中有不少都是曾经有过Ruby的工作经验,不过近期的工作都以Go/Java为主。在此不得不感叹,Ruby在中国是有那么点没落了。

有趣的现象是,Ruby面试成功率比较高。难得有两个愿意面试的,都给了Offer。让我不禁想起,刚入职的庆哥跟我说的话

很多程序员都很简单的,有事情做就行,前期不用太担心人手的调配问题。而写Ruby的人就更简单了。

貌似也是如此,起码他们不会在面试的时候不停地跟我说他们的风光事迹,学校拿过多少奖学金,拿过什么证书之类的。反正我认识很多不是科班毕业的,甚至都没读过大学的小伙伴。他们无论是解决问题的能力还是编码能力都比那些身上挂着一堆证书的人要强上不少。而这类型的人也正是公司想不断引入的人才(毕竟笔者学历也不高)。

综上,其实不管是冷门岗位还是热门岗位,招聘都不是一件容易的事情。热门岗位,简历数量多,从众多简历里面筛选出合适的人就不是一件容易的事情。而冷门岗位,虽说没什么简历,然而,他们对公司也是有一定要求的,不是那么容易愿意接受面试,一旦愿意面试成功率也相对比较高。一门语言之所以冷门,个人觉得其实并不是语言本身有什么问题。我始终觉得Rust/Elixir/Erlang如果背后有金主爸爸,他们的热门程度绝对不逊色于Go/Java。而在众多语言里面还愿意选择冷门语言的,很大程度上都是爱好者,这类人虽然少(简历就没多少),然而如果能招聘到,那是团队的福气。

招聘是一件费劲的事情

这一两年,工作挺忙的,其中有喜欢的工作,也有不怎么喜欢的。其实个人最不喜欢的工作还是招聘工作。一方面平时工作已经很忙了,得下班才有时间招聘。另一方面招聘一个人,要了解他的技术背景,技术背景如果匹配还要根据背景去问他一些相关的问题,这并不是一件容易的工作。当然笔者也可以像很多别的公司那样,问候选人都是清一色的问题。明明人家就只有React的开发经验,你非要根据公司的工作需求去问别人一堆Angular的问题,回答得上来才有鬼。不仅浪费彼此的时间,而且对候选人也是一种不尊重。

笔者当年在艰苦求职的时候基本上都遇到过,有些面试官,简历都没看过就跑来跟你聊。也有些面试官,没事找一些井盖的问题来问,候选人要是把Google这些刁钻的题目都背下来,是不是表示他编码能力比较强?最近还听过一个候选人跟我分享过,谈薪资的时候他要求自己的工资比上一家高个一两千,被面试官说成是“价值观不正”。你们倒是做个人吧。

可能像他们这样招聘会相对轻松一点,但我觉得这种做派找到合适的人会更加艰难吧,人员流动率估计也不低。面试官面试之前把简历过一遍应该是对候选人基本的尊重了吧?虽然会花些时间。后面笔者为了节省时间,线上面试基本上都是,打完招呼之后:“您的简历我已经看了,就不用您再做自我介绍了,我就简历的内容直接开始问问题可以吧?”虽然没有业界这么“正规”,但还是有人愿意加入的啊。

尾声

这篇文章,简单汇总了一下近期招聘的境况及心路历程。只能说,目前为止还是挺幸运的,几乎都在关键的时候招聘到合适的人加入技术团队。真心希望团队能够好好磨合,短期内不用再扩招了,毕竟还是倾向于打造一个精品团队,而不是只是看起来很庞大的团队