type
slug
status
summary
icon
category
date
tags
password
后端知识小课堂
后端是什么?

Web应用的服务器端开发。



就业现状




学习路线

如果你对 c 语言和数据结构,我建议你可以回去打打基础。嗯,这个其实也很短,那一集大概 10 分钟, 63 集也就 630 分钟,那这 10 个小时一天就看完了,是吧?

如果你真正要写一个后端项目,你需要什么?主要就是这张图的这 6 个。
先是上面的,先不看,首先是Java Web,Java Web其实是 Java 的网络编程,就是相当于你没有用框架。假设这个世界上没有像spring、 MVC 这种帮你去治理一些类和服务的框架,还有通用的处理网络交互的框架,你应该怎么做?你应该,你可不可以让两个机器之间进行交互?那显然可以,很多人说 Java 程序员离开Spring什么都不会,就是因为很多同学前面都没看,直接学Springboot。
然后 Java 它本质上其实它毕竟是一种很既半编译、半解释型的语言吧。那它本质上其实是有一个虚拟机在的,这个虚拟机也就是 Java 的性能表现的一个重点,所以大家可以就是说 JVM 也是需要看的啊。工作室应该是有一本书叫深入理解 Java 虚拟机,包括工作室的知识库也有这本书,你们可以当参考资料,或者直接当八股看嘛,比如说其实还蛮有意思的,特别是像垃圾回收的一些知识。
然后就是 Java 的并发编程这个是很重要的一集,因为实际上在处理数据的时候要求你快,但是前端的处理器又不可能,就是说它单核已经到了一个极限了,那我们没有办法在提高单核性能的基础上,我们只好去并发,你就是搞多核。也就是说实际上现在的所有的真正业务处理上的核都处理器,都是多核的处理器。所以说实际的开发过程中肯定不像前面 Java SE 学的那样,相当于是起一个单线程就可以了。那实际上我们并发编程是实际业务中你的逻辑是怎么完成的?
然后在并发编程基础上,我们又学了 URL的NIO,这里主要是 NIO 和Netty。就是这个东西是负责和网络交互的,相当于是网络编程的一个框架,你利用 Netty 可以自己实现一个比 spring MC VC 和 springboot 更加高性能的一个互联网处理的一个接口。然后 spring 和 springmvc 的本质上它底层也是用网络编程去实现,然后紧接着可能就是 Java 树,然后接着就是 Java spring 它的主要的核心思想是两个,一个是AOP,一个是IOC。
spring 主要是有两个部分,一个叫IOC,一个叫AOP,这两个是 spring 的核心思想, IOC是帮你管理越来越复杂的依赖关系和继承关系的,然后它的中文名叫控制反转,那也就是说很多东西本来你应该手动去治理和新new,但是IOC帮你去做了这个事情,帮你去管理了这些对象。然后接下来就是 spring MVC,你到学到 spring MVC 什么叫m,什么是v?什么c? MVC 的 v 其实是Vue,然后 c 其实 Controller 相当于用 MVC 这种架构,三层的一个架构,可以从 m 是model,从模型到展示到控制,通过这种三层的架构去实现一个互联网的接口,我们对外的肯定是 Controller 对外暴露的都是控制器。就是相当于外部调用这个接口,相当于用了这个东西控制,相当于一个按钮,你摁一下 Controller 这个以后在表现层就会去,在 Vue 层就会去分析,诶,我到底应该干什么事情?最后数据我们刚才前面提到了,就是 Java 后端本质上是对数据的一个处理,它都会转化成数据的模型 model 存到对应的数据库里面去做。

所以说这张图其实就是说了,如果你要写一个真正的后端项目,你要会什么?然后其实课也不多,嗯,我觉得,其实,嗯,你们大家到大二上学期看完问题也不大,那里用过 springboot 写过接口,但其实你们可能说不出来套件字的底层是怎么起作用的,对吧?就是说我觉得就是从我的学习路径上来改来看,就是说还是要学好底层,会对未来你做开发会更加轻松,你也不用背八股,背得很痛苦,去死记硬背一些东西。他这个待会看,反正这个课讲得还是挺风趣啊,有趣的。然后我的建议就是不要掉以轻心,虽然这块我说了,嗯,内容其实也不是很多,但是我建议你花最多的时间在这一块,哪怕你后面的东西,你觉得哇?我到了大三,我这些东西甚至还没有完全掌握,其实也无所谓,因为我建议花最多的时间在这一块后面东西,你会发现很简单,而且技术也变成 spring boot,包括后来 springcloud 是很自然的一个过程。

