Skip to content
目录

极客 - 服务中心 - 出题指南

老师您好!欢迎来到“极客-服务中心”参与技能出题任务~

前言

首先,感谢您于繁忙的工作中抽出时间,为极客旗下职业学院的技能测评模块贡献题目。

技能测评,旨在帮助同学们通过测评题目盘点技能知识储备,发现自己在某个技能点上 的优劣势,以指导同学们更有针对性地进行高效学习。

下面是关于「出题」相关的步骤说明,请仔细阅读。

1 - 出题地址

1. 查看出题任务

获得权限后刷新 https://fuwu.jiker.com/ 会看到菜单 - 技能出题,点开即可看到出题需 求,搜索相关出题技能,点击“去出题”

2. 查看我的出题

提交后可以在“题库建设 - 技能出题 - 我的出题”列表里查看所有已提交的题目以及题目的 审核状态:

2 - 出题标准【重要】

序号题目-出题标准
0题型: 技能栈出题全部为单选题
1题目符合实效性(最新版本或主流版本),没有版本依赖
2题目考察核心知识点
3题干清晰无歧义,无错别字,无超链接
4专有名词书写格式要求按官方写法( 如:MySQL、MongoDB )
5图片清晰无水印
6代码格式正确、缩进正常,可运行 ,无多余转义字符
7四个选项设置合理、无序号、无方向指示词(如 ABC,以上都对)
8答案正确
9答案解析合理(简洁明了,逻辑清晰,说明选择正确答案的原因)
10知识点关联合理(最多关联 2 个知识点)
11题目类别设置合理(概念题、代码题、场景题、其他)
12题目难度设置合理(简单、普通、困难)
13建议答题时间合理(60 ~ 120S)

3 - 出题要求明细

1. 题目信息

一道题目的设计需要包含以下两部分内容:

  • 第一部分: 题目前置信息,包含:题目类型、难度等级、所属知识点、建议最长答 题时间、题目来源、查看方式;
  • 第二部分: 题目内容,包含:题干、选项、解析;

2. 第一部分:题目前置信息


1.1 题目类型要求

题目类型分为: 概念题、代码题、场景题、其他

理论题/概念题
代码题
场景题
困难题
以考查语法,执行流程,配置,记忆等元素组成的题目,通常题目中出现的代码不多 以考查代码运行结果,或者是部分代码填空,或根据结果,修改某几行代码的题目与工作应用背景相关的题目,考查知识的实际应用考察算法题、综合应用题,题干具有分析逻辑,不是表面题

例 1:下列选项中不属于结构化程序设计原则的是 ?

  • 选项 1:可封装
  • 选项 2:自顶向下
  • 选项 3:模块化
  • 选项 4:逐步求精

例 2: 想要在 Canvas 画布中插入一段文本,以下哪个方 法能实现?

  • 选项 1:fillsText()
  • 选项 2:strokeText()
  • 选项 3:measureText()
  • 选项 4:nameText()

例 3: 在检查条件是否为真之前,以下哪个循环总是至少 执行一次?

  • 选项 1:do-while
  • 选项 2:for-each
  • 选项 3:while
  • 选项 4:for

例 1:

js
var x = ["foo"];
x.quux = "Hello";
x[1] = "bar";
console.log(x.length);
  • 选项 1:2
  • 选项 2:3
  • 选项 3:Error on last line:index out of bounds
  • 选项 4:1

例 2:

c#
List<String> s = new ArrayList<String>();
s.add("1");
s.add("2");
s.add("3");
s.add("4");
ListIterator<String> iter = s.listIterator();
while(iter.hasPrevious()) {
  System.out.print(iter.previous()+"");
}
  • 选项 1:1、2、3、4
  • 选项 2:4、3、2、1
  • 选项 3:运行时错误
  • 选项 4:无输出

解析: 双向迭代:ListIterator,右前向后或者 由后向前输出,只能够为 List 子接口输出接口。双向输出,必须是有从前到后的输出,才 有从后到前的输出

例 1: 在我们使用对象存储(OSD)进行管理对象的过程 中,以下哪种方法可以提高系统的读写速度?

  • 选项 1:增加 OSD 访问接口
  • 选项 2:增加 OSD 服务器
  • 选项 3:增加对象 ID 的设置
  • 选项 4:加大偏移

