你还有什么问题吗?

在面试过程中,一般都会有一个固定环节,那就是在临近结束时,面试官会问求职者:你还有什么问题吗?

其实,这是一个很好的了解公司,了解未来团队的机会,但很多求职者却不知道问什么,或者是问不到点儿上,错过了这个机会。

我最近逛 GitHub 时刚好看到一个仓库,这个仓库是一份求职者向面试官的提问清单。内容包含关于职位,公司,文化,工作内容等一系列问题,覆盖面还是挺广的。

大家在看的时候可以记一些自己感兴趣的,然后结合具体面试过程,提有针对性的问题。

原仓库是英文的,我尝试地翻译了一下,如果有不准确的地方,欢迎大家交流,或者提 pr。

内容如下:

关于职位

  • 你为什么招聘这个职位?
  • 我在公司的角色是什么?
    • 我将在组织内的工作处在什么位置?
  • 我预计会在这个职位上停留多久?
  • 我的日常职责是什么?
    • 你预计我会花多少时间在每一个上?
  • 我都会使用哪些编程语言?
    • 公司会给我时间学习我需要使用但还不会的语言吗?
  • 你有目标薪资范围吗?

开发协作/团队交流

  • 你的团队是如何构成的?
    • 目前有多少开发人员?
    • 团队规模有多大?
    • 垂直切片还是水平切片?
  • 团队坐在一起吗?
  • 团队是否有与其他员工/其他团队隔离的区域?
  • 团队成员多久参加一次会议?
  • 开发人员是否会定期结对编程?
  • 开发人员是否使用屏幕共享或协作编码工具?
  • 你(或我未来的老板)的领导风格是什么?
  • 是否遵循项目管理的敏捷方法(Kanban, scrum, etc)
  • 你如何分配工作?
    • 你是根据熟练程度预先分配任务,还是希望所有成员都同样熟练?
  • 你如何评估工作?
  • 单一产品,还是我会定期从事不同的项目?
  • 您的公司/团队多久开始一个新项目?
  • 您的团队与公司其他团队的最佳和最差工作关系是什么?
  • 您的团队与其他团队互动的频率如何?
  • 你是否发现自己经常被其他团队的依赖所阻碍?
  • 团队的工作时长?

