Notion 软件工程师(SWE)面试经验分享

面试流程概览

Notion 面试过程包括 系统设计 + 编程实现,重点考察 HTTP 服务器搭建、JSON 处理及 Golang 基础


Coding 题目 - 实现 Chat Room(Golang)

题目描述

  • 设计并实现一个 聊天室系统(Chat Room)
  • 主要功能包括:
    1. 用户加入聊天室(joinRoom)
    2. 用户发送消息(sendMessage)
    3. 获取聊天室消息(getMessages)
    4. 用户离开聊天室(leaveRoom)
  • 使用 Golang 编写 HTTP 服务器,处理 JSON 数据的编码和解码。

示例 HTTP 处理函数

http.HandleFunc("/chat/join", joinRoom)
http.HandleFunc("/chat/send", sendMessage)
http.HandleFunc("/chat/messages", getMessages)
http.HandleFunc("/chat/leave", leaveRoom)

服务端启动

http.ListenAndServe(":8080", nil)

考察点

  • Golang HTTP 服务器搭建(标准库 net/http 使用)。
  • JSON 处理(Encoding & Decoding) 进行数据交互。
  • 基本 API 设计,保证 RESTful 规范

面试体验

  • 面试官不会 Golang,但态度友好,愿意帮助查阅标准库文档。
  • HTTP 服务器搭建耗时较长,影响了整体代码实现的完整度。
  • 调试 HTTP 请求 主要使用 Curl 命令,可以随时 Google 相关指令。
  • 建议提前熟练 Golang 标准库,避免因 API 不熟悉导致时间浪费。

面试总结与建议

  1. Golang HTTP 服务器实现 需熟练,掌握 http.HandleFunchttp.ListenAndServe
  2. JSON 解析能力 重要,需熟悉 encoding/json 处理数据流。
  3. 面试官可能不熟悉具体语言,但会考察 系统设计、API 设计思维
  4. 高效时间管理 关键,避免在 基础搭建 上耗费过多时间。
  5. 建议提前练习 HTTP 服务器开发,掌握 Curl 调试 HTTP 请求
Previous
Previous

DoorDash 面试经验分享:系统设计、Code Craft 及 Debug 重点解析 | 面试辅导 技术面试指南 系统设计解析

Next
Next

DoorDash 电话面试经验分享