Skip to content

四火的唠叨

一个纯正程序员的啰嗦

Menu
  • 所有文章
  • About Me
  • 关于四火
  • 旅行映像
  • 独立游戏
  • 资源链接
Menu

近期面试求职的经历和感受

Posted on 10/30/201706/23/2019 by 四火

好久没有更新了。回来报个到,也向关注和提醒我 blog 更新的朋友们道个歉。原因在于,最近非常忙,忙于找工作。现在下家还没有定下来,手头有几个 offer,还在考虑中,但是很快会决定下来,然后更新更进一步的信息。无论如何,blog 的更新已经恢复正轨。
通常人的一生中不会有太多属于自己的求职季节,尤其像我这样的,总觉得在一个地方需要积累,因而并不是频繁跳槽的粉丝。第一份工作在华为,我干了三年半;第二份工作在亚马逊,直到现在,超过了五年半。职业生涯的前方就将是第 10 个年头。

为什么是现在?

三年半前我通过 L 签证来到西雅图,而 L 签证是不能够更换雇主的,因而自然也不用考虑工作变更的可能性。去年 10 月我正式变更为 H1B 签证,可以变更雇主了,但是我的孩子很快出生,而且我身体状况也不是很好,就选择等一等,这一等就到如今。人都是有惰性的,这件事情上就是潜意识里害怕变化。但是另一方面,潜在的变化也会让人感到野心勃勃和充满欲望。我对自己说,不管结果怎样,一定要把自己放到这个市场上掂掂分量。在任何一个地方呆太久了,都不利于眼界的扩展。

都从哪些角度考虑下一份工作?

工程师,Individual Contributor,技术路线。对管理岗没有什么兴趣。

技术的角度看,我希望能够继续专注于我感兴趣的领域,既包括全栈工程,也包括分布式系统。前者从能力上可能更适具备竞争力,后者则是我近几年的兴趣点。以往我总是说要积累各个领域的知识和体验,但是现在我慢慢在计划,到 35~40 岁,我需要明确下专注的领域,而不再像以往这样 “不挑食”。这几年我会不断接近和过渡到这个目标,慢慢地明确和提炼自己的核心竞争力。

随着经验的增长,往往每一份工作都会比前一份报酬更高,也被寄予更大的期望。换言之,跳槽也会越来越难,这是职业生涯向上发展的一个标志。

非技术的角度看。我当然想拿更高的薪酬,体现我的价值,包括薪水也包括级别。我也希望能继续做一些有影响力的工作,既包括用户层面的影响力,又包括产品层面的影响力,和出色的工程师一起工作。小团队,但是有大野心。这是我的偏好,优先级上先考虑团队和项目,再考虑雇主。工作签证的关系,我不太想考虑特别小的公司。对于中型公司还是巨头,我是有挣扎的。但是无论如何,产品和雇主的前景,是我看中的东西。

北美工作难找吗?

既难,又不难。说它难,是因为它的玩法和国内大不相同,对于工程师的功底,特别是数据结构和算法的考察,比国内大多数公司要严苛得多。几乎所有的面试都要求现场写代码,而且要写可工作的代码,不是伪代码。说它不难,则是因为这里的面试更便于准备,项目、代码和系统设计,几乎涵盖了百分之八十的面试内容。换言之,北美的技术面试更注重工程师的思维,而国内则问很多知识性的内容,各有利弊。我得适应这种不同的玩法。

不过相对于说工作难不难找,我倒是想从 recruiter 的角度说一声,招一个优秀的工程师,真是太难了,大量的人力成本,电话面试 1 到 2 个小时,onsite 4 到 7 个小时,再加上组织沟通的成本,feedback 和 debrief 的成本,有时还需要管酒店机票,等等等等。最后,这个工程师还不一定去了哪家。这也是为什么很多 IT 公司都已经把 “招人” 作为第一要务了。几年前在国内的时候有一个 recruiter 说过两个有趣的二八法则,一个是,软件工程师的 20% 的岗位由那些 80% 的工程师去争抢;另一个是,市场上最容易发现的 80% 的简历都是那些 20% 的不够优秀的工程师撰写的。

简历重要吗?

