以Java为编程主语言、以后端为目标岗位的学习路线、求职技巧

374 阅读14分钟

以Java为编程主语言、以后端为目标岗位的学习路线、求职技巧

以下相关题目的内容均来自网络。

目的

  1. 为了记录自己正式接触java编程所经历过的心得体会和目前的学习成果。
  2. 记录那些优秀的学习资料,以及个人对它们的总结,如果可以帮到即将学习java的同学们,自然是最好。
  3. 已经学习了很多的资料,也经过实习,做过上线项目,是时候开始输出,让之后的同学们能更多地了解java后端开发现状。
  4. 还有一个目的,目前对于在校生来说,从学习到笔试、面试、入职等等的文章和内容实在太少了(或者付费,当然付费的资料往往很有价值),通过避开我踩过的坑,我了解的信息,让同学们更好地拿到理想的offer。

前言

工欲善其事,必先利其器。从个人学习经验来说,我认为好的学习资料是高效率学习的关键,也是让你尽可能踩坑的关键。

在这里只推荐网上的资料,因为本人的学习资料主要来源是互联网,对于纸质类的书籍暂时不评价。

其实也啃过一些书,但是那些书都太长了,时间成本有点大,对于时间少的同学这种不大现实,但是对于时间多的同学(比如大一开学就开始啃),可以好好打下基础,比如《java核心技术 卷I》《大话数据结构》之类的,我记得是老老实实敲了100页以上的代码(这里不是说教材不好,书里的内容更偏向于是深入学习的)。

学习方式

因为知识不能凭空出现在脑中,有了一定的输入,才会有一定的输出。所以,学习的方式大致分为三种:

  1. 主动输入,主动看资料,通过自我理解去学习,去解决问题。例如看算法题解。
  2. 被动输入,例如看视频,看讲解。往往是听视频、不思考就跟着做。
  3. 主动和被动输入,例如:一边观看视频,一边思考是如何进行的。观看到不太明白的知识点,主动去搜寻这方面的答案,并作记录等等。

对于我来说,我更推荐主动和被动输入。例如,在观看学习视频时,脑子要思考如何得到这一步的,不能光看着敲,如果可以的话,可以适当写点注释。不然,敲完代码后,你再回头来做,又不会做了。

还有适当记录一些重要的知识,主要是二次记忆,加深印象。

学习资料

学习资料主要分为以下2种:视频类、文字类,但是我会按照其功能去细分。

视频类:

黑马程序员:从 java基础java web框架单体项目开发微服务面试专题课 等等。

关于 java 等相关的入门学习,我主要推荐黑马,其特点是学习路线清晰,配套资料完善(通过一个小程序可以在里面去搜索资源保存并下载,一般评论区也会有提示),视频讲解到位,作为入门级别的视频学习是相当合格的。但是,有些视频对于某些知识点的讲解比较浅,并且项目往往不会研究更深层次的技术,比如Redis的视频就没有详细去实现布隆过滤器等等,所以其只适合按部就班的学习,解决特定问题需要其它的方法。

文字类:

一些大神级的网站:

Java 面试指南 | JavaGuide,开源项目、面试准备、八股文、技术书籍应有尽有,涵盖大量 Java生态体系下的知名软件,如果有不懂的知识点,想寻找好的开源项目,可以详细看看JavaGuide

小林coding (xiaolincoding.com),主要是讲解计算机网络、操作系统、MySQL、Redis相关的知识点和面试题,讲解得非常好,也有学习的路线图(要关注公众号),梦回大学计算机基础课。

CS-Notes 整理了包括算法题推荐、计算机基础、数据库、Java、系统设计等等。

JavaFamily 敖丙大佬,伟大无需多言。主要内容是 高质量八股文(非常深入)等。

鱼皮的编程宝典 鱼皮大佬,伟大无需多言,坐高铁只为多几个小时学习时间。

一些刷题网站:

LeetCode 热题 100 力扣(LeetCode)

剑指Offer - 力扣(LeetCode) 剑指Offer,太经典,无需多言

CodeTop 面试题目总结 一些考到的真题,可以以公司最近考察时间等为筛选条件

牛客网公司真题 一些考到的真题。

代码随想录 (programmercarl.com) 系统地教会你如何刷算法题。

题库ACM模式 - AcWing ACM模式

某些公众号及其博客平台等:是发布各大公司笔试真题的地方,例如:

可以详细看看,笔试AK自动机的分享: 互联网笔试经验分享&笔试刷题攻略 (qq.com)

万诺CodingTechGuide努力开摆的小鱼等等

一些接触信息、讨论平台

要像刷bz、刷dy的心态来积极接收消息

牛客网:可以了解到很多大佬的面试情况和公司的招聘信息,平台很活跃,面经/真题/内部消息,应有尽有。

脉脉:各大互联网公司员工bao薪资的地方,总的来说还是有参考价值,但是要有自我甄别的能力。

一些可以写博客的网站

掘金:支持专栏,发布,编辑等功能,审核很快。

脉脉:好像不支持编辑文章,不方便修改,但是某些企业关注该平台(至少美团里有)

知乎:某些企业关注该平台(至少美团推荐的平台里有)

博客园(还是可以用,里面有些技术文章很不错)

CSDN等等(没用过,就不评价了)

做、完善简历

更新中

投递简历相关

投递简历,建议关注牛客网BOSS直聘智联招聘51job前程无忧 等等,注意最重要的投递方式仍然是官网(无论是官网 + 内推码还是内推链接的方式)。

最好,找到某个公司的内推人,帮你跟进一下进度,比如牛客上有各大公司的内推码帖子、内推链接、求职沟通,当你准备好了简历,就可以和该公司的内推人交流,加wx、发简历、跟进进度等。无论大厂还是中厂,多投递才多有机会。

加各大交流群,寻找汇总各种公司招聘信息的帖子、网站等等。

测评

根据网上透露 每一道测评题的时间大概是1分钟左右,需要快速判断。一般来说,测评只要不太低,是不会挂的,但是有公司会很看重测评相关的内容,以此为重要标准

笔试

笔试往往是在测评,有些公司没有测评,没有测评的情况下就是:简历评估通过 -> 测评

可以看看我的专栏里的笔试文章: [2025 暑期实习笔试题目种类、数量、难度 - 掘金 (juejin.cn)] (juejin.cn/post/735577…)

以下都是重点:

题目的类型:

基础题:选择题,包括但不限于数据结构(栈的出入、二叉树前序后序、数组排序)、操作系统(进程与调度、进程的阻塞、就绪等状态、系统调用、缺页等)、Linux相关操作(各种Linux命令)、计算机网络(TCP三次握手、四次挥手、各层协议及其功能等)、SQL(比如选择SQL查询语句、SQL的组件及其功能等)、密码学(常见移位密码等)。 对于后端(不涉及大数据、云计算等相关深层知识,只聊基础),数据结构、操作系统、Linux相关、计算机网络的相关知识是考的最频繁的。

算法题:什么都会考,简单到困难题都有,这个就不赘述了,可以查查相关考点。

笔试的常见类型:

1.只有基础题(一般大厂除了基础题还有算法题,题目数不定,一般是[10, 30]),

2.只有算法题(3道、5道最常见)

3.基础题、算法题都有。

算法题相关:

一般来说,3道编程题的话都有难度(除了第一道签到题比较简单,当然有第一题可能有些格式、细节坑等),5道编程题(前3道比较简单,4、5较难),大家可以评估下真题难度,再规划投简历,这里建议先拿最近已经考过的真题练手,比如美团、腾讯、阿里、携程的简单题(熟练了再投,没熟练可以先不投,美团2-3道以上AC就有可能面试,3道题的情况一般(1, 2]道AC就有可能面试),等更熟练了之后,再考虑更高难度的编程题的厂。

大家在找到内推渠道前可以先不着急投简历(如果时间太紧、或者机会很大还是投吧),没有内推链接之类的话,大概率会泡池子(也就是进度缓慢,等很久都可能没有回应),内推码这种东西一般不太靠谱(牛客网上会提供内推码,但不会提供交流群、渠道之类的,一般都是在评论区回复求职进度),一般来说某些内推wx群,某些wx号(例如群公告之类的),有些文章,牛客网上私聊你的HR/技术人员等会提供内推渠道,这种情况就比较靠谱,你的简历进度会快速进行甚至有可能跳过笔试,直接面试

往往一个方向(例如后端、测开、测试等等)的笔试只有一次机会甚至一个公司一场笔试(比如美团24年3.31之后的笔试就只有一场,和春招同时进行),如果没有准备好,可以查看官网每场笔试的时间,一般之后的日期都会有笔试,可以考虑放弃最近的这一场,等准备差不多了再参加那时候最近的一场笔试。

