diff --git a/docs/.vuepress/sidebar/index.ts b/docs/.vuepress/sidebar/index.ts index ae10df10..0c0d0084 100644 --- a/docs/.vuepress/sidebar/index.ts +++ b/docs/.vuepress/sidebar/index.ts @@ -26,6 +26,7 @@ export default sidebar({ prefix: "interview-preparation/", children: [ "teach-you-how-to-prepare-for-the-interview-hand-in-hand", + "resume-guide", "key-points-of-interview", "project-experience-guide", "interview-experience", diff --git a/docs/cs-basics/network/other-network-questions.md b/docs/cs-basics/network/other-network-questions.md index 43896939..c9e6f109 100644 --- a/docs/cs-basics/network/other-network-questions.md +++ b/docs/cs-basics/network/other-network-questions.md @@ -5,6 +5,8 @@ tag: - 计算机网络 --- + + 上篇主要是计算机网络基础和应用层相关的内容。 ## 计算机网络基础 diff --git a/docs/cs-basics/operating-system/operating-system-basic-questions-01.md b/docs/cs-basics/operating-system/operating-system-basic-questions-01.md index f41cbc31..23a3fc79 100644 --- a/docs/cs-basics/operating-system/operating-system-basic-questions-01.md +++ b/docs/cs-basics/operating-system/operating-system-basic-questions-01.md @@ -12,6 +12,8 @@ head: content: 很多读者抱怨计算操作系统的知识点比较繁杂,自己也没有多少耐心去看,但是面试的时候又经常会遇到。所以,我带着我整理好的操作系统的常见问题来啦!这篇文章总结了一些我觉得比较重要的操作系统相关的问题比如进程管理、内存管理、虚拟内存等等。 --- + + 很多读者抱怨计算操作系统的知识点比较繁杂,自己也没有多少耐心去看,但是面试的时候又经常会遇到。所以,我带着我整理好的操作系统的常见问题来啦!这篇文章总结了一些我觉得比较重要的操作系统相关的问题比如 **用户态和内核态、系统调用、进程和线程、死锁、内存管理、虚拟内存、文件系统**等等。 这篇文章只是对一些操作系统比较重要概念的一个概览,深入学习的话,建议大家还是老老实实地去看书。另外, 这篇文章的很多内容参考了《现代操作系统》第三版这本书,非常感谢。 diff --git a/docs/interview-preparation/resume-guide.md b/docs/interview-preparation/resume-guide.md new file mode 100644 index 00000000..d4a9a399 --- /dev/null +++ b/docs/interview-preparation/resume-guide.md @@ -0,0 +1,242 @@ +--- +title: 程序员简历编写指南 +category: 面试准备 +--- + +::: tip 友情提示 +本文节选自 **[《Java 面试指北》](../zhuanlan/java-mian-shi-zhi-bei.md)**。这是一份教你如何更高效地准备面试的小册,涵盖常见八股文(系统设计、常见框架、分布式、高并发 ......)、优质面经等内容。 +::: + +## 前言 + +一份好的简历可以在整个申请面试以及面试过程中起到非常重要的作用。 + +**为什么说简历很重要呢?** 我们可以从下面几点来说: + +**1、简历就像是我们的一个门面一样,它在很大程度上决定了是否能够获得面试机会。** + +- 假如你是网申,你的简历必然会经过 HR 的筛选,一张简历 HR 可能也就花费 10 秒钟左右看一下,然后决定你能否进入面试。 +- 假如你是内推,如果你的简历没有什么优势的话,就算是内推你的人再用心,也无能为力。 + +另外,就算你通过了第一轮的筛选获得面试机会,后面的面试中,面试官也会根据你的简历来判断你究竟是否值得他花费很多时间去面试。 + +**2、简历上的内容很大程度上决定了面试官提问的侧重点。** + +- 一般情况下你的简历上注明你会的东西才会被问到(Java 基础、集合、并发、MySQL、Redis 、Spring、Spring Boot 这些算是每个人必问的),比如写了你熟练使用 Redis,那面试官就很大概率会问你 Redis 的一些问题,再比如你写了你在项目中使用了消息队列,那面试官大概率问很多消息队列相关的问题。 +- 技能熟练度在很大程度上也决定了面试官提问的深度。 + +在不夸大自己能力的情况下,写出一份好的简历也是一项很棒的能力。 + +## 简历模板 + +简历的样式真的非常非常重要!!!如果你的简历样式丑到没朋友的话,面试官真的没有看下去的欲望。一天处理上百份的简历的痛苦,你不懂! + +我这里的话,推荐大家使用 Markdown 语法写简历,然后再将 Markdown 格式转换为 PDF 格式后进行简历投递。如果你对 Markdown 语法不太了解的话,可以花半个小时简单看一下 Markdown 语法说明: 。 + +下面是我收集的一些还不错的简历模板: + +- 适合中文的简历模板收集(推荐,免费):https://github.com/dyweb/awesome-resume-for-chinese +- 木及简历(部分收费) : https://www.mujicv.com/。 +- 简单简历(付费):https://easycv.cn/ +- 站长简历:https://jianli.chinaz.com/ +- typora+markdown+css 自定义简历模板 :https://github.com/Snailclimb/typora-markdown-resume +- 极简简历 : https://www.polebrief.com/index +- Markdown 简历排版工具:https://resume.mdnice.com/ +- 超级简历(部分收费) : https://www.wondercv.com/ + +上面这些简历模板大多是只有 1 页内容,很难展现足够的信息量。如果你不是顶级大牛(比如 ACM 大赛获奖)的话,我建议还是尽可能多写一点可以突出你自己能力的内容(校招生 2 页之内,社招生 3 页之内,记得精炼语言,不要过多废话)。 + +再总结几点 **简历排版的注意事项**: + +- 尽量简洁,不要太花里胡哨。 +- 一些技术名词不要弄错了大小写比如 MySQL 不要写成 mysql,Java 不要写成 java。 +- 中文和数字英文之间加上空格的话看起来会舒服一点。 + +## 简历内容 + +### 个人信息 + +- 最基本的 :姓名(身份证上的那个)、年龄、电话、籍贯、联系方式、邮箱地址 +- 潜在加分项 : Github 地址、博客地址(如果技术博客和 Github 上没有什么内容的话,就不要写了) + +示例: + +![](https://oss.javaguide.cn/zhishixingqiu/20210428212337599.png) + +**简历要不要放照片呢?** 很多人写简历的时候都有这个问题。 + +其实放不放都行,影响不大,完全不用在意这个问题。除非,你投递的岗位明确要求要放照片。 不过,如果要放的话,不要放生活照,还是应该放正规一些的照片比如证件照。 + +### 求职意向 + +你想要应聘什么岗位,希望在什么城市。另外,你也可以将求职意向放到个人信息这块写。 + +示例: + +![](https://oss.javaguide.cn/zhishixingqiu/20210428212410288.png) + +### 教育经历 + +教育经历也不可或缺。通过教育经历的介绍,你要确保能让面试官就可以知道你的学历、专业、毕业学校以及毕业的日期。 + +示例: + +> 北京理工大学 硕士,软件工程 2019.09 - 2022.01 +> 湖南大学 学士,应用化学 2015.09 ~ 2019.06 + +### 专业技能 + +先问一下你自己会什么,然后看看你意向的公司需要什么。一般 HR 可能并不太懂技术,所以他在筛选简历的时候可能就盯着你专业技能的关键词来看。对于公司有要求而你不会的技能,你可以花几天时间学习一下,然后在简历上可以写上自己了解这个技能。 + +下面是一份最新的 Java 后端开发技能清单,你可以根据自身情况以及岗位招聘要求做动态调整,核心思想就是尽可能满足岗位招聘的所有技能要求。 + +![Java 后端技能模板](https://oss.javaguide.cn/zhishixingqiu/jinengmuban.png) + +我这里再单独放一个我看过的某位同学的技能介绍,我们来找找问题。 + +![](https://oss.javaguide.cn/zhishixingqiu/up-a58d644340f8ce5cd32f9963f003abe4233.png) + +上图中的技能介绍存在的问题: + +- 技术名词最好规范大小写比较好,比如 java->Java ,spring boot -> Spring Boot 。这个虽然有些面试官不会介意,但是很多面试官都会在意这个细节的。 +- 技能介绍太杂,没有亮点。不需要全才,某个领域做得好就行了! +- 对 Java 后台开发的部分技能比如 Spring Boot 的熟悉度仅仅为了解,无法满足企业的要求。 + +### 实习经历/工作经历(重要) + +工作经历针对社招,实际经历针对校招。 + +工作经历建议采用时间倒序的方式来介绍。实习经历和工作经历都需要简单突出介绍自己在职期间主要做了什么。 + +示例: + +> **XXX 公司 (201X 年 X 月 ~ 201X 年 X 月 )** +> +> - **职位**:Java 后端开发工程师 +> - **工作内容**:主要负责 XXX + +### 项目经历(重要) + +简历上有一两个项目经历很正常,但是真正能把项目经历很好的展示给面试官的非常少。 + +很多求职者的项目经历介绍都会面临过于啰嗦、过于简单、没突出亮点等问题。 + +项目经历介绍模板如下: + +> 项目名称(字号要大一些) +> +> 2017-05~2018-06 淘宝 Java 后端开发工程师 +> +> - **项目描述** : 简单描述项目是做什么的。 +> - **技术栈** :用了什么技术(如 Spring Boot + MySQL + Redis + Mybatis-plus + Spring Security + Oauth2) +> - **工作内容/个人职责** : 简单描述自己做了什么,解决了什么问题,带来了什么实质性的改善。突出自己的能力,不要过于平淡的叙述。 +> - **个人收获(可选)** : 从这个项目中你学会了那些东西,使用到了那些技术,学会了那些新技术的使用。通常是可以不用写个人收获的,因为你在个人职责介绍中写的东西已经表明了自己的主要收获。 +> - **项目成果(可选)** :简单描述这个项目取得了什么成绩。 + +**1、项目经历应该突出自己做了什么,简单概括项目基本情况。** + +项目介绍尽量压缩在两行之内,不需要介绍太多,但也不要随便几个字就介绍完了。 + +**2、技术架构直接写技术名词就行,不要再介绍技术是干嘛的了,没意义,属于无效介绍。** + +![](https://oss.javaguide.cn/github/javaguide/interview-preparation/46c92fbc5160e65dd85c451143177144.png) + +**3、尽量减少纯业务的个人职责介绍,对于面试不太友好。尽量再多挖掘一些亮点(6~8 条个人职责介绍差不多了,做好筛选),最好可以体现自己的综合素质,比如你是如何协调项目组成员协同开发的或者在遇到某一个棘手的问题的时候你是如何解决的又或者说你在这个项目优化了某个模块的性能。** + +即使不是你做的功能模块或者解决的问题,你只要搞懂吃透了就能拿来自己用,适当润色即可! + +像性能优化方向上的亮点面试之前也比较容易准备,但也不要都是性能优化相关的,这种也算是一个极端。 + +另外,技术优化取得的成果尽量要量化一下: + +- 使用 xxx 技术解决了 xxx 问题,系统 QPS 从 xxx 提高到了 xxx。 +- 使用 xxx 技术了优化了 xxx 接口,系统 QPS 从 xxx 提高到了 xxx。 +- 使用 xxx 技术解决了 xxx 问题,查询速度优化了 xxx,系统 QPS 达到 10w+。 +- 使用 xxx 技术优化了 xxx 模块,响应时间从 2s 降低到 0.2s。 +- ...... + +示例: + +- 使用 Sharding-JDBC 对 MySQL 数据库进行分库分表,优化千万级大表,单表数据量保持在 500w 以下。 +- 热门数据(如首页、热门博客)使用 Redis+Caffeine 两级缓存,解决了缓存击穿和穿透问题,查询速度毫秒级,QPS 30w+。 +- 使用 CompletableFuture 优化购物车查询模块,对获取用户信息、商品详情、优惠券信息等异步 RPC 调用进行编排,响应时间从 2s 降低 0.2s。 + +可以参考下面这位同学的介绍(依然还可以继续优化,参考上面我介绍的方法论): + +![](https://oss.javaguide.cn/zhishixingqiu/395c10e0dc9440c8961cbe203d8a022e~tplv-k3u1fbpfcp-zoom-1.png) + +**4、如果你觉得你的项目技术比较落后的话,可以自己私下进行改进。重要的是让项目比较有亮点,通过什么方式就无所谓了。** + +项目经历这部分对于简历来说非常重要,《Java 面试指北》的面试准备篇有好几篇关于优化项目经历的文章,建议你仔细阅读一下,应该会对你有帮助。 + +![](https://oss.javaguide.cn/zhishixingqiu/4e11dbc842054e53ad6c5f0445023eb5~tplv-k3u1fbpfcp-zoom-1.png) + +**5、避免个人职责介绍都是围绕一个技术点来写,非常不可取。** + +![](https://oss.javaguide.cn/zhishixingqiu/image-20230424222513028.png) + +### 荣誉奖项(可选) + +如果你有含金量比较高的竞赛(比如 ACM、阿里的天池大赛)的获奖经历的话,荣誉奖项这块内容一定要写一下!并且,你还可以将荣誉奖项这块内容适当往前放,放在一个更加显眼的位置。 + +### 校园经历(可选) + +如果有比较亮眼的校园经历的话就简单写一下,没有就不写! + +### 个人评价 + +**个人评价就是对自己的解读,一定要用简洁的语言突出自己的特点和优势,避免废话!** 像勤奋、吃苦这些比较虚的东西就不要扯了,面试官看着这种个人评价就烦。 + +我们可以从下面几个角度来写个人评价: + +- 文档编写能力、学习能力、沟通能力、团队协作能力 +- 对待工作的态度以及个人的责任心 +- 能承受的工作压力以及对待困难的态度 +- 对技术的追求、对代码质量的追求 +- 分布式、高并发系统开发或维护经验 + +列举 3 个实际的例子: + +- 学习能力较强,大三参加国家软件设计大赛的时候快速上手 Python 写了一个可配置化的爬虫系统。 +- 具有团队协作精神,大三参加国家软件设计大赛的时候协调项目组内 5 名开发同学,并对编码遇到困难的同学提供帮助,最终顺利在 1 个月的时间完成项目的核心功能。 +- 项目经验丰富,在校期间主导过多个企业级项目的开发。 + +## STAR 法则和 FAB 法则 + +### STAR 法则(Situation Task Action Result) + +相信大家一定听说过 STAR 法则。对于面试,你可以将这个法则用在自己的简历以及和面试官沟通交流的过程中。 + +STAR 法则由下面 4 个单词组成(STAR 法则的名字就是由它们的首字母组成): + +- **Situation:** 情景。 事情是在什么情况下发生的? +- **Task::** 任务。你的任务是什么? +- **Action:** 行动。你做了什么? +- **Result:** 结果。最终的结果怎样? + +### FAB 法则(Feature Advantage Benefit) + +除了 STAR 法则,你还需要了解在销售行业经常用到的一个叫做 FAB 的法则。 + +FAB 法则由下面 3 个单词组成(FAB 法则的名字就是由它们的首字母组成): + +- **Feature:** 你的特征/优势是什么? +- **Advantage:** 比别人好在哪些地方; +- **Benefit:** 如果雇佣你,招聘方会得到什么好处。 + +简单来说,**FAB 法则主要是让你的面试官知道你的优势和你能为公司带来的价值。** + +## 注意事项和建议 + +- 一定要使用 PDF 格式投递,不要使用 Word 或者其他格式投递。这是最基本的! +- 尽量避免主观表述,少一点语义模糊的形容词。表述要简洁明了,简历结构要清晰。 +- 精简表述,突出亮点。校招简历建议不要超过 2 页,社招简历建议不要超过 3 页。如果内容过多的话,不需要非把内容压缩到一页,保持排版干净整洁就可以了。 +- 不会的东西就不要写在简历上了。注意简历真实性,适当润色没有问题。 +- 技术博客、Github 以及获奖经历等可以直接证明自己能力的东西,能写就尽量写在这里。不过,如果技术博客和 Github 上没有什么内容的话,就不要写了。 +- 技术名词最好规范大小写比较好,比如 java->Java ,spring boot -> Spring Boot 。这个虽然有些面试官不会介意,但是很多面试官都会在意这个细节的。 +- 工作经历建议采用时间倒序的方式来介绍,实习经历建议将最有价值的放在最前面。 +- 将自己的项目经历完美的展示出来非常重要,重点是突出自己做了什么(挖掘亮点),而不是介绍项目是做什么的。 +- 项目经历建议以时间倒序排序,另外项目经历不在于多(精选 2~3 即可),而在于有亮点。 +- 个人评价就是对自己的解读,一定要用简洁的语言突出自己的特点和优势,避免废话! 像勤奋、吃苦这些比较虚的东西就不要扯了,面试官看着这种个人评价就烦。 +- 准备面试的过程中应该将你写在简历上的东西作为重点,尤其是项目经历上和技能介绍上的。 +- 面试和工作是两回事,聪明的人会把面试官往自己擅长的领域领,其他人则被面试官牵着鼻子走。虽说面试和工作是两回事,但是你要想要获得自己满意的 offer ,你自身的实力必须要强。 \ No newline at end of file diff --git a/docs/interview-preparation/teach-you-how-to-prepare-for-the-interview-hand-in-hand.md b/docs/interview-preparation/teach-you-how-to-prepare-for-the-interview-hand-in-hand.md index f0fb7eff..af33bac8 100644 --- a/docs/interview-preparation/teach-you-how-to-prepare-for-the-interview-hand-in-hand.md +++ b/docs/interview-preparation/teach-you-how-to-prepare-for-the-interview-hand-in-hand.md @@ -1,5 +1,5 @@ --- -title: 手把手教你如何准备面试 +title: 手把手教你如何准备Java面试 category: 知识星球 --- diff --git a/docs/javaguide/faq.md b/docs/javaguide/faq.md index 41cdaf12..ed437678 100644 --- a/docs/javaguide/faq.md +++ b/docs/javaguide/faq.md @@ -9,7 +9,7 @@ category: 走近项目 《JavaGuide 面试突击版》在我的公众号后台回复“**PDF**”即可获取,免费的。除了 《JavaGuide 面试突击版》之外,还会免费送你多本优质面试 PDF 手册。 - +
## 如何看待 JavaGuide 的 star 数量很多? @@ -34,7 +34,7 @@ JavaGuide 这个项目诞生一年左右就有出版社的老师联系我了, - JavaGuide 的很多内容我还不是很满意,也一直在维护中,细心的小伙伴看我的提交记录就明白了。 - 开源版本更容易维护和修改,也能让更多人更方便地参与到项目的建设中,这也是我最初做这个项目的初衷。 - 我觉得出书是一件神圣的事情,自认能力还不够。 -- 个人精力有限,不光有本职工作,还弄了一个[知识星球](https://sourl.cn/psyWaE)赚点外快,还要维护完善 JavaGuide。 +- 个人精力有限,不光有本职工作,还弄了一个[知识星球](http://localhost:8080/about-the-author/zhishixingqiu-two-years.html)赚点外快,还要维护完善 JavaGuide。 - ...... 这几年一直在默默完善,真心希望 JavaGuide 越来越好,帮助到更多朋友!也欢迎大家参与进来! diff --git a/docs/snippets/gzh.snippet.md b/docs/snippets/gzh.snippet.md deleted file mode 100644 index 1178fe90..00000000 --- a/docs/snippets/gzh.snippet.md +++ /dev/null @@ -1 +0,0 @@ -[![gzh](https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png)](./about-the-author/zhishixingqiu-two-years.md) diff --git a/docs/snippets/planet.snippet.md b/docs/snippets/planet.snippet.md index a0ede07a..ad86fc25 100644 --- a/docs/snippets/planet.snippet.md +++ b/docs/snippets/planet.snippet.md @@ -10,11 +10,11 @@ 下面是星球提供的部分服务(点击下方图片即可获取知识星球的详细介绍): -[![星球服务](https://oss.javaguide.cn/xingqiu/xingqiufuwu.png)](./about-the-author/zhishixingqiu-two-years.md) +[![星球服务](https://oss.javaguide.cn/xingqiu/xingqiufuwu.png)](../about-the-author/zhishixingqiu-two-years.md) **我有自己的原则,不割韭菜,用心做内容,真心希望帮助到你!** -如果你感兴趣的话,不妨花 3 分钟左右看看星球的详细介绍: [JavaGuide 知识星球详细介绍](./about-the-author/zhishixingqiu-two-years.md)。 +如果你感兴趣的话,不妨花 3 分钟左右看看星球的详细介绍: [JavaGuide 知识星球详细介绍](https://javaguide.cn/about-the-author/zhishixingqiu-two-years.html)。 ## 如何加入? diff --git a/docs/system-design/framework/spring/spring-knowledge-and-questions-summary.md b/docs/system-design/framework/spring/spring-knowledge-and-questions-summary.md index 5193d773..a819b1f5 100644 --- a/docs/system-design/framework/spring/spring-knowledge-and-questions-summary.md +++ b/docs/system-design/framework/spring/spring-knowledge-and-questions-summary.md @@ -5,6 +5,8 @@ tag: - Spring --- + + 这篇文章主要是想通过一些问题,加深大家对于 Spring 的理解,所以不会涉及太多的代码! 下面的很多问题我自己在使用 Spring 的过程中也并没有注意,自己也是临时查阅了很多资料和书籍补上的。网上也有一些很多关于 Spring 常见问题/面试题整理的文章,我感觉大部分都是互相 copy,而且很多问题也不是很好,有些回答也存在问题。所以,自己花了一周的业余时间整理了一下,希望对大家有帮助。