开发过程

  • 你使用什么源代码管理工具?你能解释一下你为什么选择它吗?
  • 你的仓库是在内部托管还是在第三方服务上托管?
    • 如果在内部,您是否使用 GitHub Enterprise 或 Gitlab 等仓库管理程序?
  • 关于开发人员推送变更,您目前的工作流程是什么?
    • 你做拉取请求,还是每个人都只是合并到一个中央仓库?
    • 你使用什么分支方法?(Git-Flow、Github-Flow、Environment Merging、something custom)
  • 你是在使用工单系统吗?还是口头说说,听一听就算了。
    • 您是否对 bugs 和新功能使用相同的系统?
    • 优先级如何确定?
    • 什么更优先?bugs 还是功能?
    • 是否提前确定并记录了任务的详细要求?
    • 任务是如何添加到待办事项中的?
  • 谁来决定产品的功能?是如何抉择的?
    • 开发人员如何参与该决策?
    • 测试人员如何参与该过程?
  • 您如何跟踪开发时间?
  • 你有代码审查流程吗?
    • 您的代码审查过程是否会阻止部署代码?
    • 你的代码审查过程是否促进了同理心?
  • 您的团队是否鼓励使用 SOLID 和 DRY 设计原则来避免复杂性?
    • 你对对象的健壮性怎么看?
  • 您是否已建立了代码规范?
    • 您是否创建了自己的规范,或者是使用第三方的(PEP8, PSRs, Standard JS, etc)
    • 是否有自动化的 linting 流程来验证您的规范?
    • Tabs or spaces?
    • Allman or BSD braces?
    • 分号?
  • 你的开发环境是什么样的?
    • 虚拟机?本地(VirtualBox)还是远程(ESXi)?
    • 每个人都有相同的开发环境吗?
    • 你在使用 vagrant and/or puppet/chef 吗?
    • 开发环境与生产环境的镜像有多接近?
  • 我会得到一台新的笔记本电脑吗?(作者注:这些基本上是乔尔测试“最佳工具”问题的更直接版本。)
    • Windows、Mac 还是 Linux?我有选择吗?
    • 我可以在那台笔记本电脑上安装我想要的任何东西吗?
    • 它会配备 SSD 和尽可能多的内存吗?
    • 我有多难证明购买软件的合理性?
    • 我多久会收到一次硬件升级?
  • 你的发布时间表是怎样的?
  • 我会定期与客户直接沟通,还是一般都会通过中间人进行?
  • 在开始一个新项目之前,我能看到项目的明确规范/模型吗?
  • QA/测试是如何完成的?
    • 开发人员是否也需要进行测试?到什么程度?
    • 如果有单独的测试团队,测试和开发之间如何协调?
    • 如何做出发布准备就绪的决定?
  • 谁来设计 UI?
    • 是否期望开发人员做?
    • 公司里有图形设计师吗?
    • 公司里有用户体验设计师吗?
  • 公司是否有像 CMM 或 SOC 这样的合规要求?
  • 您有 SLA(Service Level Agreement)吗?
    • 您能保证以下任何一项吗?如果可以,多长时间?
      • Turn Around Time (TAT)
      • Average Speed to Answer (ASA)
      • Time Service Factor (TSF)
    • 升级计划是什么?如果不遵守计划会有什么后果?
    • 你有 on-call 时间吗?
      • on-call 时间表是怎样的?
  • 您的工程师对当前工具集的满意度如何?如果他们必须更换一种工具,它会是什么,他们会用什么来代替它?

监控/on-call

  • 你有任何应用级别的日志吗?如果有,怎么查看?
    • 日志是否跨多个硬件平台聚合?
    • 日志可以搜索吗?
    • 日志记录有多详细?
  • 你用什么监控软件?(Nagios、Icinga、Zabbix 等)
  • 您是否定期记录和审查应用程序性能指标?相对于其他类型的任务,性能优化的优先级如何?
  • 如何通知员工报错情况?(PagerDuty, Email, SMS, big monitors in each teams room, etc.)
  • 每个 IT 团队是否需要永久 on-call 待命?
  • 是否有一个永久性的“控制中心”来跟踪事件并通知负责的 on-call 值班人员?
  • 如果无法联系到某人,是否有升级流程?
  • 开发人员是否也需要 on-call 值班?
  • 当 on-call 值班时,下班后处理事件/问题的时间,是否算作加班?
  • 员工在等待 on-call 时是否应该在下班后工作?

远程

  • 公司在什么时区工作?
  • 公司会为电子或家具等家庭办公设备付费吗?
    • 如果是,该设备是否会被视为公司财产?
    • 如果当我离开公司时,我必须归还吗?
  • 您是否有诸如 Slack 或 Jabber 之类的团队聊天工具?您的开发人员是否积极使用它,这是他们的主要沟通渠道吗?
  • 您的开发人员是否使用 Skype 或 Google Hangouts 等视频聊天软件?
  • 如果团队中的一部分人在办公室工作,您是否有专用计算机用于与远程员工进行视频聊天?
  • 我必须通过 VPN 工作吗?
  • 我应该多久去一次办公室?
  • 我的差旅费用会由公司报销还是直接承担?
  • 我的工作时间有多灵活?如果需要,我可以在白天请假并在晚上补上吗?

开源

  • 你使用开源库吗?
    • 您知道这些库的许可吗?
  • 贵公司是否发布开源代码?
  • 贵公司是否为开源库做出贡献(或鼓励他们的开发人员做出贡献)?
  • 关于我发布开源代码(个人项目)的公司政策是什么?
    • 如果有审批流程,需要多长时间?
    • 流程是否正式?

