• 分享一下我的远程工作面试经历
  • 发布于 1周前
  • 53 热度
    1 评论
结果: 没拿到 offer
过程还是值得记录分享出来给大家提供点经验。对方是美国房地产行业公司, 常在国内招人, 最被诟病的是薪资低, 应该能猜到是哪家了。 应聘职位是 GoLang 后端程序员。

本身情况
因为经济不景气等各种因素, 待着混日子的上市公司, 砍掉了对地区研发的投入; 留了几个名额, 给出了可自愿离开给赔偿的条件。虽有挽留, 但团队和我招的人都没了, 留着干瞪眼么? 不如早日离早日闲, 难说后面赔偿都没了。推特上一位线下也常聚的朋友, 第一时间把内招 JD 给我, 并帮内推。

JD 内容有几点我看重的:
1.完全远程。 满足我厌恶通勤, 想东南亚到处旅游的需求
2.美国公司。 我悲观看待国内经济, 早就想脱离了
3.英语只要读写, 不要求听说。 这个简直太稀有难得了
4.另外国外真的是年龄无限制, 得知公司还有 60, 70 后的老程序员, 心中一暖; 我这种 40+ 的程序员在国内都被歧视麻了, 这个点确实让人心动

另外自己口语确实不行, 做了 APP EnTube 来学英语, 但一直没下苦工夫去用, 更没练到可以流利说的阶段; 看 YouTube 乐呵下还行, 所以对英语不要求听说的美国 remote 工作太稀有了。赶早不赶晚, 简历给他后, 当天 HR 就加我, 被拉到 GitHub 笔试题仓库里 7 天做题时间。有点懵, 原想简历交上去, 会排队或审核几天, 趁机复习下 GoLang。 上次认真使用是 2018 年给交易所做交易中台时候了, 后几年也就自己小工具项目用 GoLang 重构, 近些年侧重点在基于全栈的 GraphQL 的开发平台, 少写后端; 算下来好几年没用过了。

类似情况的朋友, 记得把应聘职位要求的技术认真复习好再投简历, 会比较从容。 就算捡起来很快, 但该花的时间和心理压力还是有的。,我更希望公司有全栈的职位, 但遗憾目前只招 GoLang。

笔试
没让保密, 但笔试具体题目就不透露了, 想必是题库随机到的,题目水平还是不错, 貌似是比较专业的公司弄的,看到是个人比较喜欢的 CLI 类, 可开心了, 心路历程大概这样:
哟, 这需求很简单啊~~
嘎, 不对不对, 似乎没那么容易~~
哎哟, 有坑有坑!!

准备连复习时间两天完成的计划破灭了。作为遇到项目先问 GitHub 的狡猾程序员, 阅读 star 数最高的几个同类型项目的核心代码后, 只能说: 糙, 真的糙。 1/10 的边界情况都没考虑, 只用了最简单粗糙的方式实现, 都能拿那么多 star? GitHub 什么时候这么水了。不禁有点怀疑人生, 是我运气好还是题目神奇, 网上真找不到一个完成度高到可参考项目; 又或者是自己理解错了, 想得太复杂了? 阅读题目要求 n 遍后, 还是坚定自己的理解, 老老实实自己弄吧。

想用 AI 来作弊的, 可以洗洗睡了: 有用 Cursor + claude-3。5-sonnet, 但最大作用也就帮补充测试用例和检查细节。

心得:
认真反复逐字看题目要求, n 遍不过分, 需求分析最重要, 歪了神仙难救。 可以发 issues 问笔试官, 我没用, 仔细想了和分析后, 需求都理清了。用最糙的方式把主要功能先实现, 便于搞清楚真正考察的点。 开始想简单了, 于是误以为考察重点在性能效率, 浪费了不少时间弄性能。 后来摒弃应试思路, 回归自己正常做项目状态, 才算理顺。

