职位描述卡片连接到练习任务和一份有顺序的学习计划。
把选定的职位要求变成练习任务。

这份计划给必须选择学什么的人使用。你会得到一张技能矩阵和一份排序后的学习计划。技能矩阵是一张表,列出技能、职责、类别和证明。

Actor 是托管的数据采集程序。Task 是已保存的输入预设。LinkedIn Jobs Actor 采集职位行。你阅读这些行并写出计划。Actor 不标注技能。它不衡量你的能力。它不写计划。

字段是一个有名称的输入,或一个有名称的输出。行是一条采集到的职位记录。2026年10月13日检查了构建版本 0.2.19。它接受 `searchTerm`、`location`、`maxItems`、`maxPagesPerSearch`、`postedWithin`、`saveOnlyUniqueItems` 和 `fetchJobDetails`。

公开的 技能需求 Task 只是一个起始输入。它并不表示分析会替你完成。

一位应届毕业生询问该学哪些技能。这个问题说明需要做出学习选择。它不能证明这份计划能带来面试。它也不衡量任何就业市场的规模。

1. 写明学习决定

在采集职位广告之前,先写下四个选择。一则职位广告就是一条招聘广告。

写出一个职位族。职位族是一种职位,例如数据分析师。写出一个级别。入门级是指该职位的第一份工作。写出一个市场。市场是你想工作的国家或城市。写下你阅读这些职位广告的日期。

这是针对该选择的学习计划。它不是全国技能短缺的证明。它也不是面试承诺。

不要把高级职位和第一份工作的分析师职位混在一起。如果两组都需要,就分开研究每一组。不要在一张表里混用两个市场。

本文后面的课程是原创虚构内容。它使用入门级数据分析师工作。它使用一个名为 Market One 的虚构市场。阅读日期是 2026年10月13日。同一个日历日期也是 Actor 的检查日期。日期相同并不表示这些职位已被采集。

2. 采集完整描述

在标注技能之前,先检查每一行。确认职位身份。确认全文存在。确认行数上限或一次失败的运行是否停止了采集。

行数上限是你要求采集的最大行数。失败的运行是未知的。不要把失败的运行当成零个职位。

只把已保存的 Task 输入当作起点:

json
{"searchTerm": "data engineer\nsoftware engineer\nproduct manager", "startUrls": [], "saveOnlyUniqueItems": true}
2. 采集完整描述

该输入混有数据工程师、软件工程师和产品经理。把这个混合换成一个职位和一个市场。空的 `startUrls` 列表是已保存输入的一部分。本方法使用上面列出的七个字段。

做第一次小检查时,输入这些值:

2. 采集完整描述
字段值
searchTermdata analyst
location你的一个市场
postedWithinany
maxItems3
maxPagesPerSearch1
saveOnlyUniqueItemstrue
fetchJobDetailstrue

这次检查是一份文本样本。它不是每一个在招职位。它也不是对雇主的全面调查。

对你审查的每一行,保留这些输出字段:

2. 采集完整描述
字段其中的内容
jobId来源职位身份
title职位名称
companyName雇主名称
locationRaw职位上的地点文本
descriptionText职位描述
descriptionStatus全文是否可用
jobUrl指向来源职位的链接
query该行的搜索词
searchLocation你搜索的市场
scrapedAt采集该行的时间

`descriptionStatus` 有两个有用的值。`full` 表示描述完整到可以标注。`missing` 表示全文不可用。如果状态是 missing,不要标注技能。把该行计为一项缺口。

只看职位名称可能漏掉职责。一段短摘录可能藏起一项必需职责。它也可能让一项优先技能看起来像必需技能。请阅读 `descriptionText`。

有些可选字段可以不存在。不存在和零不是一回事。如果 `companyName` 不存在,雇主就是未知。不要编造名称。如果 `jobUrl` 不存在,只有在 `jobId` 仍能识别该行时才保留该行。

用 `jobId` 去掉同一则职位广告的重复副本。保留一份。不要只因为一位雇主发布了两则,就删掉两则不同的职位广告。在每则广告上保留雇主。一位雇主有多则广告时,可能让一项技能看起来比实际更常见。

检查 `query` 和 `searchLocation`。如果它们与你的职位和市场不符,就把该行留在这一组之外。如果 `locationRaw` 写的是另一个市场,就排除该职位广告。不要把它混进 Market One,也不要混进你的真实市场。

对构建版本 0.2.19 的一次对照检查采集了三个来源职位 ID。它还采集了来源 URL、采集时间和完整的 `descriptionText`。该对照使用了不同的职位和不同的市场。它达到了三行上限。那三行并不是该市场的全部职位。这次对照说明可以采集全文。它不为数据分析师工作选择技能。它也不支持下面的虚构计数。

3. 为每项技能保存一行证据