最后其实就是一些杂七杂八的知识,然后可能你在学会前面这个路线的时候,你花一个小时,就每个东西你花一个小时看看文档就知道到底。是怎么做?接下来就是去做一些项目实战,当然我也可以给你介绍一下这些东西主要是干嘛的?spring security这个东西是一个用来安全鉴权的,相当于注册登录,你可以用这个去框架去做治理, springboot 则是对 springmvc 做了一层封装,相当于让它开发起来更加方便了,加入了很多注解,然后有一些更加提前的约定,你就不需要去配这些东西了。Git 我建议你们现在就会,我们工作室有一个 Git 仓库,然后今天我们这个网站也是部署在我们工作室的,也是在我们工作室仓库上,并且是在我们工作室的,当然这是我们当时招新的一个,招新弄的一个team,然后这是我们工作室的团队,然后包括上次优秀学长介绍,包括这次的这个后端的 PPT 都是上它的源码,我都是上传到了 GitHub 上面去,然后这个部署的配置其实也是用 GitHub 去部署,不是他就不说了。对,然后 Git 我建议你们现在就会,然后你们可以去安装一个WSL。
这个文档或者我也贴一下,就说去学会用一下Linux,你们在配 c 元环境的时候会不会觉得很难配啊?你们肯定是还要去下什么这个,对吧? min GW,然后可能这个东西作为你们编译器,去找到你们的编译器,甚至有的可能你们还要下MSVC,就还要用那个,这个,还要去下这个,就是说这个套件去装对应那边一起试啊?其实很麻烦,你在 Linux 里面其实去配置对应的环境就很自然。
包括所谓的,包括所谓你的NPM,你们可能我不知道你们有没有,我看卓然来了,就像前端要装的 NPM 什么的,其实你用 Linux 去安装可能就输一行命令的事情。嗯,就是说比如说去复制一下输一行命令,当然也可能你们有的同学也会用过scope,用 scope 当然也可以在 window 在实现,然后工作室可以为你提供什么?

首先是一些我和我朋友写的项目和比赛项目,这个是 online Remi,这是我当时拿了国全军国一等奖一个项目,那它的后端其实做的是我一个人写完的。然后前端也有一部分是我写的,然后其实做得非常完善,我当时写了大概有两个星期,就是说包括我综述的一些内容全是融进去了,然后他用户服务的架构就这么服。
然后还包括就是我推荐袁他们买的这个Azaz,这是我朋友写的,就是他们甚至会把面试的相关内容都讲了,但是因为有,毕竟是我朋友,然后我也没有很在意,就是说我可以给你们看一下它具体是怎么样的,这是它的架构文档,然后它这个文档里面包括了哪些内容呢?有一个整体导航,还有数据库表设计、音视频功能设计、架构的设计。然后面试会遇到哪些问题?消息队列这些就是相当于面向面试的一个项目。


我找一下就说你们可以袁神的简历上,实际上就是用 Azaz 这个项目,这样他自己写一个项目就已经很可以找到实习了。我们那的评价是他的唯一的缺点是答案,

然后工作室还可以为你提供什么,我可以直推到老板手里的内推,就是可能你们可能在互联网上能看到很多那种内推嘛。像比如说像这种内推其实没有什么鸟用的,他只是把你骗过去弄钱的。那像这种什么内推可以投着不?快手字节,嗯,实际上不是让你去,实际上都是用你来骗金币的。
学习资源



首先是刚才给大家看了很多次的这个,包括 Java 的整个一个学习路线,它是也是在他这边抄的。对,他这个每一个学习路线点进去都是一个课瞄一眼的。就是说那包括 c 语言, c 用 c make 什么的,包括结构体,包括组合联合体这些,可能你垫我记得你软的应该是没有交这么高级的。
包括 KMP 算法什么这些都讲了,那讲得其实很好的,然后他也有比较完整的文档,但他这文档可以直接在他这个,可以,你看他这个资源库里看到像 c 语言系列的笔记,你看就可看到这个文档都是可以直接访问的,这个链接已经放在这里了。