测试用例尽量 100% 覆盖, 实现中有点用到词法分析语法分析, 有很多边界和特例, 逼着尽量去写测试用例才能开发。这种题目是让我对公司印象是加分的。
完善度要高, 别赶工。 公司不会看你快速完成就加分的, 程序员特别喜欢拿这个来炫技, 给了 7 天自然有给 7 天的原因。 我大概分了以下几个阶段: 复习+简单框架搭建; 核心功能实现, 正确性保障; 代码结构优化, 函数拆分, 可读性优化; 可配置性, 灵活性。 分了几个 branch 阶段来开发, 但好像最好别分。
完善和优化其实可以继续, 不巧的是发简历那天就有点小阳难受, 后面熬夜复习做题头越来越晕, 就不想做多错多了。

代码重构到满意的清晰度, 该做的配置和灵活性补充上去; 测试题目本身带了足够多的分析用例, 能跑过去就足以了; 强行 100% 有点假和刻意了, 开发过程中大约覆盖了 80% 的单元测试, 也就没强求。 性能没去加强, 处理题目给的目标绰绰有余, 个人判断考察点不在性能上, 虽然题目要求里有提到一嘴, 多少有点陷阱误导。

最卡人的反而是每次 commit 的规范和内容, 国内真是完全不管这个的, 哪怕我经常是团队里最认真写的人了, 犯懒时候也有应付。 所有交付都只能英文, 备注等也要检查下, 别有单词语法错误。PR 认真写, 表达清楚, 配置使用方式写明白, 用 mermaid 画了状态图来解释和说明思路。 想想也知道, 如果你被抓过来审笔试题, 再遇到代码混乱一大坨, 分析起来痛苦的, 必然很不爽的。 让笔试官舒服的审完, 大家都开心。

大概用了四天时间来做, 周五拿到的题目, 周末算是全力在做了, 周一也请了一天假在弄, 周二基本就是检查; 中午过后, 头晕脑胀的, 再弄下去估计是负优化了, 索性提交了。笔试题有明写, 两天后会给评审结果。 结果也不知撞什么大运, PR 提上去一个小时后, HR 就通知我笔试通过, 问明天有没有时间。 这里我又犯错了, 想了下现在工作交接中, 明天是能抽出时间的, 嘴滑就答应了。 其实应该找借口将面试时间延后, 好好休息下, 把病养好; 也有充分的时间把 GoLang 复习好。

答应也答应了, 于是晚上又熬着难受继续复习 GoLang。网上很多没过的应聘者, 都在骂笔试方式。 这笔试难度和 7 天完成时间, 确实将大部分应聘成本转嫁给了应聘者, 投入的精力时间沉没成本都不小。 但我觉得这种实践型的笔试筛选方式是很好也有效的, 能力不足可能真的做不出来, 或者做出个考虑不全的半成品, 又或者代码结构乱七八糟; 开发思路和习惯也能体现出来, 这可比刷算法八股要好多了。 如果公司大气点, 能给笔试者几百千把块的小礼物, 弥补成本投入, 那就更好了。

面试
病的头晕脑胀的, 面试前磕了含乙酰氨基酚和咖啡因的药提神。有点紧张, 职业生涯面试别人多, 自己被面面试屈指可数。 跳槽本就不频繁, 仅有几次还是被挖, 聊个天就跳了。 干得少的事情果然会紧张。包括 HR 共四个人在视频会议出现, 聊下来感受并不是太好。面试过程比较混乱, 我这里也就按照记忆随意写写了。

技术
GoLang 技术细节基本没问, 白复习了。 笔试题细节和思路也没问, 白准备了。主要就是问简历上匹配当前职位的技能, 我敏锐的察觉到, 公司招聘预期是想要专业技能窄精熟的螺丝钉型程序员。面试官在意的技术点, 以往的工作和项目中经常都是拿过来直接用, 没在意的直接踩过去了, 要不是照着 JD 改了下, 估计简历里面都不好意思写上去这些点。

