开发者基础
施工中如果你之前从未接触过 CS 开发,或者对其了解甚少,请先阅读这篇对 CS 主流开发方向的简要介绍。
你会发现文档目录的开发方向名称均是英文,尽管英语不是学习 CS 的必要条件,但掌握一些名词是必不可少的,所以不要排斥它。
开发方向
以下开发方向均有对应路径跳转,但如果是 0 基础开始学习,推荐优先从 Computer Science ↗ 开始。
Frontend
前端,广义指 Web、应用软件、小程序等的前台,用户所能看到与交互的部分。
如果要学习前端,通常要优先学习 HTML + CSS + JavaScript 前端开发三件套。至于更多,在以后的学习中会遇到。
最基础的 Web 前端中,HTML 负责页面整体框架,CSS 负责页面的样式,JavaScript 实现页面的动态交互。
如果你对构建出出色且优秀的网站/应用页面感兴趣,欢迎来学习前端。Frontend ↗
但要泼冷水的是,在 AI 的浪潮下,前端岗位的受冲击程度较大,部分公司已有缩招现象。
Backend
后端,泛指服务器、数据库与业务逻辑等“幕后”的部分,负责数据处理、接口提供与系统稳定性等。
后端往往与服务端语言强关联(以学习一种语言开始),主流的服务端语言如 Go、Java、Python、Node.js(JavaScript) 等,另外还需要学习数据库、计算机系统,计算机网络等来入门。
常见的后端实现如应用的登录系统、数据库的读取/存写,电商系统等。
“数据、结构、算法” 是后端的主要特点,如果你感兴趣,欢迎来学习后端。Backend ↗
时至今日,后端方向的岗位需求量仍然是最大、最稳定的;但后端的知识面广且更新快,竞争并不轻松。
Full Stack
全栈,指的是一种技术栈(技能)范畴,涵盖了从前端(客户端)到后端(服务器端)在内的软件开发的所有层面。
全栈并不意味着每个环节都精通,但要能够实现从 「页面 -> 接口 -> 数据库」的完整链路,独立解决前后端中的问题。
如果要学习全栈,建议以一个主方向作为切入点(如先学后端或前端),再补齐另一侧。
如果你想独立构建完整的应用,欢迎来学习全栈。Full Stack ↗
依旧泼冷水(),因为大量全栈应届生具备相似技术栈和项目,纯"会一点全栈"的竞争力下降,岗位同样竞争激烈。
DevOps
开发运维,泛指软件交付上线后的部署发布、配置管理、监控告警、故障排查与 CI/CD (持续集成与持续交付)等保障系统稳定运行的工作。
学习运维,通常要从 Linux 与 Shell 入手,接着学习容器(如 Docker)、CI/CD 流水线(如 GitHub Actions、Jenkins)、云平台(如对象存储、K8s)以及监控日志(如 Prometheus、Grafana)等。
运维,就是运行维护,如果你对这方面感兴趣,欢迎来学习。DevOps ↗
纯运维岗位远少于开发岗位,且涉及知识面广、上手门槛不低,且很多团队更倾向招有开发经验后再转岗的人。
Game Developer
游戏开发者,这一个应该没有人陌生,指使用游戏引擎与相关工具,制作电子游戏的开发者,负责游戏玩法逻辑、场景表现、物理交互等部分。
学习游戏开发,更推荐选择一个游戏引擎入手(游戏是一个复杂的系统,没有引擎往往需要编写复杂的底层代码):这里简要介绍主流的游戏引擎,Unity(C#)学习难度中等、生态成熟,适合入门与中小型游戏;Unreal(C++)画面能力强,适合追求 3A 级表现的项目,学习曲线较陡;Godot(GDScript/C#)学习难度简单,新兴的开源游戏引擎,有未来发展前景,现在同样适合独立开发者;Cocos(TypeScript/JavaScript)学习难度中等,常用于制作微信/抖音小游戏、H5 游戏等。
游戏开发是“代码 x 美术 x 设计”的结合,常见的游戏开发中可以分为“美术”、“程序”、“策划”三个大岗位。
文档中的游戏开发主要偏向程序部分,如果你感兴趣,欢迎来学习。Game Developer ↗
游戏行业分工细,工作内容可能与实际预期落差大。
Embedded
嵌入式,指嵌入式开发,即针对特定硬件(单片机、ARM、SoC 等)编写软件,常见于 IoT、智能家居、车载、工业控制等领域。
学习嵌入式,通常要从 C 语言与计算机组成原理入手,了解内存、寄存器、中断等底层概念;接着掌握常用 MCU(如 STM32、ESP32)与开发工具链(Keil、STM32Cube、交叉编译等),再学习 RTOS(如 FreeRTOS)、外设驱动与通信协议(UART、I2C、SPI)。进阶方向还包括 Linux 驱动、BSP 移植等。
嵌入式是"软硬结合"的领域,调试往往要借助示波器、逻辑分析仪等硬件工具,出错时可能要从电路查起。
如果你喜欢动手折腾硬件,欢迎来学习嵌入式。Embedded ↗
嵌入式门槛较高、硬件成本和上手难度都大于纯软件方向,且岗位分布相对集中。
Cyber Security
网络安全,指保护网络系统、数据与用户免受攻击、窃取与破坏的领域,涵盖 Web 安全、二进制安全、渗透测试、安全运维、密码学等多个分支。
学习网络安全,通常要先掌握计算机网络基础(TCP/IP、HTTP、DNS 等)与至少一门编程语言(如 Python、Go),接着选择主攻方向:Web 安全从常见漏洞入手(SQL 注入、XSS、SSRF、反序列化等);二进制安全则需要扎实的 C 语言与汇编功底,涉及逆向、PWN(漏洞利用)等。进阶还会接触渗透测试框架(如 Burp Suite、Metasploit)、CTF 实战、代码审计与攻防对抗。
网络安全的对抗是持续的,"白帽"与"黑帽"的攻防博弈使其永远有新东西可学。
如果你对攻防博弈与漏洞挖掘感兴趣,欢迎来学习网络安全。Cyber Security ↗
网安入门门槛高、知识体系庞杂且需要大量实战积累。
其他
如果你是为了求职而学习,本文没有讲太多关于就业的内容,可以继续查看 求职准备 ↗
讨论