代码库/架构

  • 代码库多长时间了?
  • 你有自动化测试套件吗?
    • 你使用什么库和工具?
    • 都做哪些种类的测试?(unit, integration, system, load, ...)
    • 你的测试方法都有哪些?(BDD, TDD, Spike & Stabilize, ...)
    • 目前的测试覆盖率是多少?你满意吗?
  • 您是否定期纠正技术债务?
  • 从 0 到 10,你有多少 spaghetti code?
  • 您的代码库的文档记录如何?
    • 您是否使用像 PHPDoc 或 JSDoc 等自动化文档系统?
    • 维护 wiki 吗?
  • 纯 CSS,还是编译中间件(LESS, SASS, etc)?
  • 您支持哪些浏览器和操作系统版本?
  • 您的代码库是否需要构建过程,并且是自动化的吗?
  • 您是否实施了持续集成流程?
  • 您是否使用 MVC 或类似的代码结构?
  • 是否有内部框架,如果有,谁来控制它?
  • 您是自己托管产品(Local、CoLo、VPS)还是在 AWS 或 Heroku 等云平台上运行?

多样性

  • 公司的 非男性 比例是多少?
  • 公司的 非白人 比例是多少?
  • 公司的 LGBTQ 比例是多少?
  • 公司的 非开发人员 比例是多少?

文化

  • 在这里工作的节奏是怎样的?是偶尔很忙,需要通宵,还是一年之内都差不多?一周,或者一个月呢?是在一个星期,或者一个月之内分布的很平均,还是会特别忙?
  • 是什么让你(面试官)选择加入这家公司?
    • 在这里工作最享受的是什么?
  • 贵公司的英雄是谁?
    • 最有名的人有什么共同点?
  • 公司是否有针对员工成就的奖励制度?
  • 什么样的人在这里容易成功?什么类型的人不容易?
  • 我是否被允许或期望将我的工作带回家?
  • 关于工作时间、截止日期和加班时间的期望是什么?
  • 你们提供多少假期?
    • 假期申请预计需要多长时间?
  • 开放式办公室、个人办公室或隔间?
  • 有着装要求吗?
  • 开发部门与销售部门关系怎么样?谁设定最后期限?
  • 公司是否提供零食或饮料?
  • 您对开发人员每天有多少生产时间有什么期望?

公司

  • 贵公司目前是否盈利?
  • 你的团队在过去一年中最大的变化是什么?
  • 如果我得到这份工作,我如何在绩效评估中获得“gold star”?在接下来的一年里,你希望在这个职位上看到哪些关键成就?
  • 你最担心哪个竞争对手?
  • 销售/运营/技术/营销/财务在这里是如何工作的?(即,您要工作的小组以外的小组。)
  • 什么是公司成功的关键的一件事,这件事是公司以外的人不知道的?
  • 您是如何开始从事这个行业的?你为什么留下来?
  • 是什么让你彻夜难眠?这些天你最大的担心是什么?
  • 您对公司最大的抱怨是什么?
  • 如果我们有一个非常成功的一年,那会是什么样子?未来 12 个月会发生什么?这个职位如何帮助实现这一目标?
  • 公司或者我未来的老板如何进行绩效评估?我如何充分利用绩效评估流程以确保我为公司尽我所能?
  • 与员工共享哪些信息(收入、成本、运营指标)?
    • Is this an open-book shop, or do you play it closer to the vest?
    • 信息如何共享?
    • 我如何获得在这份工作中取得成功所需的信息?
  • 谁是医疗保健提供者?
  • 贵公司支付多少百分比的保险?
  • 贵公司是否提供产假/育儿假?
  • 公司会为培训计划/认证/会议付费吗?审批流程是怎样的?
  • 关于副项目,公司的政策是什么?我可以在自己的网站上工作吗?
  • 我是否拥有我自己在自己的硬件上编写的代码,还是公司声称它是他们的?