比如担心我太久没写 GoLang; 我很想说哪怕新学都没关系, 早过了纠结在意某门语言的阶段了, 需要啥就学呗; 但没好意思那么嚣张的回答。又有提到, 我好像前端技能会的比后端更多。 那分钟心里真冤, 工作需要就学了嘛。 于是冲动的表达: 觉得区分前端后端程序员就不对, 需要就学, 程序员不应该给自己画地牢, 除了 UI 美学设计天赋所限, 其他该学就学。 搞得面试官有点面面相觑。 不过确实也是, 自己 80% 的职业生涯都是和后端技术在死磕, 毕竟前后端之分是后期才出现的。

也有问了 docker, 消息中间件, AWS 相关使用, 支付接口, gRPC 等等。 可这些都在项目里是都用过; 有的拿过来猜着就用, 有的看看文档就用, 没太多折腾痛苦都挺顺的, 也就没啥印象。于是我很像骗子一样: 啊, 用过用过, 看看文档就用起来了。 难点? 好像没啥难点。 细节, 不太记得了没啥映像。 AWS 啊, 是有把中华区技术当面讨论, 最后是他们版本低, 导致 CLI 管理端用不起来。

最后这个故事好像没机会讲, 确实估计用的不精不深, 但也没办法, 满足超过项目所需也就没深挖精深了, 这些手熟的工具型东西, 现学现用居多。特意想说的数据库的熟悉程度, 基础功力, GraphQL 开发框架一类, 估计这个职位工作中用不到, 也没人想细节了解, 把我憋的。

团队理念/远程看法
聊了团队管理方式, 对远程看法, 在陈浩耗子哥团队的经历还给我加分不少, 其中一位面试官也是他的小粉。这一块问题不大, 毕竟我向往远程已久, 虽没有正儿八经在远程团队的工作经验。 但自己管理的团队使用远程方式, 以及自己远程外包, 也都算是山寨的远程方式, 融入远程文化问题不大, 本身也认同异步文字为主的项目管理方式。

聊了聊以往项目管理方式, 无波澜的就过了。

业务
聊到业务, 得知如果能加入的话, 会做支付相关; 这可不撞到枪口上了么。 毕业起就做运营商的账务系统, 支付账务这块可以说熟的不能再熟了; 都干到业务专家给运营商定规范去了。全世界还有哪个运营商比我们更能折腾, 有比我们系统更复杂的? 真的找不出来了。结果我逮着这个项目组负责人一通问, 都有点反向面试了, 估计都被我问怕了。

问到我接入过 stripe 支付平台没, 这块真没有。 但是我连国内银行这种文档乱写糊弄人, 甚至没文档, 实现奇葩的乱七八糟的支付接口都弄过不止一次, WeChat 这种别扭痛苦的都接过; 去接 stripe 这种文档详尽, 规范合理的还叫事?

英语能力
英语能力这块是有重点问的。 如实回答, 不然立马转换到英语面试, 肯定招架不住; 几个面试官看面相就是英语很好那种人。看得出多少是有些失望, 但我也没办法, 图的就是语言要求不高才兴冲冲来面试的。 一用就学很快的特性, 相信能很快提升起来的, 可这饼没法给面试官画。

总结
几位面试官都很务实, 完全没有面试造火箭上班拧螺丝的情况。 面试真就重点问的是拧过这几种螺丝没, 要怎么拧。也能反向分析出, 公司是 IT 支撑业务的重业务型公司, 类似我刚毕业时候进的那家。 用技术把业务需求好好实现即可, 思路清晰对业务理解到位更重要, 很多时候技术不是难点和重点, 难的是怎么实现和转换业务逻辑。 好处是这样工作心智负担其实并不重, 技术学习和突破创新的压力也不大。

所以面试卡顿和不和谐的点大概是, 公司空缺的职位应该是初级的 GoLang 职位, 能力要求满足能干活即可, 也看重有没有掌握那几个工作中需要的工具和技术能力。 导致面试官问的几个点, 我都有种这不是顺其自然碰到了就用起来的东西么? 好像没什么可问可聊的狂妄感。 面试中的不和谐感大概就来源于此。

