从三本院校到斩获字节跳动后端研发Offer

2023-05-16

文章篇幅较长,都是满满的干货,看完收获绝对很多, 文末有学习笔记和学习资料领取

前言

大家好, 这次应博主的邀约,写一篇关于我的 Java 自学经历,希望对小伙伴们有所帮助。

我本科就读于北方某三本院校,和别人交谈的时候也不太愿意过多介绍关于自己本科的情况,想着英雄不问出处。不过后面想想,自己的一些经历分享出来,如果刚好有在某个阶段开始迷茫的小伙伴,可以通过阅读我的经历,避免掉一些我走过的弯路,那就很好了。

图片

天,总会亮的

关于我

我本科就读于三本的独立学院,主要是因为高考考得不好,说白了就是初中和高中阶段不爱学习导致的,而且还是调剂到我们学院的计算机专业的,计算机专业在我们院属于比较垫底的专业(说白了,那时候来计算机院的都是调剂生),我是“被迫”留在了计算机专业,然后就有了后面的故事,不然,我因为当初选的电气专业可能在爬电线杆了。

初出茅庐

20139月份,我带着行李箱就开始北上了。从北京西站下来后,我是第一次感受到了大城市的繁华,也默默想着希望毕业后能够留在这里工作。

图片

北京西站

在北京,我和老爸去了北京天安门、故宫 还有长城,也第一次坐上了地铁。

后来辗转来到了我们的学校,大学的生活比高中生活更加轻松,不过我也没有放松自己。平时老师代码都是给我们在 PPT 上演示,那会也对编程产生了浓厚的兴趣,经常老师上课讲完的代码,会用小本子记录下来,然后跑去图书馆再一行一行的敲上去,那会儿乐此不疲。

图片

大一学习C语言时必学的求圆柱的体积,哈哈

那会儿对于代码完全是不知所以然,不知道为什么要这么写,对于一些算法,比如冒泡排序、选择排序都是记在本本上,每天看一看。就这样的状态,很快大一的时间就过完了。

大二开始,我们开设了 Java 课程,通过学习 Java,我发现了原来编程不仅仅只是做出黑框框的,在命令行上运行的东西,它还能制作出计算器,甚至是游戏(JavaGui)这种高大上。

这里其实特别感谢X客的毕向东老师讲解的 Java 基础 ,那个时候视频资源特别匮乏,我有幸接触到了毕老师的视频教程,然后花费了一个学期才把 Java 学完(那会基本上一行一行的手敲),后面又跟着X客的另外一门视频教程《Java贪吃蛇游戏》,我也是整整花费了 1 个月的时间,每一行代码都是跟着手敲出来的。到最后游戏能运行的那一刻,我突然对编程有了比较浓厚的学习兴趣。

图片

大二在写贪吃蛇小游戏的时候

 

渐入佳境

大三的时候,我们开始了分班,就是选拔出一些人到卓越工程师班,我和家里人商量了一下,说我准备去参加这个班级,因为我觉得在里面我能够学习到很多东西。

在通过编程考试以及初试后,最后进行复试(自主选题),我做的就是跟着X客做的贪吃蛇小游戏,我最终的成绩是2/29

图片

卓工班上课的时候

在新的班级里,老师的要求比原来更严格了,在保证正常学习本科教学工作的基础上,同时增加了更多的实践性的课程,例如:Java编程、HTML+CSS+JavaScriptC#编程、.NET编程、Android编程、嵌入式开发。

那会学习了很多技术,我也很感谢老师那段时间的付出,因为每门课上万之后,都需要制作一个案例,采取的是小组的形式,然后需要进行答辩讲解(也是从这个时候,我开始明白了团队协作的重要性.)

图片

和三个小伙伴完成的蘑菇音乐,答辩的时候界面惊艳了大家

 

跌宕起伏

转眼就来到了大三的暑假了,那会我是觉得直接参加工作去赚钱也不错,不过家里人希望我能参加考研,等读完研之后再参加工作。

我最终还是被家里说服了,然后开始着手考研的复习,但是心里还想着工作的事情。也正因为这个导致我后面摔跟头了,希望小伙伴能以此为戒。在面对考研和工作的抉择时,需要了解到自己喜欢什么,并且能够坚定自己的目标,而不是随波逐流、人云亦云。

图片

那会为了准备考研,特意报名了一个辅导班

但是那会考研也没有很专注,当看到其它同学在找工作的时候,又跟着一起凑热闹,一块参加面试(当初面试实习岗位,面了两家还都被录取了)。那会对考研的事情又产生了动摇心理,最后在家里人的劝告下,我又继续回到了考研课程的学习中去,但那会考研也不是专心致志一心一意的,那会每天晚上八点钟就回到了寝室,然后开始玩游戏。

图片

梦幻西游手游,玩了好几年的游戏了,后面不玩了就卖了

就这样一边复习考研,一边晚上八点就早早回来继续打梦幻西游的状态,一直持续到考研结束。最后考研分数出来了,结果也正如大家所预料的那样,嗯,完蛋了。

跋山涉水

考研成绩出来的那会,还处于大四的寒假,在得知自己无法读研的时候,毅然决定好好复习专业知识,然后去参加校园招聘。因为我们学院电气是王牌专业,所以基本上来的都是一些电力相关的,很少有计算机专业的招聘过来( 现在的话,推荐小伙伴们能够多多关注网站上的校园招聘平台,比如 牛客网 等)。后面就来到了发小的学校,和他一块准备通过校招来找工作。

图片

在发小的宿舍进行学习

在发小那边大概呆了半个月,但是一直没有等到他们学校校招的消息。这个时候因为经过半个月的学习,基本上对 Java 开发有一定的了解(现在想想,其实就是一些皮毛,只学了 JSP 和Servlet ,做了两个 JSP 相关的项目,想想那会也是太年轻 ),所以就打算直接去深圳寻找公司实习。

因为想着以后就在深圳工作了,所以就先试着看能不能找到深圳的实习先做着,但事与愿违,后面并没有按照我理想的那样来…

图片

在出租屋里学习

找到落脚点后,就开始了工作的投递,那会真是饥不择食,只要写的招收实习生的公司,基本上都投递,但是也遇到了很多坑:要么面试一家就发现是培训机构,要求你先缴纳培训费,实训完成后给你安排工作;要么就是职场 PUA,首先给你特别难的面试题,来摧毁你的面试信心。最后再告诉你,即使不会这些也没关系,有专业的项目经理给你岗前实训,有些说没钱也没关系,可以给你安排先培训,就业后还款。