解析: 对象存储过程中,OSD 不提供接口访问方 式,Client 请求数据时用对象 ID、偏移进行数据读写。当 OSD 服务器数量越多,系统读 写速度的提升就越大,通过增加服务器的方式,实现了提高读写速度的目的。

例 2:hive 中存在两张表 user 和 app_behavior,分别 存储用户信息及对应的 app 访问行为,现需要统计每个用户每天访问的不同 app 名称数量 ,发现任务执行缓慢,需要思考如何提升执行效率,以下选项中错误的是?

  • 选项 1:检查两张表中 join 连接键的数据类型是否一致
  • 选项 2:检查 app 访问信息表是否按照日期进行分区
  • 选项 3:检查是否配置数据倾斜时负载均衡
  • 选项 4:检查 app_behavior 表中 app 名称是否存在重复

解析: 正确选项为“检查 app 名称是否存在重复 ”。用户访问 app 行为记录表中每个用户基本都存在重复访问的 APP,检查该字段是否存在 重复值并不能解决执行慢的问题 。

场景(代码): 有一组多维数据,需要过滤出姓氏为“李”的所有订单,并根据订单汇总出其最近3个月订单总额最多的3位客户。
php
<?php
$orders = array(
    array(
        "name" => "李明",
        "order_date" => "2023-01-15",
        "amount" => 100
    ),
    array(
        "name" => "张三",
        "order_date" => "2023-02-20",
        "amount" => 150
    ),
    array(
        "name" => "李四",
        "order_date" => "2023-03-10",
        "amount" => 200
    ),
    array(
        "name" => "李雷",
        "order_date" => "2023-04-05",
        "amount" => 300
    ),
    array(
        "name" => "王五",
        "order_date" => "2023-05-01",
        "amount" => 120
    ),
    array(
        "name" => "李华",
        "order_date" => "2023-05-25",
        "amount" => 250
    ),
    array(
        "name" => "李明",
        "order_date" => "2023-05-28",
        "amount" => 180
    ),
    array(
        "name" => "李四",
        "order_date" => "2023-06-01",
        "amount" => 220
    )
);
// 填充代码
?>
  • 选项 1
php
$filtered_orders = array_filter($orders, function ($order) {
    return mb_substr($order["name"], 0, 1, 'utf-8') == "";
});

$customer_totals = array();
foreach ($filtered_orders as $order) {
    $name = $order["name"];
    if (!isset($customer_totals[$name])) {
        $customer_totals[$name] = 0;
    }
    $customer_totals[$name] += $order["amount"];
}

arsort($customer_totals);
$top_customers = array_slice($customer_totals, 0, 3);
print_r($top_customers);
  • 选项 2
php
$filtered_orders = array_filter($orders, function ($order) {
    return mb_substr($order["name"], 0, 1, 'utf-8') == "";
});

$customer_totals = array();
foreach ($filtered_orders as $order) {
    $name = $order["name"];
    if (!isset($customer_totals[$name])) {
        $customer_totals[$name] = 0;
    }
    $customer_totals[$name] += $order["amount"];
}

asort($customer_totals);
$top_customers = array_slice($customer_totals, 0, 3);
print_r($top_customers);
  • 选项 3
php
$filtered_orders = array_filter($orders, function ($order) {
    return mb_substr($order["name"], 0, 1, 'utf-8') == "";
});

$customer_totals = array();
foreach ($filtered_orders as $order) {
    $name = $order["name"];
    if (!isset($customer_totals[$name])) {
        $customer_totals[$name] = 0;
    }
    $customer_totals[$name] += $order["amount"];
}

arsort($customer_totals);
$top_customers = array_slice($customer_totals, -3);
print_r($top_customers);
  • 选项 4
php
$filtered_orders = array_filter($orders, function ($order) {
    return mb_substr($order["name"], 0, 1, 'utf-8') == "";
});

$customer_totals = array();
foreach ($filtered_orders as $order) {
    $name = $order["name"];
    if (!isset($customer_totals[$name])) {
        $customer_totals[$name] = 0;
    }
    $customer_totals[$name] += $order["amount"];
}

arsort($customer_totals);
$top_customers = array_slice($customer_totals, -3);
print_r($top_customers);