PHP

  • 您使用公共框架还是内部环境?
    • 当您在公共框架中发现错误时,您会将其回馈给社区吗?
  • 您使用 PHP 驱动的 HTML 模板,还是 Smarty 或 Twig 等第三方模板引擎?
  • Do you use Composer?
  • 您鼓励您的开发人员参加 ZCE 考试吗?
  • 您使用的是哪个版本的 PHP?
    • PHP 新版本的更新计划是什么?

JavaScript

  • 您的前端技术栈是什么?(jQuery?, Underscore/Lodash?, Angular/Ember/React?, etc)
    • 为什么这么选?
  • 您的前端代码是否使用诸如 Webpack 或 Browserify 之类的模块加载器捆绑在一起?
  • 您是否使用模板引擎,例如 EJS、Jade 或 Handlebars?
  • 您是否使用编译语言,例如 Coffeescript 或 Typescript?(如果是,是必要的吗?)
  • 你使用 NodeJS 作为软件平台吗?(ie, beyond tooling)

系统和网络管理 / IT 运维

  • 您使用配置管理工具吗?(Puppet, Chef, cfengine, Ansible)
    • 为什么选择它?
    • 您的 IT 员工是否接受使用它?
  • 配置版本是否受控?
  • 向系统授予用户访问权限(RDP、SSH 等)的过程是什么?
  • 不同类别的用户是否有多个访问级别?
  • 开发人员是否拥有系统的管理员/root 权限?
    • 如果是:为什么?
  • 您是否有用于测试/开发的不同暂存环境?(例如:DEV、QA、PreLIVE、LIVE)
  • 是否允许开发人员连接到开发环境之外的系统?
  • 您有变更管理流程吗?(ITIL 等)
  • 您是如何组织系统管理、应用程序开发、应用程序部署和应用程序运维,使它们有序结合的?
  • 是否有服务器文档/操作指南/最佳实践的 wiki?
  • 您是否在所有服务器上使用相同的操作系统分发版,或者是否为每个服务器配置了特定需求?
    • 你为什么选择你的操作系统?有什么要求?
  • 开发系统和服务是标准化的,还是开发人员选择自己的环境?
  • 工具是否需要在使用前获得批准,或者我可以使用我想要的任何东西吗?
  • 您多久更换一次服务器硬件?
  • 我必须自己更换硬件零件还是有专门的团队/外部承包商?
  • 您使用什么软件/服务来进行负载平衡?
  • 您的应用程序是针对水平扩展还是垂直扩展而构建的?
  • 服务器的平均正常运行时间是多少?
    • 您认为正常运行时间是系统可靠性的一个很好的指标吗?
  • 你如何测试容错能力?你有某种“Chaos Monkey”吗?
  • 当官方存储库无法提供包/错误修复时,是否有将自构建包 (.deb/.rpm/.msi) 放入某个内部存储库的过程?
  • 您如何管理网络上的 IP 地址和 DNS 记录?
  • 您有(切换到)IPv6 的计划吗?
  • 你对你的网络进行分类吗?(数据库服务器网络、前端网络、中间件网络?)还是各种网络中的所有内容都混合在一起?
  • DEV/QA/PreLIVE/LIVE 系统都在一个大网络中,还是每个都在一个单独的网络中?他们是否有防火墙,所以 DEV 系统不能 DoS 一个 LIVE 系统?
  • 管理内部/外部防火墙规则的流程是什么?

看完之后你什么感觉呢?反正对于我来说还是挺惊讶的。里面的很多问题都让我怀疑,国外的求职者真的会在面试过程中问这些问题吗?问得这么细?

还是说国内的求职环境也是如此,只有我还停留在什么都不知道的观念里。

不过话说回来,其中的一些问题还是有借鉴意义的,希望能够给大家带来帮助。

如果大家有什么新的想法,也欢迎留言讨论,或者直接给项目提 pr。

以上就是本文的全部内容,如果觉得还不错的话欢迎点赞转发关注,感谢支持。


项目地址:

推荐阅读:

posted @ 2022-08-29 13:00  yongxinz  阅读(43)  评论(0编辑  收藏  举报