我犯过一个错误,觉得简历这个东西,不是很重要,重要的是面试表现。于是 “简历拒” 就生生打了我脸。简历需要好好打磨,如今的简历并不需要局限在一页纸。如果经历丰富,一页纸是很难说清楚的。

由于工作机会很多,特别是在 LinkedIn 上,不断有猎头 “骚扰”。因此我没有使用像 Monster 或者 Indeed 这样的招聘网站,这和我在国内当时离开华为找工作的策略是不同的。我只选择自己感兴趣的公司,或推荐或定向投简历。事实上,这种也帮我过滤了信息,避免了很多不必要的沟通。

怎么准备面试?

关于算法和数据结构。很多人都说要刷题,Leetcode 已经到了差不多 700 道,刷题这种事情是没有止境的,我看 “一亩三分地” 上有一种很不好的风气,就是试图通过题海战术去 “偶遇” 面试中刷过的题目。作为骑驴找马的我来说,自然不愿意也不可能去选择这样的方式。我给自己定下的目标是,与其去统计那些做过的题目的数量,不如精致地总结一些常见的套路。套路这个东西数量并不多。事实上我做过一些题目,但是很多题目做得都很差,而且大部分都忘记了,只有少部分能够在面试中遇到,即便遇到了,还是需要我现场去通过思考和交流解决问题。

关于系统设计。因为我已经工作好些年了,系统设计往往会成为一个重点考察对象。除了日常的积累以外,也是有一些套路可寻的。仅仅凭借日常积累,是很难做好面试中的系统设计的。总结常见和经典的系统设计,就成为了非常有助益的一环。以前写过一点点,但是现在看起来还是太浅了,我也许以后为稍微写一点经典的系统设计。

最后,关于自己的项目,说清楚,画清楚,从架构到细节。还有那些烂大街的 behavior questions,我想不必提及了。

面试时间规划上有策略吗?

有。我的经验是,把特别想去的公司往后放。电话面试相对宽松,但是最初的两三次电话面试只能用作积攒经验,成功率肯定不如后来进行的高。对于 onsite,把想去公司的 onsite 放到一起,密集一两周完成。越想去的公司越往后放。这里的原因是,雇主一旦给 offer,很多只有一周到两周的决定时间,希望 offer 互相 compete,就只能把这些 onsite 放到一起。几乎所有的公司都愿意在有 offer deadline 的情况下加快流程前进的速度。

如果可能的话,面试的数量要达到一定才能积累足够的经验。我前前后后总共 onsite 了 15 家公司,可以说每 5 家都是一个阶段,每一个阶段都比前一个阶段总体来说发挥更自如,表现更好。

当然,这可能只适用于我这种短时间内骑驴找马的策略。有朋友喜欢常年在准备,随时可以跳槽的,自然就有不同的策略了。

面试的随机性

有位朋友和我说过,面试的随机性很强,不要太当回事。对于任何一次面试的个体,这是非常有道理的。如果面试挂了,并不代表你不够好,常常也不代表你发挥得不够好。原因是多方面的,有的时候只是在团队文化上不那么契合,有时候只是某一点小的行为表现被错误地放大为一个负面的信号,有时候甚至是被人故意黑了(在北美工作的同学都知道这一点,面试中很难避免)。因此想要在吊死一个选项,非得拿到那家的 offer 不可,无疑是非常困难而危险的。

另外一点是,特别是在面试的前期,往往没有 offer,经验缺乏,甚至面一家挂一家,无疑对自己的心理压力巨大。自我的调整显得举足轻重。但是就像一句老话一样,“道理我都懂,可还是过不好这一生”,有时候尝试去坦然地接纳这些事实,承受这些压力,未见得是件坏事。

最后,我想说的是,坚定地相信,对工程师来说,技术是非常有价值的。尊重自己并且尊重技术,就会有别人尊重你,获得报酬,享受生活,也就能够在职业生涯上继续迈出坚实的步伐。祝愿和我一样近期找工作的朋友们能得到较为理想的结果。

文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接 《四火的唠叨》

×Scan to share with WeChat

你可能也喜欢看:

  1. 51CTO 的访谈
  2. 我面试别人的常见方式
  3. 那些糟糕的面试和那些屎问题
  4. 我们到底要怎样招程序员?
  5. 系统设计的典型分层和涉及的知识点