解析: 首先,使用array_filter()函数过滤出 姓氏为"李"的订单。然后,创建一个关联数组$customer_totals,用于存储每个客户的订 单总额。遍历过滤后的订单数组,根据客户名累加订单金额到对应的客户总额中。接着,使 用 arsort()对客户总额进行降序排序。最后,使用array_slice()取出排序后的前 3 个 元素,即订单总额最多的 3 位客户,并使用print_r()输出结果。选项 1 中的填充代码 实现了这个逻辑,并得出正确结果。

1.2 难度级别(一定要仔细阅读)

题目难度分为:简单、普通、困难

级别说明
参考图
  • 难度级别定义:

    • 简单 - 了解 - 0 ~ 2 年工作经验
    • 普通 - 熟悉/掌握 - 3 年~ 5 年左右工作经验
    • 困难 - 精通/专家 - 5 年以上工作经验
  • 注:题目属于哪个级别,可以参照:

    • 题目拗口的打回
    • 标点符号,语句不通打回
  • 简单:属于记忆型、概念型、不涉及底层逻辑或数据库,不涉及复杂的逻辑代码

    • 一个名词的概念正确与错误选择
    • 1~5 行代码题(基础代码调用,解析 1~2 句话说明题目逻辑)
    • 一个名词的场景
    • 题干包含信息非常简洁的
  • 普通:理解,2 个以上知识点的综合应用,不属于记忆性的题目,解决实际问题,综 合知识的逻辑或者代码,如:一个知识点+数据库

    • 2 个及以上名词的对比分析,或简单综合 2 个名词
    • 2 个及以上名称的综合场景题
    • 5~10 行代码题(至少 2 句话以上的解析进行逻辑说明)
    • 题干描述看起来信息量比较丰富
  • 困难:应用,框架整合、框架操作数据库、源码解读、系统优化,多知识点融合,技 术经验积累,经验判断,解决方案或者有一定挑战的编程等。(可选取知识树标记为 R4 级别的知识点)

    • 场景题:解析里面可以看出有一定的前后逻辑分析(不是一两句话,至少有三四句话去 分析场景逻辑)
    • 编程题:10~20 行,同时解析里面有前后逻辑分析(不是一两句话,至少有三四句话去 分析代码逻辑)多知识点底层知识点题干内容丰富,有一定的前后逻辑关系

1.3 所属知识点

  1. 该技能点有完整的知识树

根据题目核心考察点,勾选题目对应的知识树上的知识点,最多关联 2 个知识点;

  1. 该技能点知识树不完整

如果当前技能点对应的知识树,缺少核心知识点内容,请联系平台对接人进行补充;

知识树说明知识树示例
  • 知识树: 是掌握该技能所需的核心知识结构,1 棵知识树应该全面覆盖该技能点的重要知识点;如右图;
  • 建知识树: 如果知识树不完整,出题之前先建好该技能点对应的知识树发给对接人员审核录入;(可用 excel 表格、word、xmind 等文本方式提供知识树)
  • 出题建议: 需要优先覆盖知识树上的重要知识点;

1.4 建议最长答题时间

用户作答最长不超过的答题时长,超出时长未作答时将自动判错。可根据题目类型、难度等 实际情况灵活设置答题时间,一般以 30S 为单位累加,基本参考建议如下:

  • 简单题目:60 秒
  • 普通题目:90 秒
  • 困难题目:120 秒

1.5 题目来源

一般老师出题选择:原创、网络或改编 即可;(⚠️ 注: 网络题目需要修改, 避免版权问题)

1.6 查看方式

默认选择:中文

3. 第二部分:题目内容

题目内容: 包含“ 题干 ”,四个“ 选项 ”,答案“ 解析 ”;

2.1 题干

题干: 清晰无歧义,无错别字,无超链接;

题干要求说明
示例
  • 如果题干是问句,使用“问号?”替代当前的(),如果题干是填空题,使用____ 替代当前的()

题干:可以包含文字、图片,代码;

  • 题目符合实效性(最新版本或主流版本)
  • 题目考察核心知识点,没有版本依赖 (不能是特定版本下才能得出正确答案)

题目确保为主流版本,官方明确表示不维护的版本不能使用;

例如: 在 Java,Android 的代码中,禁止出现过时方法,如出现过时的方法 IDE 中 显示如下:

​​

  • 题干避免使用第二人称“你”“您”,客观描述,避免口语化表达;

题干中使用第二人称“你”“您”,改为客观描述即可

​​

修改为:

​​

  • 题干避免使用简陋的问题模式,

错误写法: “下列说法正确的是?”“下列说法错误的是?”

建议改为: “关于技能点,下列说法正确/错误的是?”

​​

  • 无错别字

错别字: “火币 ” 应该为“货币”

​​

  • 题干中有专有名词书写格式要按照官方规范写法

错误写法: postman mysql mongodb ,专有名词需要注意大小写;

正确写法: Postman、MySQL、MongoDB

  • 有序列表文字需要使用排序符号,提交之前要仔细查看预览效果

​​

  • 图片: 图片最多一张,要求清晰无水印,无LOGO标识,无版权问题;

​​

  • 题目中所有代码块 需要用用 一个反引号 包裹,不然可能显示混乱,提交之前要 仔细查看预览效果

​​

  • 题目中 单行代码 需要用用 一个反引号 包裹,不然可能显示混乱,提交之前要 仔细查看预览效果

  • 代码最好不超过10行,每行字符不超过40个,突出重要代码段即可;
  • 代码中注意多余转义字符,要去掉;保证代码的正确性;
  • 所有的代码一定要保证是从IDE中复制到题库系统的,而不是从网页,文档,聊天框中复制
  • 确保代码之间是有缩进的;(尤其是Python代码,没有缩进无法阅读)

注意:题干、选项和解析均使用Markdown 语法 编写,当前编辑器为Markdown 编辑器;

Markdown 基本语法可以参考:​https://commonmark.org/

2.2 选项

四个选项: 选项设置合理、无序号、无方向指示词(如 ABC,以上都对);答案准确 ;

选项要求说明示例
- 选项内容不超过两行(答题时间有限,只有 60s,过长不方便阅读);
- 选项语句逻辑通顺,注意换行排版,没有错别字;
如下图题目中选项内容过多
选项:四个选项末尾不要有任何标点符号;选项末尾统一去掉标点符号
选项中不能出现 ‘A’ , 'B', 'C', 'D' 等表示顺序的词 (因为录入的选项是随机乱序排列的) ​
选项中不要这样 1,2,3,4 或者,A,B,C,D 方式排版的题目选项,体验很差
一个技能点的题目不允许太多答案为“其他都对”,“其他都错”类似的题目,允许比例 100: 4

2.3 答案解析

答案解析要求说明示例
答案解析: 简洁明了,逻辑清晰,说明选择正确答案的原因;用户答题完毕可以查看题目答案解析,帮助理解问题,如图:

4 - 出题指导【必读】

主题
主题说明

出题范围

按照技能点对应的知识树,聚焦知识树上的核心知识点设计出题范围

出题思路

  • 依据知识点思考它的出题纬度和场景,比如数组/List ,声明场景、下标读、下标写、下 标删、弹出第一个,最后一个
  • 基于应用场景寻找有可能的出题点
  • 基于实际功能代码段寻找可能的出题点

出题纬度

  • 记忆: 纯记忆的题目,检查这个人是否知道相关概念,考察需要记忆的知识
  • 映射:通过概念将其映射到实际的代码上,比如学习了类和实例,我们可以考察一行声明 代码中哪个表达的是类,哪个是实例
  • 模拟:大脑模拟计算机是怎么执行代码的,常用的考察方式是给一段代码,然后问输出是 什么,这样的代码考察可以变换多种条件考察
  • 解释:出现某种问题的时候,是否可以用知识解释原因
  • 决策:面对应用场景,判断应该使用哪种方案来解决问题,这种通常要给一个非技术词汇 描述的功能性需求或者一个较复杂的技术场景,然后提供一些方案供选择

出题难度级别

  • 从常用角度区分: 不常用就是高难度,常用就是低难度,我们不能考一些偏僻但是 不常用的知识点。从初级,中级,高级等不同职位常用的知识出发,可以作为划分难度的 角度,类似的还有性能,内存,安全等质量维度划分难度;

