项目学习建议(必读)

学完至少一门后端框架(比如 Spring Boot)或前端框架(比如 Vue)之后,就可以开始做项目来巩固「工程化 + 业务建模 + 架构设计 + 上线部署」的完整能力。

一种更高效的学习方法是:先快速跑通项目,搞清楚主流程和边界;再对照技术点逐个深挖、补齐知识,最后写总结与复盘。

推荐学习顺序

  1. 用户中心项目:适合新手入门,系统学习完整的项目开发流程和上线方法。
  2. 伙伴匹配系统:巩固开发流程,学习 Redis、事务、并发编程、推荐等后端知识。
  3. API 开放平台:学习实践 SDK、API 签名认证、网关等能力。
  4. 手写 RPC 框架:从 0 到 1 开发轮子,强化协议设计、序列化、注册发现、容错与扩展机制。
  5. 聚合搜索平台:学习实践爬虫、检索、数据同步与压测。
  6. 智能 BI 项目:学习实践异步化、线程池、消息队列与 AI 应用开发。
  7. OJ 判题系统:学习实践代码沙箱、安全控制、容器化与系统设计。
  8. 代码生成器共享平台:学习实践模板引擎、对象存储、性能优化、系统设计等。
  9. AI 答题应用平台:学习实践 SSE、缓存、幂等、分布式锁、响应式编程等。
  10. 面试刷题平台:学习实践 SSR、搜索、多级缓存、流控与反爬虫等。

学好项目的建议

鱼皮原创系列项目是希望帮助大家真实提高项目开发水平,而不仅仅是抄了代码就完事,所以请大家尽可能多地按照下面的建议来学习项目。

1、选择合适的项目

一般情况下,做项目的前提是学完至少一门开发框架,比如前端的 Vue / React、后端的 Spring Boot。

**一定要根据自己当前的技术栈和水平选择项目。**比如刚学完框架时,不要为了赶时间一上来就做微服务、高并发项目,很容易吃不消,而是要先从掌握项目基本的开发流程开始,一步步学习项目开发方法、逐渐接受新的技术。

刚开始学项目感觉难、做得慢,是很正常的,因为你缺少知识和经验。如果发现项目中有太多你没学过的技术、并且没有对应的教程讲解,那么就先暂停项目,即时补充知识,再来学习。

2、分清主次

时间紧急的情况下,后端方向的同学可以只看后端部分的教程、只做后端、运行接口文档即可,建议直接跳过前端部分的教程、也不要花时间去运行前端。否则可能因为不熟悉前端、折腾环境而浪费了大量时间。

前端同学也是同理。

3、多敲代码

我接触过一些同学,看完了几套视频教程后,还是无法自己敲项目,大概率就是因为做项目的过程中 “只顾着看教程” 了,没有自己动手练习。很多时候,看别人敲代码感觉并不难,但一看就会、一写就废,看完教程后,必须自己把每行代码都敲出来,才算是真正地学过这个项目,而不是将 “掌握理论”、“熟练背诵八股文” 作为学好项目的标准。

4、自主思考

在跟着视频教程做项目的过程中,尽量多思考,比如 “为什么要这么设计?这么设计有什么好处?为什么代码要这么写?有没有更好的写法?” 等等,必要时通过查阅资料来验证自己的思考。如果一味跟着讲师的节奏走,你或许可以完成项目,但是做完这个项目后,你可能很难自主做出一个类似的、或者更好的项目。有的时候,讲师说的不一定是最优解。

像我带大家做项目时,会经常引导大家思考。有时候故意留一个小坑,结果很多同学想都不想就跳到坑里了;也有些同学,能够提出和我不一样的实现方案,哪怕方案未必合理,能自己思考,就很棒了。

5、持续记录

在做项目的过程中,一定要多做笔记,不要觉得教程配套的笔记很详细了,自己就偷懒不写。笔记的作用是帮助自己复习,所以重点是记录自己做项目时的理解思考、遇到的问题和解决方案。此外,自己写过的每一行项目代码,都要完整地保存,等你学过更多技术知识后,再回过头来看自己的代码,一定会感叹自己的进步。

6、自主解决问题

这点是最重要的! 很多同学一遇到问题就紧张、害怕、担心自己解决不了无法继续做项目,然后就疯狂求助他人。

负责任的说,绝大多数 Bug 都是可以通过「日志 + 复现 + 逐步缩小范围」自己解决的。在遇到项目报错时,要先搜集足够多的错误信息(比如通过日志),然后查阅搜索引擎、技术社区、官方文档,必要时再结合 AI 辅助定位问题。即使真的需要求助他人,在开口前也要把「现象、日志、复现步骤、已尝试方案」写清楚,别人才能更快地帮你解决。

7、多读官方文档

如今新技术层出不穷,不可能每个新技术都有好心人给你录制保姆级教程。而且工作后,很多公司可能会有自研技术,只有内部同事用过,我们只能通过阅读文档来解决。所以建议大家在学完一门新技术后,花 1 - 2 个小时就好,阅读一下官方文档,不仅能了解一些教程讲解之外的技术特性,还能提升自己阅读文档、学习新技术的能力。

8、多写文档

除了记笔记外,每做完一个项目,都必须写一篇完整的项目总结文档。不要嫌麻烦,写总结文档的过程中,你会从上帝视角再回顾一遍整个项目的背景、设计、实现、亮点等,帮助你复习巩固、加深印象。也便于你更快地将项目写在简历上、或者开源和分享自己的项目。有能力的同学可以多画一些图,比如功能模块图、架构图、UML 类图等,正所谓一图胜千言,绘图能力也是优秀程序员必备的特质。

如果你发现自己写不出总结文档,那么大概率你对这个项目还是不够熟悉,没有完全掌握,这时再对照着自己的笔记快速回顾吧。

如果时间比较充足,最好是能够口述整个项目的背景、技术栈、核心业务流程、核心设计、项目难点、开发过程、测试过程、上线过程、解决过最复杂的问题等等,锻炼自己的表达能力,也为后续的面试做了准备。

9、自主优化

跟着教程完成项目后,需要给项目增加几个扩展点、或者回顾自己的代码并寻找优化空间(比如优化代码规范),从而增加简历的区分度。这也是区别是否能够入职大厂的一个重要因素。这个优化不一定是刚完成项目时立刻就去做的,可以等过了半年后,再以现在的水平去优化之前做过的项目,所以鱼皮上面也建议了,自己写的代码一定要留好。

10、上线项目

在本地完成项目后,最好将项目上线,并且在线上正常运行一段时间,跑通整个流程,这是独立开发者必备的技能。此外,之前也分享过,上线项目能够大幅增加简历的真实性open in new window

11、主动分享

将项目上线、并且编写好项目总结文档后,可以将项目和文档分享给其他同学。这样做的好处是,其他同学会帮助你 “测试” 网站,指出项目的不足之处,从而给你带来更多优化项目的思路和机会,而且对其他同学也有帮助,会给你提供更多的正反馈。鱼皮刚开始做分享也是这样,通过输出知识给自己带来更多学习知识的动力。

12、学会合作

时间有限的情况下,不需要前端和后端都看教程并且自己实现,可以找和自己方向互补的朋友,协作开发,一起参加一些竞赛也是极好的。

如果能做到上面几点,认真完成并理解 4 个及以上的项目,做项目的能力可达中厂水平。

推荐阅读(本站)

  • 学习路线:/学习路线/
  • 高频面试题:/高频面试题/
  • 技术知识碎片:/知识碎片/
  • Bug 手册:/Bug手册/
最近更新:
Contributors: weave