一次阅读一份完整描述。对每项技能或职责,保存一行证据。

保存职位、雇主和来源原句。有真实 `jobUrl` 时,保存来源链接。保存一个简短技能名、一个要求类别、职责和一条备注。

要求类别是你读完句子后给出的标签。只使用四个标签。

  • 必需表示文本说你必须具备该技能。
  • 优先表示文本要求该技能,但没有说它是必需的。
  • 背景表示文本提到一个工具,但不是用来考查你的。
  • 不明确表示你无法从字句判断类别。

句子「We use Python」不够。不要仅凭这一句把 Python 标为必需。把它标为背景或不明确。

保留原话。在标注类别之前,不要把原话换成更顺的句子。

原始词数统计 把每一次提及都当成同等重要。类别可以阻止这个错误。优先技能不是必需技能。一次背景提及不是你必须先学的技能。

4. 保持技能清单简短

为每项技能选一个简短技能名。把原话保留在该名称旁边。

SQL 是用来向表提问的语言。只有当文本指的是同一种语言时,才对 SQL 和 Structured Query Language 使用同一个技能名。

不要合并 Java 和 JavaScript。它们是不同的语言。不要把图表工作和一个产品名合并。不要把每一种云服务合并成一项技能。云服务是通过互联网使用的软件。不同的服务可以是不同的技能。

同义词是同一技能的不同用词。你手工决定同义词。如果两个标签冲突,就保留两条备注。不要声称自动技能工具做了这项工作。这个 Actor 不标注技能。

5. 分开统计职位广告和雇主

职位广告数是指有多少则不同的职位广告在该类别中写明该技能。雇主数是指有多少位不同的雇主写明该技能。同一雇主的三则广告是三次职位广告提及。它们仍然是一位雇主。

同时报告类别和两个计数。只用有全文的职位广告作为职位广告总数。不要把结果称为客户需求。不要称为全国比率。不要称为招聘增长。这种搜索不是全部职位的随机样本。

虚构样本

下面的表是原创虚构内容。它们用来教这些计数。它们不是 Actor 的输出。它们也不是那次三行对照。

虚构内容有六则你可以标注的职位广告。五位雇主发布了它们。雇主 A 发布了 J1 和 J2。雇主 B 发布了 J3。雇主 C 发布了 J4。雇主 D 发布了 J5。雇主 E 发布了 J6。标签 J1 到 J7 是课程名称。它们不是来源 ID。这份虚构内容没有来源 URL。在真实的表里,保存 `jobId` 和 `jobUrl`。

第七条采集到的行 J7 没有 `descriptionText`。它的虚构状态是 missing。它的技能未知。未知不是零。把 J7 排除在技能计数之外。写明这项缺口。七条采集行中有一条无法标注。技能的职位广告总数是六,不是七。

5. 分开统计职位广告和雇主
职位雇主全文SQL电子表格Python仪表板产品
J1A是必需必需未写明未写明
J2A是必需未写明优先未写明
J3B是必需必需未写明未写明
J4C是必需未写明优先未写明
J5D是未写明必需未写明未写明
J6E是未写明未写明优先背景
J7未知否未知未知未知未知

「未写明」表示这段虚构文本没有说。它不表示该技能不存在于雇主的真实工作中。

5. 分开统计职位广告和雇主
职位雇主虚构原句技能名类别职责备注
J1A你必须使用 SQL 来筛选并连接销售表。SQL必需筛选并连接表「必须」表示必需。
J1A你必须使用电子表格来绘制月度结果图表。电子表格必需绘制月度结果图表同一则职位广告中的第二项职责。
J2ASQL 是报告所必需的。SQL必需编写报告查询文本写明必需。
J2A额外检查优先使用 Python。Python优先额外检查优先不是必需。
J3B你必须使用 SQL 和电子表格来核对订单合计。SQL必需核对合计一个句子可以包含两项技能。
J3B你必须使用 SQL 和电子表格来核对订单合计。电子表格必需核对合计不要丢掉第二项技能。
J4CSQL 是必需的。SQL必需查询数据必需可以单独成立。
J4CPython 是优先项,不是必需项。Python优先没有必须项文本拒绝必需这一标签。
J5D你必须在电子表格中清理一张表并绘制图表。电子表格必需清理并绘图文本里没有 SQL。不要添加它。
J6E优先使用 Python。Python优先没有必须项只有优先。
J6E团队使用一种仪表板产品来制作内部图表。仪表板产品背景不是对应聘者的考查不要把它标为必需技能。
J7未知没有描述文本。无未知未知缺口。不要填入零项技能。
5. 分开统计职位广告和雇主
技能类别职位广告职位广告数(共 6)雇主雇主数(共 5)
SQL必需J1, J2, J3, J44A, B, C3
电子表格必需J1, J3, J53A, B, D3
Python优先J2, J4, J63A, C, E3
仪表板产品背景J61E1