后面我就知道了,可以通过天眼查先查公司的运营范围,如果这家公司运营范围包含了 技能培训,或者计算机培训,那么很大的概率就是培训机构了

图片

使用天眼查看公司运营范围

在深圳的半个月里,我陆陆续续参加了 10 场面试,其实有 8家面试都是和培训机构有关的,另外两场是因为能力没有满足人家的要求(那会只学了 JSP、连 Spring 相关的框架都没了解过)。而且因为离南山区比较远,那会也没有通地铁,基本上是坐车 2 小时,面试 10 分钟,那段时光也是最艰难的时光。不过我心态其实还挺好的,没有找到工作,就当去深圳玩了一阵子~。

图片

去深圳大学逛了一圈,对面就是腾讯大厦

这半个月的深圳找工作之旅,最后以失败告终,想想可能还是自己能力太弱呢(现在想想,其实可能是选错了方式,因为我走的这条路属于社招的道路,如果还没有毕业的小伙伴,还是要多多关注一些校招平台,以及对应的公众号:校招优选、校招薪水 等,或者直接是访问人家的官网),在后面的一段日子里,我开始继续强化自己的 Java 技能

健步如飞

在经过一段时间的强化学习后,本科的小伙伴邀请我去北京试试机会,后面我又踏上了北上的道路。那个时候只想着能找个管饭的工作,哈哈。

图片

深圳开往北京西的火车站

来到了北京,和之前的同学一块去参加招聘,白天参加招聘,晚上就回来一块互相总结经验。

图片

去北京参加的招聘会现场

其中,中间还回学校参加了校园招聘,不过公司都不太合适,最后还是选择在北京寻找实习机会。大概在北京面试了一个礼拜后,终于通过了一家公司的面试,最后也顺利办理了实习入职手续,正式拥有了自己的工位。

图片

第一天上班装系统

即使那个时候实习的工资并不高,但我也格外珍惜这来之不易的机会。所以在工作的时候,也很认真地在学习。公司对于代码这块也有很多规范,每隔一段时间就需要进行代码的 review。自己首次提交的代码,也都会经过同事的一轮评审、二轮审核通过后,才能提交成功。

实习的几个月里,我真正了解到了企业级项目是如何开发的,同时加深了Git、Maven、Spring、Mybatis 等框架的使用。虽然公司很小,核心开发人员只有 7 个人,但做事都很有规范,并且每隔两天就会有一个 20 分钟的短会,介绍自己目前做了哪些工作,然后遇到了什么问题,未来将做什么?

如果有其它小伙伴遇到问题了,比如我开发某个模块卡住了,那么其它小伙伴可以协助一块进行开发,我也特别感谢另外两个实习小伙伴,帮助我一块解决项目中遇到的问题,尤其是前期在阅读项目时所遇到的。

图片

同事指出我写的不规范的地方

有的时候来早了,公司可能还没开门,所以就在楼下坐着等待一会,看看技术相关的文章

图片

公司的楼下

 

卷土重来

后面毕业后,就在公司转正了,虽然工资不高,不过那会儿想着应届生毕业之后能学到技术就好了。后面家里人打电话跟我说不要因为一次的考研失败就放弃了,可以再去尝试尝试。我听了他们的话,也没有马上同意或者拒绝,而是静下心来考虑了一段时间。

在后面 9 月份的时候,我坚定了考研二战的想法和决心,当时全身心得想着再冲一次。所以就离职了,直接收拾东西,在 2017年 9 月 28 日踏上了回家考研复习的征程。

图片

北京西站准备回家

 

考研的时间是 12 月 25 日,回到家后已经是 10月 1 日,距离考研还有 80 多天,因为有了之前的经验,所以这次的复习也更加有了针对性,比如数学就跟着张宇、英语跟着刘晓燕,政治跟着肖秀荣,死死咬住一个人。专业课因为有往年的真题,所以就结合课本和真题进行复习。下面是我考研时写的每日计划(请忽略我写的这么丑的字,这种独具一格的字,在政治这门估计是吃大亏了)。

图片

写的每日目标

 

然后开始刷题、背题….

图片

狂背肖4-网图

这个状态一直持续到了考试结束。到后面成绩公布,最后出分数线了,我很走运有机会进入复试,所以后面就开始准备复试相关的了,因为之前参加过实习和工作,所以就先把自己的简历好好写写,把握好自己的优势。最后随着复试结果的公布,成功被如今的学校录取,最终考研一事尘埃落定。

新的旅途

在考研已经确定被录取后,那个时候是在 4 月份,而研究生入学是在 9 月份,这中间有大概 5 个月的空窗期。因此,我又萌生出去打工的想法,找一份工作先做着,等到开学的时候再去入学。

所以后面很快又来到了北京,有了之前的经历,后面找工作就轻松了许多。面试了 10 天,最后拿了 3 家公司的 Offer ,最终选择了一家比较近的。

在第二家公司,主要做的是小程序相关的业务,然后由我和另外一个小伙伴负责,但是技术经理要求我们使用SpringBoot + Vue + 微信小程序 来做,但是由于我对于这一块比较新的技术还不是特别了解,所以后面就特意花了一段时间来学习。

  • Vue:主要是根据Vue官方文档来学习的,因为中文文档比较友好:https://cn.vuejs.org

  • ElementUiVue 的框架,也是直接看文档:https://element.eleme.cn

  • 微信小程序:因为之前毕设是用微信小程序做的,所以还算有点熟悉

项目经理把项目架构的搭建到业务编码开发以及最后运维部署都交给了我们两个人,我们两个也是互相协同开发,来这四个月里,做到了从 0 ~ 1 完成整条开发流水线的工作。

在新的工作中,没有了之前的迷茫,在做需求的时候,也懂得了如何将需求切分,更好的去完成每一项开发功能。

图片

用工资给自己换了一台新电脑和键盘

 

四个月的时光,很快就过去了,又到了离开的时候,踏上旅途,开始去读研了,这次的离开,可能以后都很少有机会再回去了…

步履矫健

在进入研究生阶段后,我首先明确了自己的目标,比如:读博 or就业 ?我的选择是毕业后直接就业,因为之前经历了社招的痛苦,所以现在格外珍惜自己以后的校招机会。

入学后的第一天我就给自己定下目标,能坚持做一款开源软件,用来记录自己学习中遇到的问题,最后经过敲定,决定还是以 蘑菇博客 为名。

图片

蘑菇博客的第一次代码提交