资源获取

  1. 直接搜索现成的题目,搜索关键字 Quiz,如下参考地址:
  1. 搜索在线学习网站,对照每篇的学习内容和知识大纲,找关键点和样例代码出题
  2. 搜索 API 文档,reference,结合相关信息出题

1. 非技术类技能点

根据极客的应用场景,技能点大致可分为两大类:技术类、非技术类非技术类泛 指产品洞察、产品思维等考查学员思维能力的技能点。以产品洞察为例,生产过程中大部分 题目可能存在歧义,如下简单概念题:

当前选项都可以看作是“市场研究的目的”,且不同企业的要求也可能不同,不建议类似的出 题方式。

现基于技能点要求,提供如下出题思路。

1.1 简单概念题

以上面“市场研究的目的”考点为例,简单概念题只需考查核心定义即可,如下:

可以看到,相较于问题题目更加简洁清晰,且选项区分度较大,不会对学员造成干扰。

1.2 普通题

鉴于此类技能点无硬性要求,且代码、场景题较难构建,可以适当降低要求。以“产品 定位调整”考点为例,如下:

此题结合具体的应用场景,考查了学员的“定价调整思维”,可以看作普通题。

实际出题环境下,场景描述部分非必要可去掉。

1.3 困难题

困难题建议老师结合具体的应用场景(如:计算、分析等),分析知识树,选择适合的 知识点出题,如下:

可以看到,虽然整体的计算量不大,但更多的是提升学员对应的逻辑思维方式,可看作困难 题。同时,此类题目建议老师严谨自检,大模型可能存在错误。

注:上述例题为初始版本,仍存在一定问题,不作为正式题目;出题思路仅供参考,建议 老师发散思维,结合工作场景构建特色出题方式。

5 - 题目校验

1. 知识点不超过 2 个

选择知识点时,不超过 2 个,超出时会无法提交题目;

2. 重复校验

  • 选项重复校验:去掉空格和换行后,选项中如有完全一样的,会提交失败,需要修改;
  • 题干重复率校验:
    • 查重默认忽略代码块。但若内容仅有代码块,则会对代码查重;
    • 去掉空格、换行和特殊字符后,题干会和极客题库进行对比,重复率 ≥90%时,会提交 失败,需要修改;

6 - 题目驳回/废弃

驳回/废弃的核心原则:题目考查知识点太偏太怪(不是核心知识内容)、过时的题目。 尤其是以版本为考核要点的题。

  1. 考察快捷键相关的;
  2. 工具本身的版本特性(例如在 XMind 哪个版本中,可以使用 XXX)
  3. 考察工具中,某些窗口名称,和显示顺序的
  4. 考察工具使用顺序的;
  5. 考察发布版本时间点的;

7 - 费用结算

1. 题目计费规则

1.1 出题定价

基准价 25 元

(难度系数-简单 ×0.8、普通 ×1、困难 ×1.25)✖️(类型系数-概念 ×1、场景 ×1.25、代 码 ×1.2、其他 ×1)

简单题普通题困难题
概念20 元25 元31.25 元
场景25 元31.25 元39.06 元
代码24 元30 元37.5 元
其他20 元25 元31.25 元

1.2 过程产出的费用

注意:同一技能点下,有待修改题目,修改后可创建新的题目。一道题,同一

环节(审核 / 质检 / 终审)驳回第 2 次,会被作废。 :::

题目入库费用=出题定价-过程费用。若一次性通过,即出题后,审核、质检、终审一次性 通过,则没有过程费用。

1.3 质检费用

  • 每审核一题一元,题目入库后统计计算。
  • 每质检一题两元,题目入库后统计计算。
  • 每终审一题一元,题目入库后统计计算。

驳回时请写明具体原因,不写原因,不计入费用统计。

2023/06/15 前出的题目

  • 结算规则:按照原扣费规则结算:出题费用 - 审核费用 - 质检费用 - 终审费用。 也 不计算题目系数
  • 废弃规则:按照新规则,同一环节驳回两次即作废(2023/06/15 前驳回记录不计入统 计)

审核/质检费用,按照新规则即刻生效。

2. 系统提现

提交题目并审核质检终审入库后,即可获得题目对应的价格报酬;「已拒绝」驳回的题目需 修改后重新提交,如果放弃修改则无法获得该题对应的报酬。

可以在「我的钱包」查看收支明细,以及进行提现操作。