必需 SQL 出现在六则中的四则。这些职位广告属于五位雇主中的三位:A、B 和 C。J1 和 J2 都来自雇主 A。第四则 SQL 职位广告增加的是一则广告。它不增加一位雇主。

必需的电子表格工作出现在六则中的三则。这些职位广告属于五位雇主中的三位:A、B 和 D。雇主 D 要求电子表格,并且没有提到 SQL。

优先 Python 出现在六则中的三则。这些职位广告属于五位雇主中的三位:A、C 和 E。在这张表里,Python 不是必需的。

仪表板产品只在 J6 中是背景。六则职位广告都没有把它标为必需。这个「没有」是这六段文本的标签计数。它不是一个国家的结果。J7 仍然未知,所以它不属于这个「没有」。

按关键词排序会把 SQL 放在第一,因为四大于三。然后电子表格会与 Python 并列。它还可能保留仪表板产品。这个排序是错误的学习顺序。

雇主数使 SQL、电子表格和 Python 持平,各有三位雇主。要求类别随后把 Python 排到两项必需技能之后。它也把仪表板产品移出学习清单。多出的那则 SQL 广告是雇主 A 的第二次。它不应让 SQL 单独排在电子表格工作之前。

不要把六分之四变成一个国家全部职位的比率。六分之四只描述这一套虚构内容。

6. 标出你已有的证明

简历上的技能名不是证明。证明是另一个人可以检查的已完成工作。一条查询可以是证明。一张清理后的表可以是证明。一张带有书面决定的图表可以是证明。

把每项反复出现的职责标为已有、部分或没有。已有表示已经检查过的证明存在。部分表示该职责有一部分已展示,有一部分缺失。没有表示没有展示证明。不要编造录用分数。不要预测面试。

在这份虚构内容里,学习者可以写一个基本的 SQL 筛选。筛选会保留一些行并去掉其他行。这项证明记为「已有」。学习者没有完成的连接。连接按一个共用键把两张表连起来。这项证明记为「没有」。学习者没有一份合计已核对的报告。核对是指输出合计与输入合计一致。这项证明记为「没有」。电子表格图表的证明也记为「没有」。Python 不是第一项缺口,因为它的类别是优先。

6. 标出你已有的证明
职责为什么它在样本中这份虚构中的证明标记
SQL 筛选在 SQL 职位广告中为必需可以写出基本筛选已有
SQL 连接J1 写了筛选和连接。雇主是 A。没有完成的连接没有
核对合计J3 要求这项职责。雇主是 B。没有已核对的报告没有
电子表格图表图表职责出现在 J1 和 J5。雇主是 A 和 D。没有完成的图表没有
Python只有优先未被选为第一项缺口以后
仪表板产品只有背景不是必需职责排除

技能覆盖面不是具体职责覆盖面。SQL 技能覆盖 3 位雇主。电子表格技能覆盖 3 位雇主。连接职责出现在雇主 A 的 J1。核对职责出现在雇主 B 的 J3。图表职责出现在雇主 A 和 D 的 J1 和 J5。合在一起,这些明确的职责证据覆盖雇主 A、B 和 D。它不覆盖雇主 C。这些职责并不是每一项都覆盖 3 位雇主。

再练习筛选,只会重复已经存在的证明。缺失的必需证明是连接、已核对的合计和图表。第一个项目必须覆盖这些缺口。不要让 J2 单独把 Python 变成整个计划。

7. 选择一个项目

在这份虚构内容里,使用 SQL 连接、核对和电子表格图表。这一组是有意的组合。这三项职责适合同一份工作。三项都与必需文本相连。连接职责出现在雇主 A 的 J1。核对职责出现在雇主 B 的 J3。图表职责出现在雇主 A 和 D 的 J1 和 J5。合在一起,明确的职责证据覆盖雇主 A、B 和 D。它不覆盖雇主 C。SQL 技能覆盖 3 位雇主。电子表格技能覆盖 3 位雇主。技能覆盖面不是具体职责覆盖面。这些职责并不是每一项都覆盖 3 位雇主。

有用的项目能证明这项工作。一长串工具不会让它有用。写出你必须先练习的技能。先练习基本连接和电子表格求和。在你能解释 SQL 和电子表格结果之前,不要加入 Python。

验收检查是一项用来判定项目已完成的测试。下面的检查是计划。它们不是测得的学习者结果。本文没有运行查询。下面的合计是对这份测试小例的手工核对。

测试小例是用于该测试的一小套虚构行。保持输入行不变。

客户行:4 个客户 ID。

7. 选择一个项目
customer_idcustomer_name
C1北店
C2东店
C3西店
C4南店

订单行:10 笔订单。

