Skip to content

Latest commit

 

History

History
108 lines (60 loc) · 10.8 KB

鱼皮项目学习建议(必读).md

File metadata and controls

108 lines (60 loc) · 10.8 KB

鱼皮项目学习建议(必读)

⭐️ 加入项目系列学习:加入编程导航

所有项目资料均已加密,仅供加入者本人观看。

学完至少一门后端框架(比如 Spring Boot)或前端框架(比如 Vue)之后,可以开始鱼皮原创项目系列学习。

一种最快速的学习方法是,先通过鱼皮的项目实战新技术,然后看完整的教程来系统学习新技术,事半功倍。

如果还没有学完框架,请先按照 鱼皮编程学习路线 补充知识。

推荐学习顺序

  1. 用户中心项目:适合新手入门,系统学习完整的项目开发流程和上线方法。
  2. 伙伴匹配系统:巩固开发流程,学习 Redis、事务、并发编程、大数据推荐思想等后端知识。
  3. API 开放平台:学习实践前后端模板开发 + 架构设计 + SDK 开发 + API 签名认证 + Dubbo RPC + Gateway 微服务网关。
  4. 手写 RPC 框架:从 0 到 1 开发轮子,实践网络协议设计 + 序列化 + Etcd 注册中心 + Vert.x 服务器 + 动态代理 + SPI 机制 + 负载均衡 + 服务重试容错机制 + 注解驱动启动器,大幅提升架构设计能力。
  5. 聚合搜索平台:学习实践爬虫 + Elastic Stack + 设计模式 + 数据同步 + JMeter 压力测试。
  6. 智能 BI 项目:学习实践异步化 + 线程池 + RabbitMQ 消息队列 + AI 应用开发 + AIGC Prompt 优化。
  7. OJ 判题系统:学习实践前后端模板开发 + 多种设计模式 + 单体项目微服务改造 + Linux 虚拟机远程开发 + Docker 代码沙箱 + Java 安全控制。
  8. 代码生成器共享平台:深入业务场景,学习实践命令行开发、模板引擎、Vert.x、设计模式、对象存储、性能优化、存储优化、系统设计、分布式任务调度系统等。
  9. AI 答题应用平台:深入业务场景,学习实战 React 跨端小程序开发、Vue3 AI 应用网站开发,后端分库分表、分布式锁、缓存、幂等设计、设计模式、RxJava 响应式编程、SSE 实时推送、线程池隔离等,大幅提升开发经验和架构设计能力,助你成为项目负责人。
  10. 面试刷题平台:真实企业级项目,学习实战 React + Next.js 服务端渲染网站开发,后端 Redis 多级缓存、Elasticsearch 搜索、Redisson 高级数据结构、Druid 并发、HotKey 探测、Sa-Token 权限控制、Nacos 动态配置、Sentinel 流控、反爬虫设计等,提升技术运用能力。

学好项目的建议

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

1、选择合适的项目

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

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

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

2、分清主次

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

前端同学也是同理。

3、多敲代码

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

4、自主思考

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

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

5、持续记录

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

6、自主解决问题

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

负责任的说,我写代码近 8 年,从学生时代开始,可以说 99% 的 Bug 都是自己解决的,所以大家不要有这种担心,因为你学的技术几乎都是主流的,你遇到过的 Bug,别人也一定遇到过。在遇到项目报错时,要先搜集足够多的错误信息(比如通过日志),然后查阅搜索引擎(百度应该都知道吧)、技术社区、官方文档、甚至现在还可以 问 AI,大概率是有解决方案的。即使真的没办法解决,在向他人求助前,要保证自己的问题描述地足够清楚、并且清晰列举已经尝试过的解决方案,别人才能更快地帮你解决。

推荐阅读:利用编程导航解决问题

7、多读官方文档

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

8、多写文档

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

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

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

9、自主优化

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

10、上线项目

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

11、主动分享

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

12、学会合作

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

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

推荐阅读

如何更快学好编程:编程导航学习指南

如何更快地找工作:编程导航求职指南

快速把握面试重点:编程导航精选面试题

快速学习技术知识:编程导航知识碎片

学会自主解决问题:利用编程导航解决问题

查看真实简历建议:编程导航简历参考