1 thought on “近期面试求职的经历和感受”

  1. owenliang says:
    11/01/2017 at 4:37 PM

    走出去已属不易,加油。

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

订阅·联系

四火,啰嗦的程序员一枚,现居西雅图

Amazon Google Groovy Hadoop Haskell Java JavaScript LeetCode Oracle Spark 互联网 亚马逊 前端 华为 历史 同步 团队 图解笔记 基础设施 工作 工作流 工具 工程师 应用系统 异步 微博 思考 技术 数据库 曼联 测试 生活 眼界 程序员 管理 系统设计 缓存 编程范型 美股 英语 西雅图 设计 问题 面向对象 面试

分类

  • Algorithm and Data Structure (30)
  • Concurrency and Asynchronization (6)
  • System Architecture and Design (43)
  • Distributed System (18)
  • Tools Frameworks and Libs (13)
  • Storage and Data Access (8)
  • Front-end Development (33)
  • Programming Languages and Paradigms (55)
  • Testing and Quality Assurance (4)
  • Network and Communication (6)
  • Authentication and Authorization (6)
  • Automation and Operation Excellence (13)
  • Machine Learning and Artificial Intelligence (6)
  • Product Design (7)
  • Hiring and Interviews (14)
  • Project and Team Management (14)
  • Engineering Culture (17)
  • Critical Thinking (25)
  • Career Growth (57)
  • Life Experience and Thoughts (45)

推荐文章

  • 谈谈分布式锁
  • 常见分布式系统设计图解(汇总)
  • 系统设计中的快速估算技巧
  • 从链表存在环的问题说起
  • 技术面试中,什么样的问题才是好问题?
  • 从物理时钟到逻辑时钟
  • 近期面试观摩的一些思考
  • RSA 背后的算法
  • 谈谈 Ops(汇总 + 最终篇):工具和实践
  • 不要让业务牵着鼻子走
  • 倔强的程序员
  • 谈谈微信的信息流
  • 评审的艺术——谈谈现实中的代码评审
  • Blog 安全问题小记
  • 求第 K 个数的问题
  • 一些前端框架的比较(下)——Ember.js 和 React
  • 一些前端框架的比较(上)——GWT、AngularJS 和 Backbone.js
  • 工作流系统的设计
  • Spark 的性能调优
  • “残酷” 的事实
  • 七年工作,几个故事
  • 从 Java 和 JavaScript 来学习 Haskell 和 Groovy(汇总)
  • 一道随机数题目的求解
  • 层次
  • Dynamo 的实现技术和去中心化
  • 也谈谈全栈工程师
  • 多重继承的演变
  • 编程范型:工具的选择
  • GWT 初体验
  • java.util.concurrent 并发包诸类概览
  • 从 DCL 的对象安全发布谈起
  • 不同团队的困惑
  • 不适合 Hadoop 解决的问题
  • 留心那些潜在的系统设计问题
  • 再谈大楼扔鸡蛋的问题
  • 几种华丽无比的开发方式
  • 我眼中的工程师文化
  • 观点的碰撞
  • 谈谈盗版软件问题
  • 对几个软件开发传统观点的质疑和反驳
  • MVC 框架的映射和解耦
  • 编程的未来
  • DAO 的演进
  • 致那些自嘲码农的苦逼程序员
  • Java 多线程发展简史
  • 珍爱生命,远离微博
  • 网站性能优化的三重境界
  • OSCache 框架源码解析
  • “ 你不适合做程序员”
  • 画圆画方的故事

近期评论

  • panshenlian.com on 初涉 ML Workflow 系统:Kubeflow Pipelines、Flyte 和 Metaflow
  • panzhixiang on 关于近期求职的近况和思考
  • Anonymous on 闲聊投资:亲自体验和护城河
  • 四火 on 关于近期求职的近况和思考
  • YC on 关于近期求职的近况和思考
  • mafulong on 常见分布式基础设施系统设计图解(四):分布式工作流系统
  • 四火 on 常见分布式基础设施系统设计图解(八):分布式键值存储系统
  • Anonymous on 我裸辞了
  • https://umlcn.com on 资源链接
  • Anonymous on 我裸辞了
© 2025 四火的唠叨 | Powered by Minimalist Blog WordPress Theme