这个 PPT 我记得我是发到群里了,你们可以直接点进去看就行了。然后就是这个Azaz,就是刚才给你们讲的这个面试的旗舰级项目要输密码,然后我还是在飞书里打开了,嗯,黑马 Redis 讲得很好嘛,原神也来了,就是看Azaz。原神应该是对 AZA 是最熟的。我应该没有原神熟。原神想说两句,原神是不是对 Azaz 比较熟?就是包括面试问题的一些合集。那为什么要做这个项目?服务拆分、技术选型,包括这些常见的套路,他都会告诉你,包括一些模拟面试,对, AZ 主要是很适合你的,把一些技术栈放过去,对,可以看袁神的面经。
然后这个是我分享给大家的一个项目,这个 Netty 加 network 加 Disruptor 去实现一个高性能的网关,大家也可以去看嘛,是百度网盘的。
然后这个是我觉得 Redis 就是 MySQL 讲得比较好,我不知道有没有给,我应该给大三的同学和大二的同学讲过,但是我不知道你们看没看,就相当于是一个大面经,你看完这个基本上面试的 MySQL 问题都可以。然后它其实对,你们可以去看一看,我给出来链接。这是讲数据库的,就是我们的张欣企业,我记得也有涉及数据库的部分,那数据库的底层原理,如果你实在没有时间去看一些比较好的课,就看这个了。
然后关于Redis,虽然刚才(yr:黑马的redis黑马程序员Redis入门到实战教程,深度透析redis底层原理+redis分布式锁+企业解决方案+黑马点评实战项目_哔哩哔哩_bilibili)
讲那个很好用但其实我觉得这个也很好,就是 Redis 的一个核心技术和实战,它会告诉你 Redis 的一些常见的数据结构。其实我也写过一篇文章,你看为什么单线 ready 都是单线人,他还那么快?比如他都介绍了,那总共有大概 40 也 40 多篇文章,你们如果对非相当于,如果后来学到了,你们也可以去看这个去加菜,对面试来说肯定是也是够了的。
然后还有一点就是代码随墙录,这是我觉得的一般通过的一个算法的学习路线,就是说它这里面的题目比较多,你可以从数组开始刷题,我觉得大一就肯定会写了。这样数组是什么?这种像什么?唉,这个人拉布拉东。主要是拉布拉东,刚才郭雨提到拉布拉东我也知道,就是拉布拉东的一个是算法小抄。嗯,这个拉布拉登录一个算法笔记。这个我也知道,就是说但是拉布拉东首先是他要网站会员,其次拉布拉东很多东西是抄袭的,我建议大家还是不要给这个付费,对,左晨云讲得也很好。
(gy:
(yr:左程云算法:
然后还有就是一个我觉得可以进阶一点,这个他有一个基础算法系列讲得也很好,但是我建议你不用杂七杂八的,就从这个代码随想录开始刷就行了,从二分查找开始写。连力扣都能找题目你刷了就可以知道自己做得对不对,其他的一些内容其实我也可以出培养方案,但是我觉得答疑的没必要这么卷吧。嗯,但是你真的想要的话也可以私下找我,好吧,我还是不希望让大家过得太卷,好不好?
为什么这边我没有提竞赛呢?其实我觉得答疑不用打比赛,就包括今天李神也在线,李神也在线。那里程序也是大餐,最大的比赛就是说其实不用很着急,有的水菜的话,你大一去混和大三去混没什么区别。然后你可以顺势开始写一点,你抠那个不是很难,你就写代码分享路上提就行了,到时候其实你顺其自然就行了,你大不了把 Azaz 包装成比赛项。 AZAAZ 其实当时是对着抖音抄的,而且当时写 Azaz 的几个人全在抖音实习过,就是说你拿这种项目去包装成比赛项目,吹牛逼当然很厉害,对吧?然后多讲一下竞赛,因为我觉得大家可能还是很关心竞赛代码啊。

服务外包创新大赛,这些水赛的关键在于文档,我可以把我的那个 online real i 的那个文档给你们看一,就说虽然我那个还是有一点技术含量的好吧?但是说实话我觉得评委不一定看得出来哪一部分是有技术含量,还是吹牛逼的比较多。嗯,给你们看一下我那个文档,这文档是我当时写的,主要 80% 以上技术都是我写的,又包括这些表,这些图,这些图的画法都是有讲究的。嗯,回头串专门开竞赛会的时候可以教你们那种图,然后像贴,该贴代码贴代码,该贴论文字截图。反正也不用你自己画,你吹多一点,当时这个文档我看看写了多少字啊?应该是写了 3 万多字,总字符数应该是 5 万多,然后,对,是这样的。然后我当时是投了一份副本出来,然后包括他的一些假服务架构技术,我当时写了可能一个礼拜了,然后当时在去机场,去飞去温州比赛的路上,我还在改这个文档,然后端在竞赛中的核心作用和算法是一样的,就吹牛逼。然后所有的机器学习和后端可能还需要会一点跟前后端交互的东西,那算法就是纯吹牛逼。
我的评价就是这样的,所以说不知道在座有没有 ML 选手,安佳宇是不是ML?嗯,你们的计算中的作用其实就是扒几篇比较潮流的论文,然后去吹牛逼,然后把这些论。论文轮融就是融到这些垃圾项目里面去,然后水赛只是类似于摸奖,多摸奖你总会中的。就是说你一个项目可以通过不同的名字投不同的主题,然后你我也不敢保证说你比项目写得很牛逼就一定会获奖,因为那些评委也很逆天。就是我之前就打计设的时候,其实我记设那个项目写得还挺好的,但是当时用 Python 写的后端,然后我当时这框架用的是一个叫Scientix,因为当时用的这个写的框架。
如果你觉得 Java 很重,你毕竟 Java 有的时候写起来还挺麻烦的,也配的东西很多,可以去用 fast API,或者还有一个叫什么我有点忘了,好久没写,有没有雷宇阳你知道吗?还有一个 Python 后的朋友flags,想一想, flags 这个这些是用 Python 写后端的,然后这些东西 Python 写出来其实比 Java 更简单,那个斜体好像就能出一个后端项目。如果你要做一些比较简单的任务,其实就可以用这个。

多讲一下后端,然后因为我想起来当时收集问题有人说问自己适不适合后端,其实学后端就是你判断自己适不适合后端最好办法,然后我下的论断其实不准确好,然后如果你写着写着后端,发现前端有意思,去写前端也可以。因为我一直是这些观点,我觉得前端写起来比后端有意思得多,而且前端找工作其实比后端好找,而且钱跟后端也差不多,发展前景也差不多呃。后端就是很多 985 研究生可以卷你,其实卷前端 985 研究生认为少一点。如果你本来想就业的话,我觉得前端会更好。其次就是后端也没有比后前端有什么优越的地方。然后对,就是黄越,他投一个就有一个面试,大家后端什么雷元不知道为什么都没面试,袁睿都得我去推一下才行。嗯,当然我还是比较好的,我今天刚面完字节的实习。嗯,我也不知道为什么啊,可能是我的经历,我的简历比他们好看很多了。如果你目标保研最好,当然可能你们有点装逼。
如果你目标保研,你最好也会对前后端,不然其实研究生毕业也很容易找不到工作。其次,如果你干前后端开发,就是本科生,和研究生毕业薪资没啥差距。但是读研其实可能有更多选择,虽然我还没有正式开始读吧。就是说你不管是本科生还是研究生,你到时候毕业就业的时候都是应届生,应届生你能一天拿 1000 已经不得了。好吧?你就说你自己想想你值不值这个钱,你每天干这点工作,就你的学习能力的技术,你值一天 1000 块钱嘛?一个一个月3万块钱,听起来不多,一天你想想你不干活一天都有 1000 块钱,就感觉这个钱你自己都拿不起。
袁睿有问题就是其实过后面的学习不是要通过实习才能去提升的,而是就是说你学习这个东西,如果当你学完了我刚才讲的学习路线里面的这一张图以后,其实你就完全可以自己学习了,就是说后面的包括技术,肯定会有新的技术,其实像 spring boot 3.0 才出两年,对吧?这些技术你不可能不学,当你学完了第二阶段的课程以后,其实你的能力就已经可以完成了,可以自学了。
为什么说实习?然后但是不是所有技术你都需要去学,技术是为了业务服务的,是为了干活服务的,是为了事情服务的。实习你可以知道哪些东西是市面上需要的,然后其次企业也会跟你想要一个有过实践经历,知道就至少其你实习去证明了你会做什么,对不对?我能胜任这份工作,其次是我有学习的能力,你永远不可能在实习前了解所有实习你要做的东西,所以他其实更看的是你有没有学会这些东西的前置条件和有没有做这个事情的责任心,大概就是这个样子。袁睿,你还有问题吗?还是你觉得我讲得不清楚?你可以发消息给我看一下,我。
- 作者:🐟🐟
- 链接:https://www.imyuyu.top//article/Back-End
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。