蘑菇博客项目最开始由我一个人开发,中间陆陆续续有一两个小伙伴参与其中,开发了一部分模块,我也想着能尽可能把更多的技术融合进来,毕竟通过自己手把手的操作一遍,也能够算是入门了。

我也很庆幸我成功将自己的项目开源出来了,并且坚持下来,蘑菇博客起源是 2018 年 9 月,很感谢之前在公司里的同事和领导,是他们带我入门企业级的项目开发,让我养成了很多 Java项目开发的规范,但是到真正在自己手把手搭建一个项目的时候,还是会捉襟见肘,有各种意外情况。

起初项目开源在码云上,没有多少人关注,在20191214日,蘑菇博客被码云推荐了,后面陆续有一些小伙伴关注了项目,并且参与到开发中,也提供了很多issue,在这里我也学习到了很多规范和功能的实现。

图片

蘑菇博客上首页了

然后项目的关注度就开始上升了,有些小伙伴就开始关注,所以我也花费了一些时间,整理了博客的开发、运行、部署的文档,希望每个小伙伴都能够通过本项目一起学习。

因为更新比较勤快,项目也在码云 "博客"  关键字搜索的第一个,不过未来要走得路还很长,我也希望能够认识更多志同道合的小伙伴,然后一起学习和交流。

图片

搜索博客

2020728日,蘑菇博客成功达到1000star,也完成了我之前定下的一个小目标,这也是一个新的起点,后面我还需要更加努力。

图片

蘑菇博客项目

202097号收到了码云邮寄过来的Gitee 1000star奖杯~

图片

蘑菇博客1000Star奖杯

20201216日,到目前为止,蘑菇博客已经2Kstar

图片

我的Gitee首页

并且后面开源的 LearningNotes项目 (学习笔记,记录平时的博客),也已经收获了 1.5K star

图片

学习笔记1000Star奖杯

学习笔记Gitee地址:https://gitee.com/moxi159753/LearningNotes

关于开源

从开源的过程中,不仅自己的能力能得到提升,同时也能认识非常多志同相合的小伙伴,包括在群里的小伙伴们,也有一些一块参与到项目的维护和开发中,也有一些给我们提供 issue 和idea ,同时能够和一些参加多年工作经验的老哥交流,也是受益匪浅的。

通过开源,我也获得了很多工作机会。就本次秋招来讲,其实很多面试官对我做的开源项目比较感兴趣,所以面试上其实很多时间都在聊这个开源项目。同时,我也收到过猎头通过 Github 上的邮箱给我发的邮件,期望我去参加他们推荐的工作 ( 哈哈哈,后面因为知道我还没有毕业的事情,就放弃了,因为他们招的是5年工作经验的。就因为这个原因错过了阿里P6-P7的岗位了,简直太亏了啊)

图片

猎头推荐邮件

 

满满干货

JavaSE

JavaSE是 Java 的核心和基础,我最早接触 JavaSE 是在2014年10月 ,那会刚刚上大二,学校刚刚开设 Java 课程。那会的老师在给我们讲解 JavaGui 编程的时候,我突然发现原来通过代码写出来的东西,不仅仅只是在黑框框上运行,也是有可视化的界面,从这一刻我突然对 Java 有了浓厚的兴趣。

为啥学 C++ 的时候没有这感觉?因为觉得C++只能写出黑框框程序,还有就是指针& *#@ …

后面又通过网上冲浪,我发现了X客的视频教程,从此就开启了Java 入门之旅。

图片

Java图片-网图

我最先接触的是X客毕向东老师的 Java基础视频教程 ,毕老师诙谐幽默的语言,然后丝毫感受不到学习的枯燥。在 Java 基础课程中,会学习到 Java环境的搭建、进制的转换、运算符、条件语句、数组、面向对象、多线程、集合类IO流 等内容。在基础部分是最花费时间的,我当初在大二的时候,学习基础就花费了两三个月才看完。同时我也希望刚刚入门的小伙伴们,能够打好基础,这样才能走的更远

在 JavaSE 阶段,小伙伴们需要掌握一下几个重点部分

面向对象、集合类、IO流、反射、泛型、异常处理

MySQL

在学习完 JavaEE 的课程后,我们就可以开始 MySQL 数据库的学习了。这门课程可能很多小伙伴在本科大二或者大三的时候会开设,如果已经学过的小伙伴,那么这个小节就可以直接跳过。

图片

MySQL图片-网图

在这里,我们将学习数据库和表的常用操作、约束、视图、存储过程和函数、流程控制结构以及综合运用各种命令实现数据的增删改查操作。

Bilibili图灵 MySQL:

https://www.bilibili.com/video/BV1b5411G7uF

JDBC

JDBC 的全称是 Java Data Base Connectivity ,即 Java数据库连接。目的是为了简化和统一对数据库的操作,定义的一套 Java 操作数据库的规范。

JDBC 的开发步骤主要分为一下四步:加载驱动、获得连接、基本操作、释放资源

在后面我们将会学习一些 ORM 框架,比如HibernateMyBatisMyBatis Plus ,他们将会屏蔽很多技术实现细节,让我们更加专注于业务的编码,但是如果我们提升内功,进行MySQL调优,这个时候就需要查看内部实现细节,就可能需要用到 JDBC 了。

因此,本章节如果对于想要快速入门的小伙伴,可以直接跳过。

JavaWeb

在学习完 Java 基础和如何使用 Java 操作 MySQL 数据库,就进入到了 JavaWeb 的阶段,在这里我们将学习一些前端的技术,用来开发页面(不要说,这是前端做的,有的时候去了小公司的话,可能你就是全栈开发了)。

前端技术我们主要会学习:HTML、CSS、JavaScript、JQuery等。

关于后端技术,我们主要学习Servlet程序、Filter过滤器、Listener监听器、JSP页面、EL表达式、JSTL标签库、jQuery框架、Cookie技术、Session会话、JSON使用、Ajax请求等大量Web开发核心技术点。

同时最后将会结合目前学习到的技术,完成一个书城项目。JavaWeb的课程主要是让我们奠定扎实的基础,为以后框架学习做好技术准备。

 

ps:最近讨论比较激烈的话题就是,2020年了,我们还需要学习JSP 么,下面是我在知乎搜索 JSP 时出现的讨论

图片

JSP讨论-知乎截图

其实 JSP 在后面是有很多被替代的模板引擎,比如:FreemarkThymeleaf ,但是他们因为都是模板引擎,所以基本上用法和 JSP 都差不多,就是通过自己的标签语法将后台的数据渲染出来,因此为了后面能够非常平稳的过度,还是建议小伙伴们能够了解一下,掌握基本的用法即可,毕竟还有非常多的旧项目还在使用 JSP进行维护和开发。