7. 选择一个项目
order_idcustomer_idorder_monthamount
O1C1一月10
O2C1一月20
O3C2一月15
O4C2二月25
O5C3二月30
O6C3二月5
O7C1二月40
O8CX一月12
O9C2一月8
O10CX二月18

把这些读成两个不同的计数。客户表有 4 个 ID:C1、C2、C3 和 C4。订单使用 4 个不同的客户键:C1、C2、C3 和 CX。其中 3 个订单键是已知客户 ID。有 1 个订单键未匹配。未匹配的键是 CX。C4 没有订单。CX 和 C4 不是同一个事实。

凭直接查看,每个客户 ID 出现一次。预期的重复客户 ID 数是 0。每个订单 ID 也出现一次。这是对测试小例的手工阅读。它不是查询结果。

手工合计,如果每一笔订单都留在月度表中:

  • 一月的金额是 10、20、15、12 和 8。它们的和是 65。
  • 二月的金额是 25、30、5、40 和 18。它们的和是 118。
  • 两个月的和是 65 和 118。它们的和是 183。
  • 十笔订单金额的和也是 183。
  • CX 的金额是 12 和 18。它们的和是 30。
  • 已匹配金额是 183 减 30,即 153。

一张包含每一笔订单的正确月度表应显示 1月 65、2月 118,合计 183。图表应显示这两个月的金额。本文不包含一张完成的图表。你在电子表格中制作图表。

未匹配的订单是 O8 和 O10。两者都使用 CX。一次正确的未匹配键测试应指向这两行。

这份虚构内容的项目简报:

  • 输入:上面的 10 行订单和 4 行客户。
  • 输出:一张月度销售表、一张电子表格图表,以及两条书面发现。
  • 方法:把订单连到客户,标出 CX,并按月对 amount 求和。
  • 质量检查:手工把输入相加,并使 183 与月度表一致。
  • 展示:查询文本、图表、未匹配的键,以及一条局限。

从测试小例应能得出两条发现。第一,CX 不在客户表中,它的金额是 30。第二,C4 没有订单。这些发现是预期说明。它们不是一次运行的结果。

月度表的计划查询文本。本文没有运行它。

sql
SELECT o.order_month, SUM(o.amount) AS month_amount
FROM orders AS o
GROUP BY o.order_month
7. 选择一个项目

未匹配订单键的计划查询文本。本文没有运行它。

sql
SELECT o.order_id, o.customer_id, o.amount
FROM orders AS o
LEFT JOIN customers AS c
  ON c.customer_id = o.customer_id
WHERE c.customer_id IS NULL
7. 选择一个项目

使用这些验收检查:

  1. 原来的 10 行订单和 4 行客户保持不变。
  2. 该工作报告 10 笔订单。
  3. 该工作报告 4 个客户 ID。
  4. 该工作报告订单上有 4 个不同的客户键。
  5. 这 4 个键被写明为 3 个已知 ID 加上未匹配键 CX。
  6. 备注解释 CX,并且不把它和 C4 混淆。
  7. 手工检查显示订单金额合计为 183,月度表的合计也是 183。
  8. 查询文本和图表都已展示。
  9. 学习者解释一条局限。

一条清楚的局限就够了。例如,月度合计包含未匹配的 30,而已匹配合计是 153。另一条真实局限是,这个项目不能证明 Python。第三条是,六则虚构职位广告不是全国结果。这些局限中的任何一条都可以通过最后一项检查。

8. 排列计划

把工作分成四个部分。不要从优先技能开始。

第一部分是你先做的练习。在这个测试小例上练习一次连接。练习一次电子表格求和。

第二部分是组合项目。建立月度表。建立图表。写出两条发现。

第三部分是复查。另一位读者使用验收检查。读者不必信任一个分数。读者可以数出 10 笔订单,数出 4 个客户 ID,找到 CX,并把金额相加。

第四部分是说明。解释未匹配的键。解释一条局限。

这份虚构内容的排序很短。首先做连接、核对和图表。这些职责是必需的,而且证明缺失。这个项目是有意的组合。明确的职责证据覆盖雇主 A、B 和 D。它不覆盖雇主 C。这些职责并不是每一项都覆盖 3 位雇主。SQL 技能覆盖 3 位雇主。电子表格技能覆盖 3 位雇主。技能覆盖面不是具体职责覆盖面。接着,用这些检查复查该项目。只有在你能解释这项工作之后,再练习 Python。把仪表板产品留在技能计划之外。

你自己设定时间盒。时间盒是你选择花费的时间。它不是你将掌握该技能的承诺。在这份虚构计划里,练习用一次工作时段。项目用一次工作时段。复查和说明用一次工作时段。

如果你改变职位、级别或市场,就采集一份新样本。使用同样的规则。不要把这个虚构排序用于不同的职位。

来源和延伸阅读

作者 Chronometrica · 更新日期

返回顶部 ↑