FDE Times 数据在招 FDE 职位 863▼55 近 7 天在招职位数的变化(同口径比较):不计入本周新开始追踪的公司的职位近 7 天新增 71在招公司 181支持远程 24%美国薪资中位数 $200k招聘最多 Palantir 95
ENVI

前线部署工程师(FDE)的专业媒体

书籍与课程

让 Python FDE 读懂 Express 的一门开源课程

The Odin Project 的 NodeJS 课程讲路由、认证、ORM 和测试,老手不必慢学,但要按顺序。

分享微博

要点速览

  • The Odin Project 是一套开源的全栈 Web 课程,由 Erik Trautman 于 2013 年创立,由志愿者维护。
  • Full Stack JavaScript 路径共七门课程,应按顺序学习。NodeJS 课程讲授 Express、PostgreSQL、认证、ORM、API 和测试。
  • 对 Python FDE 来说,JavaScript 和 NodeJS 两门课需要精读,这样才能读懂并修复客户的 Node 后端。
一条竖线按顺序串起 The Odin Project 的 Full Stack JavaScript 路径中的七门课程:Intermediate HTML/CSS、JavaScript、Advanced HTML/CSS、React、Databases、NodeJS、Getting Hired。JavaScript 课程以橙色突出显示,并注明 Python 用户往往在 async 和 ES6 模块上卡壳。NodeJS 课程以蓝色突出显示,注明涵盖 Express、PostgreSQL、身份验证和测试。
The Odin Project 的课程页要求学员按图中顺序学完这七门课,async 和 ES6 模块在学到 Express 之前的 JavaScript 课程中讲授。来源:The Odin Project 的 Full Stack JavaScript 路径页面。

设想你在客户现场的第一周。你带来的 AI 系统用 Python 编写,而客户的整个后端都跑在 Express 和 Node.js 上。要把两者接起来,你得读懂他们的路由、中间件和用户认证方式。没有人会等你学完一门长课程再开工。

所以,Python 背景的前线部署工程师(FDE)值得关注 The Odin Project,一套开源的全栈 Web 开发课程。它的 Full Stack JavaScript 路径里有一门专门的 NodeJS 课程,涵盖 Express、PostgreSQL、认证、ORM、API 和测试,正是你打开客户 Node 代码库时最可能碰到的内容。

有几年经验的工程师不必按新手节奏逐课学完。关键是知道哪一部分对应哪项工作,以及从哪里入手。

背后是谁,为什么这一点重要

Erik Trautman 于 2013 年创立了 The Odin Project。项目的关于页面写明,课程由志愿者团队维护并持续改进,网站和全部课程都是开源的。GitHub 仓库也直接说明,项目依赖社区贡献。

学习者能直接从这种模式中受益。课程是开放的,任何一课你都可以阅读、修改并提交 pull request。遇到卡点时,还有同样由志愿者运营的 Discord 社区,可以向走过这条路的人提问。

七门课程,一条值得遵守的建议

Full Stack JavaScript 路径共有七门课程:Intermediate HTML/CSS、JavaScript、Advanced HTML/CSS、React、Databases、NodeJS 和 Getting Hired。路径页面建议按列出的顺序学习。

Python 工程师容易想直接跳到 NodeJS。不要跳过 JavaScript 课程。这门课从构建动态、可交互的网页讲起,随后涵盖 async、测试、OOP、ES6 模块、npm、Webpack 和数据结构。Python 开发者第一次读 Node 代码时,通常就卡在 async 和模块上。

如果你的工作以后端为主,HTML/CSS 和 React 可以学得快一些,但不要完全放弃:哪天需要做个小界面给客户演示,用的就是这部分。Databases 课程要慢慢学,因为它紧接在 NodeJS 之前,而 NodeJS 课程要用到 PostgreSQL。

NodeJS 课程对应客户现场的哪些工作

NodeJS 课程把 JavaScript 带到服务器端,用 Express 构建后端,并引入 PostgreSQL 关系型数据库。各部分依次是 Introduction to NodeJS、Express、Authentication、ORMs、APIs 和 Testing Express。下表把每一部分与客户现场可能遇到的任务对应起来。

NodeJS 课程的部分 客户现场的对应任务
Express 读懂现有路由,新增一个调用你的 AI 服务的端点
Authentication 弄清谁有权调用这个端点,避免开出新的漏洞
ORMs 与 PostgreSQL 查询客户的真实数据,不写与 schema 脱节的 SQL
APIs 设计客户前端团队可以直接使用的响应
Testing Express 证明你的改动不会破坏已在运行的功能

一个端点,五个步骤

回到开头的场景。假设你的第一项任务是新增一个端点,为指定客户返回 AI 模型生成的推荐结果。可以按下面的顺序推进,每一步都对应 NodeJS 课程的一个部分。

第一步:打开客户的路由文件,找一个已在正常工作的类似路由,看它用了哪个认证中间件。第二步:声明新路由,挂上同一个中间件。第三步:通过客户已在用的 ORM 从 Postgres 取数据,只选模型需要的列。

第四步:调用模型服务,在模型响应慢或失败时捕获错误,并返回与客户其他端点结构一致的 JSON。第五步:写两个 Express 测试,一个验证有效 token 能拿到数据,一个验证不带 token 的请求会被拒绝。

Python 开发者常犯的错误出现在第三步和第四步:在 ORM 或模型调用前忘了写 await。代码照样能跑,但拿到的是 Promise 而不是数据,错误还可能被悄悄吞掉。这正是 JavaScript 课程里 async 部分讲的内容,也是不该跳过它的原因。

第二个错误是照抄旧路由却漏了中间件,导致新端点对任何人开放。第五步里不带 token 的测试,就是为了在上生产环境之前抓住这个问题。

三点值得记住

第一,顺序本身有道理。async 和 ES6 模块在 JavaScript 课程里讲授,在你接触 Express 之前。对 FDE 来说,面对任何陌生系统也该如此:先弄懂底层,再改上层。

第二,测试放在后端课程之内,而不是拆出去当附加内容。在客户现场,一套能跑通的测试是让对方工程团队信任你改动的快捷方式。即使时间紧,也要把 Testing Express 当作必修。

第三,开源模式本身。课程托管在 GitHub 上,需要贡献者。提交一个修正课程错误的 pull request,就是在别人的仓库里练习代码评审,而这正是 FDE 每天在做的事。

把课程变成简历上的证据

不要只在简历上写课程名称,让一个能运行的项目替你说话。学完 NodeJS 课程后,做一个带认证、PostgreSQL 和测试套件的小型 Express API,再按上面的五个步骤加一个调用 AI 模型的端点。在 README 里写清楚你测试了什么。

阅读 FDE 岗位描述时,留意公司或其客户在哪些地方用到 JavaScript 或 Node。如果用到,“构建了带认证、Postgres 和自动化测试的 Express API”这样的描述,远比“熟悉 JavaScript”具体。路径的最后一门课 Getting Hired 也可以用来参考如何展示自己的作品。

客户的技术栈是交到你手上的,不是你能挑选的。能读懂 Express,就意味着又多了一类你能直接进场动手的系统,而不必站在门外。

这篇文章对你有帮助吗?

5 个信源
路线图上的下一篇 · 阶段 1: 基础认知PY4E 是入门课,FDE 却不该跳过后半部分第 12 至 17 课讲正则、Web 服务和数据库,正对应客户交来的杂乱导出文件和无文档接口,而且全部免费。