JavaEE

JavaEE 又被称为 J2EE,主要是用于开发 Java 企业应用。在这里我们主要将会学习 Java 企业开发框架 SSM,即SpringSpringMVCMyBatis 。

Spring框架:是一个轻量级 Java 开发框架,主要是为了解决企业应用开发的复杂性而创建的。

SpringMVC框架:SpringMVC 分离了 控制器、模型对象、分派器,让我们更容易进行开发定制

MyBatis框架:是一个 Java 持久层框架,用于操作数据库,消除了几乎所有的 JDBC 代码,使用简单的 XML 或 注解即可完成数据库操作。

SSH框架,即 Struts2、Spring、Hibernate 框架。现在Structs2 和 Hibernate相对用的较少,因此这里就暂时不推荐现在去了解。

Maven

Maven 是目前流行的自动化构建工具,也是一款在大型项目开发过程中不可或缺的重要工具。

陌溪在本科时期,老师教我们用 JDBC 连接数据库时,那会就还没有用到 Maven 进行依赖管理,当初开发是非常痛苦的,需要我们自己去找相关的 jar 包,例如:commons-dbcp、commons-pool、mysql-connector-jar。而且非常容易出现版本冲突,直到后面学习了 Maven ,终于摆脱了自己寻找 jar包的痛苦了,因为都通过统一的中央仓库来管理依赖,我们只需要通过定义基本坐标,就可以将依赖引入到项目中。

在本节中,我们将会学习:Maven 的作用、常用的命令、如何配置依赖、依赖的范围、依赖的传递性、依赖的排除、生命周期等

 

Spring

Spring5框架是一个轻量级开源的JavaEE框架,为了解决企业应用开发的复杂性而出现,它提供了功能强大IOC、AOP及Web MVC等功能。Spring框架可以单独构建应用程序,也可以和其他框架组合使用。Spring框架凭借其强大的功能以及优良的性能,在企业开发中被广泛应用。

图片

Spring-网图

在这里,我们主要从 Spring5 框架的基础开始学习,然后需要学习的技术包括:Spring5基础知识IOC容器AOPJdbcTemplate事务、Spring5新功能等。

其中,IOC容器 、AOP 和 事务 这几个部分是非常重要的点,在以后面试中,主要问到 Spring 框架,那么它们就是必问的考点,因此在这节需要小伙伴们能够好好的学习。Spring 框架将奠定我们整个 Java 编码的基石,毫不夸张的说,学习Java就是学习Spring开发 。

Bilibili图灵 框架:

https://www.bilibili.com/video/BV1r64y1o7iD

SpringMVC

SpringMVC框架采取了松耦合可插拔组件结构,比其它MVC框架更加具有扩展性和灵活性,在这里我们将学习到 RequestMapping、RequestParam 等注解的使用,以及 拦截器、过滤器、国际化、文件上传和异常处理等方面的内容。同时将会学习到 REST风格的URL请求,这将会让使我们未来在完成前后端分离项目时,如虎添翼。

Bilibili  SpringMVC:

https://www.bilibili.com/video/BV19t4y1Y7K2

Mybatis

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

图片

Mybatis-网图

在这节,我们将学习如何编写 Mybatis 配置文件、配置动态SQL缓存机制、整合 SSM 以及 Mybatis逆向工程

想当初陌溪在开发蘑菇博客第一版本的时候,就是使用的SSM框架。那会在整合SSM框架的时候,足足花费了 2 周的时间,那会视频教程没有这么多,我在遇到问题只能通过百度和 Google来检索,还好最后终于成功了~

同时通过学习 Mybatis逆向工程,可以自动生成基础的代码,让我们更加专注于业务的开发。

Bilibil MyBatis实战教程:

https://www.bilibili.com/video/BV1Jy4y1U7yR

MybatisPlus

MyBatisPlus是一款非常强大的MyBatis增强工具包,只做增强不做改变

图片

MybatisPlus-网图

陌溪最早接触 Mybatis-Plus 的时候,是在逛码云的时候看到的,那会它已经是年度最受欢迎的开源项目了,然后我为了学习Mybatis-Plus 的使用,在蘑菇博客技术选型的时候,就把Mybatis-Plus 作为了蘑菇博客的ORM框架。

Mybatis-Plus开源地址:

https://gitee.com/baomidou/mybatis-plus

Mybatis-Plus 在不用编写任何 SQL语句 的情况下即可以方便的实现单一、批量、分页等操作。

在这节,我们将学习,如何集成 MyBatisPlus、通用CRUDEntityWrapper 条件构造器、ActiveRecord 等基本操作,更有代码生成器插件扩展自定义全局操作公共字段填充Idea 快速开发插件等高阶技术.。

同时会涉及到 MyBatis 框架相关的原理,需要我们提前对Mybatis 有一定的了解。

Git

我们把上面的内容学习完之后,其实就已经可以开始上手写项目了。

但是以后工作肯定不会是一个人单打独斗,而是需要和大家一块协同开发,但是协同开发不可避免的就会遇到代码冲突,就是两个人同时修改某一块区域,最终以谁的代码为准?

图片

Git-网图

这个时候 Git 就出现了,Git 一个最重要的功能就是 版本控制,让我们在开发过程中管理我们对文件、目录或工程等内容的修改历史。方便我们查看更改历史记录和备份,以便恢复以前的版本。

本节主要讲解:Git安装过程,本地库基本操作、远程基本操作、码云的注册和使用、IDEA中集成Git操作以及GIt分支管理

SpringBoot

其实谈到 SpringBoot 的时候,我们不得不说它和SpringMVC 的关系。SpringMVC 相当于一辆自动挡的汽车,而 SpringBoot 相当于把手动挡变成了自动挡,同时加入了无人驾驶等功能,让你开车更加省心。但是车的主体功能还是不变的,你还是需要使用到 SpringMVC

SpringBoot 因为遵循约定大于配置,大量减少了配置文件的使用,让开发人员不需要定义样板化的配置。从而使得开发变得更加简便,提高了我们的编码效率。

图片

SpringBoot-网图

SpringBoot 本身并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring框架的应用程序。同时 SpringBoot 并不能替代 SpringMVC,它只是简化了 SpringMVC 相关配置。

虽然说,小伙伴们直接上手 SpringBoot 也未尝不可,但是如果在不了解 SpringMVC 原理的情况下就使用其进行开发,这叫知其然不知所以然,不是正确的学习方式。