所以面试官给我的能力评价也许并不低, 但很可能会给出不契合当前空缺职位的结论。因此如果真的想要拿到类似 offer, 未必要坦诚展现所有经历和能力, 根据 JD 所要的技术点来修改简历, 将这几个技术点/工具以往使用的细节仔细回忆, 甚至把以前的项目代码好好找出来认真回忆复习当时怎么用的, 怎么实现的, 重学一遍都行, 熟练度拉满。 哪怕这些点不难, 那就往深处研究下, 面试时候契合的侧重展示出来, 可能更利于拿到结果。

HR 薪资
HR 正常拉家常聊天, 介绍了公司之类。再次感觉到, 这是美国的业务型公司, 和我的强业务出身经历是很匹配的。技术方面, 果然是需要螺丝钉偏向, 并没有太多技术创新的机会, 我也能接受, 本职工作不能折腾, 就业余折腾嘛。了解了公司规模和福利各方面的条件, 也判断出, 这种类型和规模的公司, 进去后想晋升涨薪基本别想, 估计只能等普调。

对公司映像不错, 能进打算长期待的, 英语能力没达标前很难找比这更好的远程了, 哪怕英语能力提上来了也未必想再折腾换了; 抱着这样的想法就想开始就把薪资谈高一些, 省得以后待长了 n 年不变的低, 憋屈痛苦。于是期望至少能和现在薪资接近或者持平, 表达的有点坚决; HR 也反复劝说因为是远程反而比坐班更低, 现在国内大裁员等等, 希望我再降低, 我也只勉强的稍微松了一点点口。 和 HR 博弈和卡了几个来回, 估计就是挂在这个上。

比较时候我是考虑了包括五险一金自己所有收入的, 远程谈的自然只有单纯的工资一项收入, 其他要交都是自己的事; 可按我目前西南城市中偏上的薪资水平, HR 都觉得过高了, 这样来看公司确实非常看中国内的低薪竞争力。

后来想想, 按我希望参与远程, 积累美国公司远程经历, 通过用来提升促进英语能力等这些额外的好处, 应该是可以接受更低的薪水的, 但是没在与 HR 聊薪资前想的特别清楚, 这是严重失误的一点。这个大家根据自己需求决定, 但还是要有底线吧。 同等能力, 印度都卷不过我们了, 很难找到比我们薪资更低的了。

失败总结
面试后一个星期的都没消息, 基本这时已经觉得没戏了。整整一个月后, 直到今天才收到回复, 大约是又面了很多人, 统一考虑吧, 现在国内确实太卷太惨了, 以往很多人看不上的工作, 现在都一群人在抢。

HR 官方客套回复大约是: 招聘需求有限, 虽然您完全符合需求, 但遗憾没法录用。

我又厚颜问到真实原因:
1.这个项目组对英语要求有点高

2.项目能给薪资达不到我的要求


可以看出来, HR 对我薪资要求强硬还是有怨念的。

我总结大约是这几点:
1.岗位不匹配:项目组大约是想找能好好干活的苦力熟手, 技术偏下窄精熟。 无论能力高了低了都不是好事, 螺丝得正好对准孔洞才能更丝滑的拧进去。
2.英文能力和 IT 能力不匹配: 强业务系统必然涉及到开会沟通, 苦力熟手在组内听中国同事安排干活文字沟通即可, 能力更强就会更多涉及业务和技术讨论, 避不开和美国团队开会, 口语沟通得流畅, 对听说的要求拉满。

3.薪资达不到我预期: 公司比我以为的更看重低廉成本, 低薪资是最大的竞争力, 毕竟美国也不缺能人, 我们的性价比才是最香的。 如果我松口说没有要求, 未必不能进, 看看国内惨烈的就业情况, 可能应聘者议价权真的不多了。


总而言之, 英文能力决定了你有多少机会去接触好的远程工作。 类似这个工作, 以往降低英文要求才能招到人, 现在他们显然是把要求加回来了, 毕竟现在是完全买方市场。所以努力肝英文吧, 听说读写全都得拉起来, 共勉。

用户评论