codility 在线编程测试

2023-11-18

转自:http://www.csdn.net/article/2012-03-06/312807


企业如何招聘到高质量的程序员?

发表于 2012-03-06 23:1032071次阅读| 来源 Coding Horror55 条评论| 作者 Jeff Atwood

摘要:如何招聘到优秀的程序员?似乎是一个老生常谈的问题,但同时也引起企业和个人的持续关注,CSDN也曾就这一主题,发布了很多文章,如《 如何面试程序员? 》《 高效的面试方式:结对编程 》《 如何有效地招聘技术人员 》,都得到了网友的热情讨论。近日著名博客Coding Horror博主、Stack Overflow创始人J...

如何招聘到优秀的程序员?似乎是一个老生常谈的问题,但同时也引起企业和个人的持续关注,CSDN也曾就这一主题,发布了很多文章,如《如何面试程序员?》《高效的面试方式:结对编程》《如何有效地招聘技术人员》,都得到了网友的热情讨论。近日著名博客Coding Horror博主、Stack Overflow创始人Jeff Atwood发了一篇文章《How to Hire a Programmer》,让我们看看Jeff Atwood对该问题有什么高效的解决方法。文章编译内容如下:

招聘程序员,永远没有万能的方法。在这里,我只希望分享一些多年来的我个人的招聘经验。

首先, 进行一系列简单的“Hello World” 类型的在线测试

对此,你是不是很惊讶呀?但确实有一些自称为程序员的人几乎不会编程。直到今天,仍会有一些招聘者告诉我,他们总会遇到一些应聘者无法通过最基本编程测试。

所以,任何合理的招聘过程应把极简单的程序开发测试放在第一步。并且这个测试需要在线上进行,目的不是为了证明应聘者有多牛,而是看看他到底是怎样的开发者。这一过程很有必要,如果不进行这一部的筛选,你将来可能会后悔。

现在有一些服务可以帮助你解决在线测试应聘者的问题,比如Interview Zencodility

看开发者在互联网上的个人资料

任何名副其实的开发者应该有一份关于他们工作经历的简历。它不必十全十美,我只关注应聘者在互联网上因帮助他人而留下来的点点痕迹。向我展示你在Stack Overflow上的相关资料,凭此我可以了解你专注于哪些方面的技术信息,同时解决了哪些技术问题;给我一个你曾参与的开源代码库的链接;给我你的专业博客地址?Tumblr?Twitter?或其他一些我不曾听过的名字?不错,我可以好好看看。向我展示你曾设计的应用,你曾工作过的网站,及你在其中担任怎样的角色。

了解应聘者曾做过哪方面的工作及在线创造了哪种类型的贡献,对于招聘者了解应聘者适合做什么、不适合做什么有很大的帮助。

雇佣适合企业文化的人

正如GitHub,我发现很好地融入企业文化比整天埋头苦工更容易获得成功。 

我们会在面试过程中和应聘者谈论哲学,我们十分重视这个过程。我们希望来GitHub工作的员工了解他们将要进入的这个企业,确认他们能很好地适应公司的环境。这个过程包括一块吃饭,一起谈论企业文化、哲学、我们曾经犯过的错误、未来的规划等话题。

早些时候,我们招聘只注重应聘者的技能,而对于他是否适应企业文化,是否懂哲学并不太关注。很自然,这些招聘并没收到很好的效果。所以现在我们不仅注重应聘者的技能,是否能融入我们也是我们考察的重要部分。

据我所知,不是所有的业务领域都有相应技术圈子,但如果有,招聘者一定要尽可能地从技术圈子中招人。因为该圈子中的技术人员会自然而然地对你企业所做的事感兴趣,也会很容易融入到与他们意愿一致的企业中。这些应聘者较好适应企业文化的可能性是异常高的。这也正是招聘者乐于见到的。

与应聘者电话沟通 内容需结构清晰

上面提到的事你都完成了,现在是时候给应聘者打个电话了。记住这个电话不是用来聊天的,而是为了筛选应聘者。所以通话的内容是关于技术话题的,而且结构层次要清晰。如果内容不太合适,你和应聘者都会被带离此次通话的目的。内容应该覆盖技术基础,总结下来有下面几点:

● 快速编程。如:编程实现从Int数组中找出最大的Int型数据;

● 一些基本的设计。 

● 脚本语言和正则表达式。如:请从该目录中提取包含电话号码的文本文件列表,并以特定格式输出。

● 数据结构,如,你什么时候会采用哈希表 ,而不是数组?

● 比特和字节,如:程序员为什么问说出“oct(31) == dec(25)”类似这样的笑话。

该举措的目的,是为了到下一流程后,可以节约应聘者和招聘者更多的时间。你一定要坚持自己的立场,如果发现该应聘者多点不符后,尽早放弃该面试过程。

请应聘者参与实际项目

应聘者顺利通过了上文提到的四关,是时候进行面对面的面试了吗?现在还不是时候。