在本节,将介绍 SpringBoot的使用和内部原理,其中包括 微服务概念、配置文件、日志框架的使用、Web开发、Thymeleaf模板引擎、Docker容器技术教程等。

Linux

在我们学习完 SpringBoot 后,其实就可以打包成 Jar 包然后部署到Linux服务器上了,虽然说在服务器上部署可能就是一条指令:java -jar 。但是以后我们难免需要在上面进行调试和错误定位。因此,为了以后能够了解运维相关的内容,所以我们也有必要去系统学习一波 Linux 的使用。

图片

Linux-网图

本章节,主要从Linux历史、基本命令、项目实战发布上线、等方面来讲解,告诉我们一个项目是如何打包并且部署在阿里云服务器中的。

Docker

Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。同时容器是完全使用沙箱机制,相互之间不会有任何接口(类似于 iphone的 app ),更重要的是容器的性能开销非常低。

图片

Docker-来源网络

蘑菇博客也是使用了Docker进行部署的,最开始的时候,是通过拉取一个 CentOS 的镜像,然后制作成容器,最后在上面安装博客所需的环境:Nginx、Redis、Rabbitmq、MySQL 等。最后将容器再次打包成镜像,发布到 DockerHub 上,其它小伙伴只需要拉取该镜像,即可快速完成环境的搭建。

本章节中,将从 Docker概念、镜像、容器、部署、Portainer可视化、容器数据卷、DockerFile、Docker网络 等方面镜像讲解。

Docker Compose

Docker Compose 属于 Docker 的高阶部分。在我们之前使用 Docker 的时候,需要定义 DockerFile 文件,然后使用 docker build 、 docker run 等命令操作容器。然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动开启和关闭,那么效率是非常低的,耗费运维的成本。

图片

Docker Compose-来源网络

这个时候 Docker Compose 就运营而生,它可以非常轻松、高效的管理容器,同时它也是一个用于定义和运行多个容器的Docker 管理工具。

在本章节中,主要讲解 Docker Compose概念、Compose配置编写规则、使用Docker Compose一键部署 WordPress博客、编写微服务实战、Swarm集群搭建、Raft一致性协议。

 

Redis

我们都知道大量查询 MySQL 是比较耗时的,目前蘑菇博客其实有很多场景都使用到了 Redis 作为缓存数据库。例如:首页内容的显示,热门的文章,数据字典,用户的令牌信息 等等,都是存储在 Redis 中的,就目前企业级开发来说, Redis 也是使用的非常多,一些需要通过计算得到的数据,并且未来将会再次使用,都可以将其存储在 Redis 中,来加快接口访问的效率。

图片

Redis图片-来源网络

在本章节,将从 NoSQL谈起,深入讲解 Redis 的基本数据类型、扩展特殊类型、Java 操作 Redis、SpringBoot集成 Redis、Redis的事务、配置文件的详解。同时在原理层面,将讲解 Redis的发布订阅模型、持久化机制、主从复制、哨兵模式、缓存穿透 和 缓存雪崩的处理。

Bilibili  Redis最新超详细版教程:

https://www.bilibili.com/video/BV1Mz4y1r7ii

RabbitMQ

MQ(Message Queue),即消息队列。谈到队列我们都知道,就是一个 先进先出的数据结构。而消息队列,就是将消息存储在队列里,先存入的队列就将会提前被消费。MQ 引入到系统中,就是有三个目的:异步削峰解耦

目前主流的消息队列主要有:KafkaActiveMQRabbitMQRocketMQ,关于各自的特点,请看下图

图片

image-20201222171358114

RabbitMQ 只是目前消息队列中的一种,因为最开始我被小兔子(RabbitMQ) 的控制面板吸引,所以在搭建蘑菇博客的时候,选择了 RabbitMQ。当然,小伙伴们在学习的时候,也可以结合自己喜欢的 MQ

图片

RabbitMQ图片-来源网络

蘑菇博客使用 RabbitMQ 的场景,主要是在 更新 Solr 和ElasticSearch 索引(用于全文检索),以及发送邮件和短信。因为这些过程都是可以异步执行的,所以就使用了 RabbitMQ 的异步特性。

在本节,主要讲解:MQ的概念、主流的MQ、RabbitMQ的安装及配置、RabbitMQ的工作模式、队列和交换机、SpringBoot项目整合RabbitMQ。

ElasticStack

如果你没有听说过 Elastic Stack,那你一定听说过 ELK ,实际上 ELK 是三款软件的简称

ELK = ElasticSearch + Logstash + Kibana

随着 Beats 的加入,原来的 ELK 体系变成了 ElasticStack,即

ElasticStack = ElasticSearch + Logstash + Kibana +Beats

图片

ElasticStack技术栈

在本章节,我们将学习到 ElasticStack 技术栈,主要包括如下内容:

Elasticsearch 基于 Java,是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,Restful 风格接口,多数据源,自动搜索负载等。

Logstash 基于 Java,是一个开源的用于收集,分析和存储日志的工具。

Kibana 基于nodejs,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的Web 界面,可以汇总、分析和搜索重要数据日志。

Beats 是 Elastic 公司开源的一款采集系统监控数据的代理agent,是在被监控服务器上以客户端形式运行的数据收集器的统称,可以直接把数据发送给 Elasticsearch 或者通过Logstash 发送给 Elasticsearch,然后进行后续的数据分析活动。

如果细心观察的小伙伴,可以看到蘑菇博客的架构图中,日志收集模块,其实就是使用 ElasticStack 实现的,同时全文检索也使用到了 ElasticSearch

图片

 

SpringCloud

微服务 是一种用于构建应用程序的架构方案。微服务架构与传统架构的区别在于,微服务可以将应用拆分成多个核心功能。每个功能都被称为一项服务,可以单独部署,这也意味着各项微服务在工作(出现故障时,不会相互影响),关于微服务的更多理解,可以参考 martinfowler 的论文

https://martinfowler.com/articles/microservices.html

图片

martinfowler关于微服务的论文

蘑菇博客最开始的架构是基于 SpringCloud 进行搭建,但是后面随着 SpringCloud 各种组件停止更新,进入维护阶段,后续技术组件的升级和替换策略方案选型,最终将 SpringCloud 升级为 现在的 SpringCloud Alibaba 架构。

