
这份计划给必须选择学什么的人使用。你会得到一张技能矩阵和一份排序后的学习计划。技能矩阵是一张表,列出技能、职责、类别和证明。
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 输入当作起点:
{"searchTerm": "data engineer\nsoftware engineer\nproduct manager", "startUrls": [], "saveOnlyUniqueItems": true}该输入混有数据工程师、软件工程师和产品经理。把这个混合换成一个职位和一个市场。空的 `startUrls` 列表是已保存输入的一部分。本方法使用上面列出的七个字段。
做第一次小检查时,输入这些值:
| 字段 | 值 |
|---|---|
| searchTerm | data analyst |
| location | 你的一个市场 |
| postedWithin | any |
| maxItems | 3 |
| maxPagesPerSearch | 1 |
| saveOnlyUniqueItems | true |
| fetchJobDetails | true |
这次检查是一份文本样本。它不是每一个在招职位。它也不是对雇主的全面调查。
对你审查的每一行,保留这些输出字段:
| 字段 | 其中的内容 |
|---|---|
| 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 排除在技能计数之外。写明这项缺口。七条采集行中有一条无法标注。技能的职位广告总数是六,不是七。
| 职位 | 雇主 | 全文 | SQL | 电子表格 | Python | 仪表板产品 |
|---|---|---|---|---|---|---|
| J1 | A | 是 | 必需 | 必需 | 未写明 | 未写明 |
| J2 | A | 是 | 必需 | 未写明 | 优先 | 未写明 |
| J3 | B | 是 | 必需 | 必需 | 未写明 | 未写明 |
| J4 | C | 是 | 必需 | 未写明 | 优先 | 未写明 |
| J5 | D | 是 | 未写明 | 必需 | 未写明 | 未写明 |
| J6 | E | 是 | 未写明 | 未写明 | 优先 | 背景 |
| J7 | 未知 | 否 | 未知 | 未知 | 未知 | 未知 |
「未写明」表示这段虚构文本没有说。它不表示该技能不存在于雇主的真实工作中。
| 职位 | 雇主 | 虚构原句 | 技能名 | 类别 | 职责 | 备注 |
|---|---|---|---|---|---|---|
| J1 | A | 你必须使用 SQL 来筛选并连接销售表。 | SQL | 必需 | 筛选并连接表 | 「必须」表示必需。 |
| J1 | A | 你必须使用电子表格来绘制月度结果图表。 | 电子表格 | 必需 | 绘制月度结果图表 | 同一则职位广告中的第二项职责。 |
| J2 | A | SQL 是报告所必需的。 | SQL | 必需 | 编写报告查询 | 文本写明必需。 |
| J2 | A | 额外检查优先使用 Python。 | Python | 优先 | 额外检查 | 优先不是必需。 |
| J3 | B | 你必须使用 SQL 和电子表格来核对订单合计。 | SQL | 必需 | 核对合计 | 一个句子可以包含两项技能。 |
| J3 | B | 你必须使用 SQL 和电子表格来核对订单合计。 | 电子表格 | 必需 | 核对合计 | 不要丢掉第二项技能。 |
| J4 | C | SQL 是必需的。 | SQL | 必需 | 查询数据 | 必需可以单独成立。 |
| J4 | C | Python 是优先项,不是必需项。 | Python | 优先 | 没有必须项 | 文本拒绝必需这一标签。 |
| J5 | D | 你必须在电子表格中清理一张表并绘制图表。 | 电子表格 | 必需 | 清理并绘图 | 文本里没有 SQL。不要添加它。 |
| J6 | E | 优先使用 Python。 | Python | 优先 | 没有必须项 | 只有优先。 |
| J6 | E | 团队使用一种仪表板产品来制作内部图表。 | 仪表板产品 | 背景 | 不是对应聘者的考查 | 不要把它标为必需技能。 |
| J7 | 未知 | 没有描述文本。 | 无 | 未知 | 未知 | 缺口。不要填入零项技能。 |
| 技能 | 类别 | 职位广告 | 职位广告数(共 6) | 雇主 | 雇主数(共 5) |
|---|---|---|---|---|---|
| SQL | 必需 | J1, J2, J3, J4 | 4 | A, B, C | 3 |
| 电子表格 | 必需 | J1, J3, J5 | 3 | A, B, D | 3 |
| Python | 优先 | J2, J4, J6 | 3 | A, C, E | 3 |
| 仪表板产品 | 背景 | J6 | 1 | E | 1 |
必需 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 不是第一项缺口,因为它的类别是优先。
| 职责 | 为什么它在样本中 | 这份虚构中的证明 | 标记 |
|---|---|---|---|
| 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。
| customer_id | customer_name |
|---|---|
| C1 | 北店 |
| C2 | 东店 |
| C3 | 西店 |
| C4 | 南店 |
订单行:10 笔订单。
| order_id | customer_id | order_month | amount |
|---|---|---|---|
| O1 | C1 | 一月 | 10 |
| O2 | C1 | 一月 | 20 |
| O3 | C2 | 一月 | 15 |
| O4 | C2 | 二月 | 25 |
| O5 | C3 | 二月 | 30 |
| O6 | C3 | 二月 | 5 |
| O7 | C1 | 二月 | 40 |
| O8 | CX | 一月 | 12 |
| O9 | C2 | 一月 | 8 |
| O10 | CX | 二月 | 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 没有订单。这些发现是预期说明。它们不是一次运行的结果。
月度表的计划查询文本。本文没有运行它。
SELECT o.order_month, SUM(o.amount) AS month_amount
FROM orders AS o
GROUP BY o.order_month未匹配订单键的计划查询文本。本文没有运行它。
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使用这些验收检查:
- 原来的 10 行订单和 4 行客户保持不变。
- 该工作报告 10 笔订单。
- 该工作报告 4 个客户 ID。
- 该工作报告订单上有 4 个不同的客户键。
- 这 4 个键被写明为 3 个已知 ID 加上未匹配键 CX。
- 备注解释 CX,并且不把它和 C4 混淆。
- 手工检查显示订单金额合计为 183,月度表的合计也是 183。
- 查询文本和图表都已展示。
- 学习者解释一条局限。
一条清楚的局限就够了。例如,月度合计包含未匹配的 30,而已匹配合计是 153。另一条真实局限是,这个项目不能证明 Python。第三条是,六则虚构职位广告不是全国结果。这些局限中的任何一条都可以通过最后一项检查。
8. 排列计划
把工作分成四个部分。不要从优先技能开始。
第一部分是你先做的练习。在这个测试小例上练习一次连接。练习一次电子表格求和。
第二部分是组合项目。建立月度表。建立图表。写出两条发现。
第三部分是复查。另一位读者使用验收检查。读者不必信任一个分数。读者可以数出 10 笔订单,数出 4 个客户 ID,找到 CX,并把金额相加。
第四部分是说明。解释未匹配的键。解释一条局限。
这份虚构内容的排序很短。首先做连接、核对和图表。这些职责是必需的,而且证明缺失。这个项目是有意的组合。明确的职责证据覆盖雇主 A、B 和 D。它不覆盖雇主 C。这些职责并不是每一项都覆盖 3 位雇主。SQL 技能覆盖 3 位雇主。电子表格技能覆盖 3 位雇主。技能覆盖面不是具体职责覆盖面。接着,用这些检查复查该项目。只有在你能解释这项工作之后,再练习 Python。把仪表板产品留在技能计划之外。
你自己设定时间盒。时间盒是你选择花费的时间。它不是你将掌握该技能的承诺。在这份虚构计划里,练习用一次工作时段。项目用一次工作时段。复查和说明用一次工作时段。
如果你改变职位、级别或市场,就采集一份新样本。使用同样的规则。不要把这个虚构排序用于不同的职位。
来源和延伸阅读
作者 Chronometrica · 更新日期
返回顶部 ↑