美团:

后端:5道编程题,前3道简单,4、5较难,

腾讯:

5道编程题

阿里及其子公司:

3道编程题,前2道解题思路一般不难,但是考察数论,前缀和,基础,最后1道较难

米哈游:

3道编程题,都有难度

小红书:

后端:3道编程题,都有难度

面试

一般来说,面试次数最少一面,最多4面以上(一般4面就很不常见了),面试中会考察基础、算法、项目等等

有时候甚至会先约你面试时间,再发你笔试时间,比如先笔试在面试的前一天。

一面

主要是考察基础,包括但不限于:

多线程:线程的创建方式,线程池的创建

内存结构:jvm内存结构,堆,栈,栈溢出的原因。

计算机网络:在网页输入一个域名之后的过程,DNS、TCP/HTTP的概念和区别,有些公司甚至考察Http1.0 2.0 3.0的区别)

操作系统:进程与线程的概念和区别,虚拟内存概念,作用。

二面

主要是考察基础+场景

经验

这里记录一些经验,也是经过学习和踩坑得来的:

  1. 确定深入研究方向,在此之前需要做大量调研,后端方向还是很广的,这意味着要学的东西非常多,并且技术日新月异,考虑到工作需求,只需要深入某一方向进行学习就好了(如果有余力可以学习其它),目前来说,以下几个方向几乎是每个公司都会有的职位:1. web后端开发(web前端开发 -> web全栈开发), 2. 移动端开发 3. 大数据开发,4. 基础/中间件开发(要求较高,精通底层), 5. 安全技术 6. 测试开发(也包含测试)等等。当然还有其它开发,比如嵌入式开发等等,技术方向的很大区别在于技术栈,有些方向技术栈交叉,但有些几乎没交集,深入了解再做决定。

  2. 基础很重要。包括但不限于“计算机网络”、“操作系统”、“数据结构与算法”、“计算机组成原理”等(其中计算机网络、操作系统、数据结构与算法很重要)。如果能理解单机是如何组成、工作,对之后理解那些常用软件来说,理解都会更上一层楼。比如:mysql为什么选择B+树、kaffka,Redis,Nginx中的高效率响应、IO等等,这些都与计算机基础息息相关。

  3. 算法题:如果可以的话,算法题越早刷越好(大一就可以开始了),当然这里指的是,不间断系统性地刷算法题,千万不要学了一段时间然后中间间断一、两周,还有就是要系统的学习。还有就是刷题时最好使用ACM模式,因为笔试时大概率是ACM模式。一般面试的第一关就是算法题,而且往往拉开差距的就是中等和困难的算法题,如果算法题都过不了,就不用说其它的了,这也是为什么要提前刷算法题。

  4. 如何刷算法题:最开始题量可以不太大,比如一天2-3道简单题,然后记录自己做没做出来,复习时要额外关注没做出来的题。一道题最好不要超过半小时,因为还需要看题解,如果就差一点做出来可以再耗费一点时间。思考一道题 + 查看题解最好不要超过一个小时。当自己觉得简单题过于简单,可以试一试成同标签的中等题,然后再尝试困难题。注意,到时间了做不出来记得看题解,然后学习、记录至少一种解法,下次用这种解法去解题。

  5. 投简历的方法,这里还是推荐使用官网招聘网站投递或者内推人员的内推地址(内推人员也需要KPI,如果有群的话记得一定加入,可以push群主帮你查看简历进度,有些博主也会在评论区帮你查看进度并回答你),官网的招聘信息非常详细,也有筛选系统。直接通过搜索引擎就可以搜到:zj/tx/... + 校招/社招/...,例如:字节校招、美团校招,

学习心态

如果碰壁、遇到挫折了,别太在意,这是很正常的,要渐渐习惯这种过程,不到秋招、春招的最后,不要觉得自己真的找不到实习或工作,因为当你进行笔试、面试之后,你会发现你的能力究竟如何,如果太差建议好好的学习、积累一下,别太浮躁,如果感觉良好,可以加大力度,但是一定要注意平衡求职和学习之间的关系。每年的市场情况不一样,每个人的能力不一样,学历不一样,付出的努力也不一样,每个人的运气也不一样,不要听了头部dalao们的成功案例,就认为成功很简单,其实不然,都是需要不断努力、学习才有最终的好结果。

更新

分享不易,还望多多点赞、收藏,后续还会继续更新