在本章节中,学习 SpringCloud 各个组件,例如:Eureka、Feign、Hystrix、Ribbo、Config、Zuul、Zipkin 等。同时顺应时代变化,加入了 SpringCloud Alibaba 相关组件的,例如:Nacos、Sentinel、Seata 等技术。同时对微服务中的服务降级、服务熔断、服务限流、hotkey控制、分布式统一配置管理、分布式全局事务控制、RabbitMQ与Stream整合、Nacos和Nginx配置高可用集群等技术进行学习。

Bilibili图灵最新版SpringCloud教程:

https://www.bilibili.com/video/BV1Wp4y1r7GE

 

算法学习

首先我推荐的就是剑指Offer,里面都是一些经典的题型大概 67题。如果剑指Offer的算法题刷完的话,那就可以继续去LeetCode上刷题了。leetcode上刷题的话,也是要有针对性,比如,你可以优先选择热门的题目

leetcode: https://leetcode-cn.com/problemset/all

图片

LeetCode热门题目

如果时间允许的话,当然可以采用题海战术,把Leetcode的中等题目都进行扫盲式的学习。

如果时间不允许的话,那就需要站在别人的肩膀上学习了,比如可以合理的使用 牛客网搜索,根据前面人面试总结出的高频题,来进行突击性的训练。

以字节跳动为例:搜索  字节跳动  高频

图片

高频题搜索

能看到会有人总结出来,其它人在面试时候遇到的原题,而且这些题目会反复的出现,大家如果就打算冲某些大厂的话,最好把这些高频算法题都过一遍,一定要学会站在前人的肩膀上进行学习。

计算机基础课程

前面讲的都是关于 Java 方面的,但是并不是说计算机基础(数据结构、操作系统、计算机网络、数据库),就可以放下警惕了,其实他们同样也是高频的考点,非常的重要。

比如计算机网络:HTTPS 和 HTTP、TCP和 UDP 相关知识点,同时随着面试的内卷化,难度也会不断加深,关于三次握手和四次挥手,要求你能描述每次状态码的变化,可能还会问 为什么TCP连接是三次握手,而不是两次;为什么是四次挥手而不是三次等等一系列的连环套路。

计算机网络,我主要就是跟着Bilibili韩立刚老师的视频教程来学习的

Bilibili韩立刚老师的视频教程:https://www.bilibili.com/video/BV1WK4y1f71A

关于操作系统,我之前都是根据博客来进行学习的,比如看一些:线程和进程的区别,以及如何通信,然后死锁相关、银行家算法、虚拟内存、磁盘调度等

如果时间充裕,还是推荐进行系统的学习一下,小伙伴推荐的操作系统课程,B站第一中文操作系统当之无愧~

操作系统(哈工大李治军老师) :https://www.bilibili.com/video/BV1d4411v7u7

问到数据库的话,可能会叫你写SQL语句,或者讲述一下MySQL的索引,然后就能讲到B树 、B+树、聚簇索引和非聚簇索引、MySQL索引优化,分析某条SQL语句走了那些索引(explain)、MySQL行锁和表锁 等。

如果是项目做的比较多的话,可能还会问你数据库的分库分表操作,或者MySQL的主从复制。

同时关于数据库,可能还会问到你缓存相关,比如Redis。从Redis就能延伸出很多知识点了,Redis底层数据结构、跳跃表的实现、Redis的持久化策略AOF和RDBRedis的缓存穿透、缓存雪崩、Redis的主从复制原理 和 Redis的哨兵原理,同时像Redis的一致性Hash问题都有可能问到。

同时可能还会结合项目来问,比如问你项目中,高并发环境下,先操作数据库还是先删除缓存?或者在Redis主备切换时的数据丢失问题,异步复制和集群脑裂等等。

上次字节跳动的时候,就从Redis问到了过期策略,最后叫我讲解一下LRU算法,并要求我能手动实现。

图灵MySQL数据库高级:https://www.bilibili.com/video/BV1b5411G7uF

图灵超经典Redis教程:https://www.bilibili.com/video/BV1Mz4y1r7ii

关于Linux在面试这块,主要被问到Linux下的一些指令,例如:如何查看日志,查看端口,查看系统负载情况,个人的话,如果想要系统的学习Linux,推荐阅读:鸟哥的Linux私房菜,这本书我是购买过的。

鸟哥的Linux私房菜(在线):http://cn.linux.vbird.org/

收获果实

我整个秋招其实只面试了三家公司:字节跳动、京东、滴滴出行

  • 字节跳动:三天走完面试流程,最后拿了Offer

  • 京东:两轮技术面通过,HR面挂 (这个挂的莫名其妙,感觉被KPI了)

  • 滴滴出行:一天完成三轮技术面试,最后拿到SP意向书。

20202月份开始为秋招而准备,到我们学校开学后,大概在620号左右,就开始准备投递简历了(在这里我特别建议小伙伴们把握好提前批,因为有些公司的提前批是直接免笔试的)。

字节跳动是我面试的第一家公司。当初面试字节很大的原因还是我的本科小伙伴找他同学帮我内推的(在这里特别感谢尧尧和大壮)

图片

小伙伴帮我咨询内推情况

在等待一段时间后,收到了字节跳动杭州分部的Data部门面试的通知。

图片

面试邀约

不得不说,字节跳动的效率还是非常的快,就完成了流程:6月28日:第一面 + 第二面;6月30日:第三面 + HR面;7月7日:意向书

图片

面试通过发放意向书

其实在拿到字节跳动的Offer后,就准备躺平了,因为字节也是之前一直心心念念的公司,这也算了却了一桩心愿。不过,如果想冲击更高的薪资的话,那么我建议你可以多面几家,因为这样在面对公司给予的薪资,才有可以商量的余地。

结束语

如果你和我一样,本科出生不好,研究生也读了一个双非的学校。那么我们就更需要趁早准备,学历不行,那么就靠能力吃饭。好在就互联网公司而言,其实不是特别看重学历,只要你拥有本科学历,然后拥有比较强的能力的话,都可以吃上互联网这碗饭。

但是既然选择了从事 IT 开发 ,那么我们就需要时刻有危机意识。也就是在要求我们需要终生学习,不断的去学习和挑战新的难题。

就拿Java开发来说,你可能学习了SpringBoot+MySQL就可以开发了,但是我们不能仅仅满足于此,我们还需要去尝试着去了解微服务相关的知识。在我们业务只用MySQL的时候,我们可以去学习Redis、Memcached相关的知识。

只有这样我们才能不断保持自己的核心竞争力,让自己立于不败之地,只有这样我们才能够去冲击高薪,而不是等到 35 岁就被优化。

我们要知道,五年工作经验不等于 一年工作经验用五年,而是在这五年的时光里,不断的去学习新的知识,去解决各种问题,最后积累出来的经验。