我曾见过一些应聘者,他们也顺利通过了上文提到的层层考验,但最终在实际工作中,并不能很好地完成实际任务。

如果你想确定无疑地判断他是否是一个优秀的应聘者,那就给他一个实际的项目做。我说的不是一般的、抽象的编程任务,而是你们公司现在正在进行的某产品的一个实际开发模块——你本计划交给公司实际员工做的任务。

选择一个测试项目,在理想的情况下可以在几天,也可能最多在一个星期或两个星期内完成。应聘者可以在公司里完成,也可以远程工作。我知道不是每个企业都能把他们的项目切分成一些这样的小项目,分给应聘者在公司外完成——但可以尽力尝试让应聘者在公司内完成。我个人认为,如果你无法为优秀的应聘者分配这样一个微项目,很可能说明你为现在员工分配的任务存在不合理性。

如果应聘者出色地完成了所分配的测试项目。恭喜你,你找到了一个高素质的应聘者,他已被证明可以出色完成各项工作。到现在为止,我所见过的通过该项考验的所有应聘者都能在实际工作中很好的完成任务。准确地说,也不是百分之百保证,但我把该项测试看得很重要,因为在应聘者还未被雇佣前,你可以近距离地观看他在实际项目中的表现。如果测试项目没成功,就把在该项目上所付出的代价看作一笔“退出费”,这相比请公司的4或5个人来进行一场昂贵的面试过程便宜多了。最坏的情况是,把该项目用于下一个优秀的应聘者。

是时候与应聘者见面了

最后,你应该选一个时间与面试者见上一面了。这是必然的,但通过之前所进行的一系列测试,你应该95%地确认这个应聘者就是很好的雇佣对象后再与他见面。

我并非面试专家,但我不喜欢问一些很难的问题,适度就好。

关于如何面试开发者,我有自己的一套理论:给面试者15分钟的时间,请他陈述所擅长的领域。相比与传统的面试方式,我认为这可以取得更好的效果,困为你可以很快地探明下面问题:

● 这个人喜欢做什么样的工作?

● 他是否擅长在小组中交流?

● 他能否很好地解决他所擅长领域中的问题?

● 你的团队是否愿意和他一块工作?

每个开发者都应该知道一件事,即如何推销自己、代码以及项目。

任何事都无法绝对保证

请正确看待上文所列举的招聘流程。它们有时很成功,有时也会失败。根据你自己的特殊情况,调整这些建议,贴合你的想法,忽略某些步骤(虽然我强烈建议你最好不要省,即便是跳过第一步)。即便在最理想的环境下,招聘人才也是一件很难的事情。一个工作机会的获得会受很多因素的影响,往往不受人的控制。正如人们说的,人本来就很复杂。

如果把工作看作一种关系,每周需花40多个小时相处的关系,那么公司和招聘者都应该有一种信念,努力找到适合自己的对方。我们的目的不只是找到一个工作,或雇佣一个人,而是为了生活乐趣,为了创造一种友爱的关系。(编译:CSDN陈秋歌)


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

codility 在线编程测试 的相关文章

  • vue中如何监听localStorage中值的变化

    一 说明 在日常开发中 我们经常使用localStorage来存储一些变量 这些变量会存储在浏览中 对于localStorage来说 即使关闭浏览器 这些变量依然存储着 方便我们开发的时候在别的地方使用 二 localStorage的使用
  • Java集合的使用

    集合的使用 集合框架的概述 数组在存储多个数据的特点 数组在存储多个数据的缺点 Java 集合可分为 Collection 和 Map 两种体系 Collection接口 Map接口 Collection 接口的使用 说明 常用方法 案例一