最后,如果你和我一样出身不好,家里也没有矿,并且决心从事软件开发,那么我希望你能够和我一起,投入时间,投入精力去学习,现在多流汗,回头多拿钱

最新2021整理收集的一些面试题(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud等详细讲解,也有详细的学习规划图,面试题整理等,

 点击 : 一线大厂核心技术分享 分享最新技术,走在知识前端

点击一起学习 暗号:csdn 最新学习资料+简历优化资源

                         

  å¨è¿éæå¥å¾çæè¿°

后续会分享更多纯干货文章,希望能真正帮到你们。你们的支持就是我最大的动力!欢迎关注点赞啊!

                                                       

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从三本院校到斩获字节跳动后端研发Offer 的相关文章

  • 【剑指offer系列】剑指offer 03-06

    这次我们来讲解剑指offer的全部题目 xff0c 今天是第一天 xff0c 我们来讲解第三题到第六题 xff08 我也不清楚为什么力扣上查不到第一题和第二题 xff09 一 剑指offer 03 题目链接 xff1a 力扣 题目描述 xf
  • 一位程序员妹纸讲述她是如何拿到美团offer的?

    作者 xff1a 只爱羽毛球的程序媛 来源 xff1a http t cn EaXy17r 美团 xff0c 我是在拉勾网上投的简历 xff0c 之前也投过一次 xff0c 简历都没通过删选 xff0c 后来让学姐帮我改了一下简历 xff0
  • 【剑指offer】数字在排序数组中出现的次数

    统计一个数字在排序数组中出现的次数 解题思路 xff1a 遍历查找不是本题的最优解 xff0c 既然给出的是有序数组 xff0c 所以我们只需要找到目标的左侧和右侧的索引即可 所以我们可以找到本数组当中key 43 0 5和key 0 5的
  • 【剑指offer】链表找环的入口

    给一个链表 xff0c 若其中包含环 xff0c 请找出该链表的环的入口结点 xff0c 否则 xff0c 输出null 解题思路 xff1a 在链表判环的基础上进行优化 追击问题 xff0c 一快一慢可以再环中相遇 p1 61 p1 ne
  • Permutation 排列组合,主要是字符串的排列offer上的题目,还有leetcode的组合

    一个简洁版的结果过程说明 xff0c 固定一个位 xff0c 变换其他位 a b c d a b d c a c b d a c d b a d c b a d b c void perm char list int i int n int
  • 剑指 Offer 57. 和为s的两个数字

    题目 输入一个递增排序的数组和一个数字s xff0c 在数组中查找两个数 xff0c 使得它们的和正好是s 如果有多对数字的和等于s xff0c 则输出任意一对即可 示例 1 xff1a 输入 xff1a nums 61 2 7 11 15
  • 头条 offer,记一次 JAVA 面试经历和总结

    作者 xff1a 想去大厂的小菜鸡 本文的 我 xff0c 不是我 xff0c 是文中的作者 国庆期间公司的项目很闲 xff0c 很多人觉得没意思陆续走了 xff0c 我也考虑到自己的发展 xff0c 从9月底开始面 xff0c 面到11月
  • 【堆】剑指 Offer 40. 最小的k个数

    输入整数数组 arr xff0c 找出其中最小的 k 个数 例如 xff0c 输入4 5 1 6 2 7 3 8这8个数字 xff0c 则最小的4个数字是1 2 3 4 示例 1 xff1a 输入 xff1a arr 61 3 2 1 k
  • 【链表】剑指offer 22. 链表中倒数最后k个结点

    题目 输入一个长度为 n 的链表 xff0c 设链表中的元素的值为 ai xff0c 输出一个链表 xff0c 该输出链表包含原链表中从倒数第 k 个结点至尾节点的全部节点 如果该链表长度小于k xff0c 请返回一个长度为 0 的链表 数
  • 【二叉树】剑指offer 54 二叉搜索树的第k个结点

    描述 给定一棵结点数为 n 二叉搜索树 xff0c 请找出其中的第 k 小的TreeNode结点 数据范围 xff1a 0 n lt 61 100
  • 【剑指offer】二叉搜索树的第k个节点

    利用二叉搜索树的特点 xff0c 左边节点的值 lt 中间节点的值 lt 右边节点的值 xff0c 对二叉树进行中序遍历即可 通过res保存值 xff0c count记录遍历了多少个 中序遍历是在中间输出节点 xff0c 所以count在中
  • 剑指 Offer 59 - II. 队列的最大值

    剑指 Offer 59 II 队列的最大值 请定义一个队列并实现函数 max value 得到队列里的最大值 xff0c 要求函数max value push back 和 pop front 的均摊时间复杂度都是O 1 若队列为空 xff
  • 一份还热乎的蚂蚁金服面经(已拿Offer)!附答案!!

    本文转自 xff1a https mp weixin qq com s MzmdxqukOZ6rUta9nkGGw 本文来自我的知识星球的球友投稿 xff0c 他在最近的校招中拿到了蚂蚁金服的实习生Offer xff0c 整体思路和面试题目
  • 我只是把握好了这3点,1个月后成功拿下大厂offer!

    目录 一 写在前面二 技术广度的快速准备三 技术深度的快速准备四 基础功底的快速准备五 下篇预告 一 写在前面 春节过后 xff0c 即将迎来的是一年一度的金三银四跳槽季 假如你准备在金三银四跳槽的话 xff0c 那么作为一个Java工程师
  • 有了这份程序员面试指南,你离大厂Offer还远吗?| 附推荐书籍

    点击上方蓝色字体 xff0c 关注我 一个在阿里云打工的清华学渣 图by 石头 64 长白山 关于作者 xff1a 程序猿石头 ID tangleithu xff0c 现任阿里巴巴技术专家 xff0c 清华学渣 xff0c 前大疆后端 Le
  • 一位程序员妹纸讲述她是如何拿到美团offer的?

    作者 xff1a 只爱羽毛球的程序媛 来源 xff1a http t cn EaXy17r 美团 xff0c 我是在拉勾网上投的简历 xff0c 之前也投过一次 xff0c 简历都没通过删选 xff0c 后来让学姐帮我改了一下简历 xff0
  • 【LeetCode】剑指 Offer 60. n个骰子的点数 p294 -- Java Version

    题目链接 xff1a https leetcode cn problems nge tou zi de dian shu lcof 1 题目介绍 xff08 60 n个骰子的点数 xff09 把n个骰子扔在地上 xff0c 所有骰子朝上一面
  • 【LeetCode】剑指 Offer 63. 股票的最大利润 p304 -- Java Version

    题目链接 xff1a https leetcode cn problems gu piao de zui da li run lcof 1 题目介绍 xff08 63 股票的最大利润 xff09 假设把某股票的价格按照时间先后顺序存储在数组
  • python 坐标移动

    题目描述 开发一个坐标计算工具 A表示向左移动 D表示向右移动 W表示向上移动 S表示向下移动 从 0 0 点开始移动 从输入字符串里面读取一些坐标 并将最终输入结果输出到输出文件里面 输入 合法坐标为A 或者D或者W或者S 数字 两位以内
  • 程序媛菜鸡面经(八 - offer篇)

    投简历 简历是要多投的 但是有时候投多了简历也会有问题 头条 没有面试机会 在看过简历后HR发邮件告知我 从简历上能看出你是一位很优秀的人 但看不出你在前端 技术方面的竞争力 当时投的是旧版简历 于是我回邮问简历有误能否重申 至今未有回音

随机推荐

  • form-type:submit和reset用法

    form type submit和reset用法 span class token operator lt span form bindsubmit span class token operator 61 span span class
  • checkbox背景颜色设置

    checkbox背景颜色设置 js文件 data span class token punctuation span languages span class token punctuation span span class token
  • MongoDB安装方案

    安装MongoDB 黑马头条项目 43 人力资源后台项目的接口服务均采用了 MongoDB 43 KOA2 技术栈 xff0c 所以在使用本地服务之前 xff0c 我们需要首先安装MongoDB xff0c 这也是该环节中出问题最多的一项
  • 小程序生成海报携带参数-云函数生成二维码

    1 逻辑代码 span class token keyword async span span class token function qcFn span span class token punctuation span span cl
  • 小程序动画

    小程序动画 点击事件 span class token comment lt 三大特色 gt span span class token tag span class token tag span class token punctuati
  • 小程序云开发--内容安全审查API云调用

    云调用 云调用是小程序 云开发提供的在云函数中调用微信开放接口的能力 xff0c 需要在云函数中通过 wx server sdk 使用 接口方法 openapi span class token punctuation span secur
  • 如何通过异或运算快速简单的实现两个数的值的交换

    实现代码如下图所示 xff1a public class class01 public static void swap int a int b a 61 a b b 61 a b a 61 a b System out println a
  • Cisco ISE AAA认证

    ISE 介绍 思科身份服务引擎 ISE 是一种身份验证安全服务 可以在简单而灵活的界面中显示用户和设备 查看并通过网络平台共享详细信息 使其了解用户 设备和网络的具体情况 当然Cisco还有类型的产品 xff0c 比如NAC ACS 那么三
  • PNET模拟器 安装(附下载地址)

    PNET模拟器介绍 Lab is Simple PNET安装步骤 1 将OVA文件导入Vmware 2 注意点 3 开机 xff0c 进行安装 4 选择第一个 5 安装成功 6 打开浏览器输入上边的IP地址 7 选择Online Mode
  • Python自动化备份网络设备配置

    前提 xff1a https blog csdn net weixin 50299079 article details 109300864 好嘞 xff0c 废话不多说 xff0c 开始搞 本文以Cisco CSR1000V设备配合Pyt
  • Check Point R80.40 防火墙

    Check Point 它是一家以色列的公司 xff0c 是面向全球企业用户业内领先的信息安全解决方案提供商 Check Point 解决方案对恶意软件 勒索软件和高级目标威胁的防范率处于业界领先水准 xff0c 可有效保护客户免受网络攻击
  • YangSuite 与 Netconf

    Cisco YangSuite 提供了一组工具和插件 xff0c 用于学习 xff0c 测试采用yang模型的可编程接口 xff0c 例如Netconf Restconf gNMI等 关于理论可以参考之前写的Cisco YangExplor
  • DMVPN 动态多点隧道技术

    DMVPN的特点 配置简单 中心站点只需要配置一次即可 xff0c 增加站点无需修改中心站点配置 xff0c 分支站点配置几乎相同 xff1b 性能好 能够实现动态mGRE隧道 xff0c 数据在分支之间能够直接通信 xff0c 一次加解密
  • Cisco Viptela SD-WAN 基本部署

    Cisco SD WAN Cisco SD WAN四平面 xff0c 四组件 管理平面 vManage xff1b 提供了一个高度可视化的仪表板 xff0c 可简化网络操作 它在整个 SD WAN 结构中提供集中配置 管理 操作和监控 编排
  • Ubuntu20.04安装ROS系统(其中里边出现了很多错误并解决了)

    目录 前言配置流程1 Software amp Update设置2 ifconfig命令3 安装支持SSH4 安装源5 密钥6 更新7 开始安装ROS8 配置环境变量9 验证是否安装成功 前言 首先非常感谢网上的各种安装教程 xff0c 以
  • 大龄程序员没有出路吗?

    点赞关注 xff0c 不会迷路 xff01 前言 说好的更新终于来了 文末有福利 关于这篇文章 xff0c 其实一直在犹豫怎么跟大家说 因为大龄程序员是一个群体 xff0c 但是每个人的情况又各有不同 这篇文章只能给你一个参考 xff0c
  • 怎么做一个分分钟哄女朋友开心的小程序

    点赞关注 xff0c 不会迷路 xff01 主要目的 xff1a 做一个以女朋友照片为背景的画布 xff0c 装饰点小花小草小气球小爱心 xff0c 另设一个女朋友的小图片可以自由的移动 那么就需要创建一个小花类一个气球类 xff0c 一个
  • maven中Profiles的配置及作用

    1 maven中Profiles的配置方法 xff1a pom xml xff1a pom xml中声明的profile只对当前项目有效 当你的项目存在父模块和字模块的时候 xff0c 通常配置在父模块即可 用户settings xml x
  • Java如果在try,catch里面执行return,那么还会不会执行finally?

    点赞关注 xff0c 不会迷路 xff01 总结 xff1a 1 不管有没有异常 xff0c finally中的代码都会执行 2 当try catch中有return时 xff0c finally中的代码依然会继续执行 3 finally是
  • 从三本院校到斩获字节跳动后端研发Offer

    文章篇幅较长 xff0c 都是满满的干货 xff0c 看完收获绝对很多 xff0c 文末有学习笔记和学习资料领取 前言 大家好 这次应博主的邀约 xff0c 写一篇关于我的 Java 自学经历 xff0c 希望对小伙伴们有所帮助 我本科就读