随机推荐

  • java hashcode() 和equals()详解 以及set不能重复问题

    1 首先equals 和hashcode 这两个方法都是从object类中继承过来的 equals 方法在object类中定义如下 public boolean equals Object obj return this obj 很明显是对
  • Qt——用于表格QTableView的模型

    如果想使用表格来呈现数据 Qt提供了一个方便的部件QTableWidget 但是直接用它实现一些功能可能比较困难 这里将介绍一种强大 灵活的方式来操作表格 一 模型 视图架构 在这个架构中 模型用于存储数据 视图用于呈现数据 除此之外 还有
  • Windows Linux 子系统安装步骤

    准备 一 启用 适用于Linux的Windows子系统 功能 方法一 Win10搜索 控制面板 打开 选择 程序和功能 项 左上角 启用或关闭Windows功能 翻到最下方 选择 适用于Linux的Windows子系统 确定后按提示操作即可
  • VC++ CComboBox自绘阶段性总结

    在绘制列表框左侧的时候 本来说是采用的CImageList接口进行绘制 结果发现绘制后的图标不干净 有锯齿或者黑色背景存在 于是采用了GDI 来实现左侧图标的绘制 代码如下 GDI是完全可以通过图像处理彻底解决图标不干净问题的 之前文章有介
  • LeetCode 88 合并两个有序数组

    LeetCode 88 合并两个有序数组 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2 另有两个整数 m 和 n 分别表示 nums1 和 nums2 中的元素数目 请你 合并 nums2 到 nums1 中 使合并后
  • 0基础学python——文件操作

    这一小节的内容主要是python的文件操作函数和相关内容 文件 就是把一些数据存放起来 可以让程序下一次执行的时候直接使用而不必重新制作一份 gt 文件类型 文本文件 以文字存储为主 读写均以 字符 为单位 二进制文件 以图形 声音 影像为
  • 解决python urllib3报错urllib3.exceptions.MaxRetryError xxx [SSL: CERTIFICATE_VERIFY_FAILED] xxx

    完整报错如下 urllib3 exceptions MaxRetryError HTTPSConnectionPool host xxxxx port 443 Max retries exceeded with url xxxxxxx Ca
  • platform总线、设备、驱动模型之led驱动实例

    在 Linux 2 6 的设备驱动模型中 关心总线 设备和驱动这 3 个实体 总线将设备和驱动绑定 在系统每注册一个设备的时候 会寻找与之匹配的驱动 相反的 在系统每注册一个驱动的时候 会寻找与之匹配的设备 而匹配由总线完成 注意 所谓的p
  • makefile脚本基本语法

    l Makefile脚本流程 Shell脚本 make命令和Makefile make命令是一个常用的编译命令 尤其在C C 开发中 make命令通过makefile文件中描述源程序之间的依赖关系进行自动编译 makefile文件是按照规定
  • npm install 安装失败,一直卡在sill idealTree buildDeps没有反应

    运行npm install 安装失灵 一直卡在sill idealTree buildDeps没有反应 网上其他的方法全试了一遍都不行 最后把npm降级就解决了 npm install npm 6 g
  • 【华为OD机试真题】学校的位置(python)100%通过率 超详细代码注释 代码优化

    华为OD机试真题 2022 2023 真题目录 点这里 华为OD机试真题 信号发射和接收 试读 点这里 华为OD机试真题 租车骑绿道 试读 点这里 学校的位置 知识点数组贪心排序 时间限制 1s空间限制 256MB限定语言 不限 题目描述
  • 全球及中国网络剧行业十四五发展机遇及投资热点分析报告2021-2027年

    全球及中国网络剧行业十四五发展机遇及投资热点分析报告2021 2027年 HS HS HS HS HS HS HS HS HS HS HS HS 修订日期 2021年10月 搜索鸿晟信合研究院查看官网更多内容 第一章 网络剧相关概述 1 1
  • 4.17 symlink和readlink函数-符号链接

    一 symlink函数 symlink函数用于创建一个符号链接文件 函数原型 include
  • Ubuntu20.04 安装 NVIDIA 显卡驱动

    说明 本人使用的环境是Ubuntu20 04 GTX1060 安装步骤 1 安装驱动前一定要更新软件列表和安装必要软件 依赖 sudo apt get update 更新软件列表 sudo apt get install g sudo ap
  • Python--glob一个不错的查找目录及文件的库

    使用glob模块能够快速查找我们想要的目录和文件 当然OS也可以完成这样的操作 匹配0个或多个字符 匹配所有文件 目录 子目录和子目录里的文件 3 5版本新增 代匹配一个字符 匹配指定范围内的字符 如 0 9 匹配数字 a z 匹配小写字母
  • 所有的软件都值得用大模型重做一遍,你来做吗

    所有的软件都值得用大模型重新做一遍 这句话隔前两年是这样的 所有的互联网应用都可以用 Web3 来重做一遍 只不过主角变成了 LLM 大模型 Web3 褪去 大模型扛起重构世界的大旗 在 ChatGPT 出现之前 大模型早已存在 为什么只有
  • 机器人基础知识一

    1 六轴机器人中的六轴是什么 在实际生产中常用的6关节工业机器人有6个可活动的关节 轴 不同的工业机器人本体运动轴的定义也不同 用于保证末端执行器达到工作空间任意位置的轴被称为基本轴或主轴 用于实现末端执行器任意空间姿态的轴 则称为腕部轴或
  • HttpCanary实战教程

    1 基础教程 HttpCanary实战教程 Sendige 博客园 cnblogs com 2 安卓11 12使用HttpCanary抓包https教程 AE博客 墨渊 aeink com 3 HttpCanary使用指南 各种神奇的插件
  • 动态SQL以及告别顺序ID并获取

    首先数据库中的自增id会因为你的删除数据而发生断层 我们可以清空数据库数据和改变下一个自增来解决但都不能不通过操作就解决问题 下面我们通过一行代码获取长形字符串ID package utils import java util UUID a
  • codility 在线编程测试

    转自 http www csdn net article 2012 03 06 312807 企业如何招聘到高质量的程序员 发表于 2012 03 06 23 10 32071次阅读 来源 Coding Horror 55 条评论 作者 J