前言

最近有很多小师妹来问我。

师妹:师兄~看了你之前的从腾讯到阿里,最后选择字节,觉得你特别厉害,请问你是怎么进BAT的呀,能不能告诉我你的学习路线呀~

既然小师妹都这么问了,那我在这篇就如实回答她。

正文

第一阶段看书籍

从书籍当中我们能更加系统的学习。我先推荐Java语言的书籍,如果你不是学Java的可以先跳过Java的书。

如果你是什么都不会的小白,先看《Java 核心技术卷 1+卷 2》

Java

深入理解Java虚拟机(第3版)(必看)

这本书主要讲的就是JVM,如果你是Java语言选手一定会问的。第2章 Java内存区域与内存溢出异常,第3章 垃圾收集器与内存分配策略,第8章 虚拟机字节码执行引擎 ,第7章 虚拟机类加载机制,第13章 线程安全与锁优化。这几章是面试常问的内容。当然啦,第一遍如果没有吃透很正常,可以二刷。

Java并发编程的艺术(必看)

这本是并发的入门书籍,Java并发编程实战我也看过,不过会比较难一点,所以还是推荐这本书。并发编程的艺术需要先看完Java虚拟机。

Java并发编程之美(选看)

这本书主要讲的是Java中并发集合的底层原理。看之前应该先理解简单Java集合的原理,如hashMap、arrayList、linkedList等原理再去看这本书。虽然本书的内容面试不常问,但作为加分项还是OK的。

加分项就是别人不知道,你知道的东西。

计算机网络

谢希仁的《计算机网络》(必看)(工具书)

这本书应该是很多高校的教材,跟着老师走就行,重点要掌握IP、TCP、UDP、HTTP。

图解HTTP(必看)

这本书的内容还是挺简单的,而且书中的内容HTTPS、Web的攻击技术面试也是经常问的。

TCP/IP详解 卷1:协议(选看)

HTTP权威指南(选看)

操作系统

操作系统精髓与设计原理(必看)

这是我的教材,个人感觉还是不错的适合入门。

深入理解计算机系统(选看)(工具书)

这本书太厚了,适合当工具书,哪里不会翻哪里。

UNIX环境高级编程(选看)

架构

大型网站技术架构(必看)

讲述大型互联网架构设计的核心原理,面试有很多问题可以在这本书找到。

师兄这么多书我看不完啊

每本书名后面我都有标必看还是选看。选看如果时间不允许可以不看,工具书的意思是看面经或者面试完复盘遇到不会的问题的时候,看相应的内容,毕竟网上的东西绝大部分都是二手或者三手以上的资料。

那如何看书呢?我经常都是看了前面忘了后面的

这是很正常的,不然为什么会有人二刷、甚至三刷的?我看书的时候会经常问自己,为什么有这东西?这东西解决了什么问题?如果没有这东西会怎么样?当我抛出这些问题后,把这些问题当做面试官问我的问题,我再根据之前看的内容对着书说出来。

举个例子

hashMap中的扰动函数解决了什么问题?

没有扰动处理会怎么样?

其他像hashTable是如何解决的?有没有什么可以代替的方案?

这样多问问自己,相信看完后,你会有更加深刻的理解。

第二阶段看别人总结的面试问题(面试前一两个月左右开始)

我们看完很多很多书后,这时我们还是不能应对面试的,因为我们根本不知道面试到底会问什么。

所以这时我们可以看看别人总结的面试问题及答案。这里先推荐几个。

JavaGuide

CyC2018/CS-Notes

JavaFamily

algo-basic

这些会更加针对面试,基本都是面试的常见问题,在我们看完之前的书之后,我们再来看这些问题会感觉貌似会但是不会说,所以这阶段我们看看别人是怎么回答的。

我们看完每个问题及其回答后,闭上眼睛用自己的话回答(假装面试官就在你面前)。不要去背,如果理解了用自己的话说出来是完全没问题的。

第三阶段看相应公司的面经(面试前几天开始)

https://www.nowcoder.com/interview/center

可以去牛客(希望牛客能给我广告费)看别人写的面经。

前期就是看到一个问题自己回答一下,不会就去上网查资料、翻书,查资料最好别用百度,花点钱用Google吧,百度查到的都是CSDN。。。

查完资料自己一定要有一个整理的过程!!!

比如上面的Mysql主从一致,你看了一遍会了,下一次遇到又不会,你又去查,浪费时间而且查到跟之前还可能不一样,最坑爹的是,有时候我翻了很多资料才找到一个满意的答案,所以这整理不是浪费时间,是节省时间。

上面这图是我校招整理的问题,分享给大家,基本上面试的问题都能在这里找到,而且很多问题都有对应的博客详细解答。(别忘记点个star)

https://github.com/505928168/JavaInterview

建议下载Typoar来看

我看到一些好的文章我会记录他的网址,并且把精华的部分复制出来。下一次再遇到这问题我就直接看,省了很多时间去查。

师兄为什么你标题是说看相应的公司呢

因为不同公司的考察内容的不一样的,比如腾讯就喜欢问操作系统、计算机网络、数据库,阿里就喜欢中间件。

所以如果你想进腾讯,那就要先认真研究一下腾讯一般会问什么。

第四阶段面试复盘

经过前面的三个阶段,我们知道面试会问什么并且能够回答,那我们就可以去历练。建议每次面试都录音,复盘的时候自己哪块比较弱就去学习。

建议先找小公司试试手,因为在大厂你的每次面试都有记录的。疯狂投简历吧!冲!

第五阶段自我提升

假设这时候你面对基本的面试问题了如指掌,先别高兴太早,这时候我们应该学习更加有难度的东西,比如中间件、linux底层原理等等。

这阶段最好的方法还是看书。

Redis

这是面试经常问的,建议别再这阶段学,提前学习。

Redis设计与实现(入门)Redis 深度历险:核心原理与应用实践(进阶)

消息队列

我推荐学Kafka吧,个人感觉资料会多一点。

B站找尚硅谷的入门视频。知道它是什么东西,怎么用的,之后看Kafka权威指南

zookeeper

B站找尚硅谷的入门视频。知道它是什么东西,怎么用的,之后看从Paxos到Zookeeper : 分布式一致性原理与实践

其中如果觉得一致性算法难以理解这里推荐视频

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

Dubbo

还是一样B站入门,之后看官网吧,因为我感觉很多书籍都是摘抄官网的。

http://dubbo.apache.org/zh-cn/

最后看完上面的选看书籍,恭喜你无敌了!!

师兄师兄,怎么没听你讲算法呀,我算法好菜的

那好小师妹,我最后讲下算法怎么准备,我们都知道算法是不能速成的,但是!!有很多套路!所以我这里非常推荐labuladong 的算法小抄,我就是靠着这小抄过了字节跳动的,剑指Offer我感觉也不错,值得看看。

我们看完算法小抄,并且跟着在力扣上面打。之后我们去力扣完成热题一百、面试精选等。如果觉得自己哪块比较薄弱,可以选择特地的分类刷题,比如动态规划。

注意,我们写算法题的时候就在力扣的IDE上面写,一开始很痛苦没有代码提示什么的,但是面试就是给你这样的环境,所以我们要提前熟悉!

项目呢?师兄?

项目确实是很多人的痛点。我们可以去抄袭别人的项目。就是写一个类似的,这个过程就算是抄,你也可以学到不少东西的,学编程不就是这样先看,再模仿、修改,然后创新吗?可以去GitHub上面找,有不少人是把自己面试的项目放在上面的,抄了再创新。

抄完项目后,想想这个项目的难点是什么,把这个难点包装,升华一下就是你面试要说的内容了。当然啦,项目的背景啊,实现了什么功能都要在面试前打好草稿。我这里不推荐任何项目,避免大家都一样就不好了。

避坑:建议别选秒杀或者商城,因为太多人选择了。这样的后果就是本来你做的东西挺不错,但是别人比你更好,那你就没有优势了。

如果自己没有做过项目,甚至连框架都没用过,可以去B站上面学习,像狂神说、尚硅谷还是不错的。

好啦,上面就是我校招的学习路线,适合收藏后慢慢看。

我是小炫,你们的点赞是我坚持下去的动力,我们下次见!

来关注一波~

双非本科拿到阿里腾讯字节,分享Java后端路线的更多相关文章

  1. 双非本科Android开发,如何逆袭拿到大厂 Offer?

    从2020年3月18日投出第一份暑期实习简历至今,已经过去400多天.我也尘埃落定,即将去CVTE做Android开发. 休息了很长时间,如今已经能够很平静地回首这段历程,写下这篇文,致敬曾经走过的漫 ...

  2. 谁说双非本科就一定无缘阿里?H哥粉丝6面通过,喜提Offer!

    本文来自作者投稿(原作者:小胖儿),原作者是一位2021届本科毕业生,就读于一所双非(非985.非211)院校,在今年2月份的时候,我曾经帮他指导过简历,并且根据他的简历内容帮他提了一些可能会问到的问 ...

  3. 非科班双非本科投的337家Java后台(励志)

    考试结束,班级平均分只拿到了年级第二,班主任于是问道:大家都知道世界第一高峰珠穆朗玛峰,有人知道世界第二高峰是什么吗?正当班主任要继续发话,只听到角落默默想起来一个声音:”乔戈里峰” 前言 文章出自h ...

  4. 双非本科进大疆(SP)!

    哈喽,大家好,我是仲一.今天和大家分享的是一位优秀双非本科生上岸大疆的经历(羡慕哭了...). 今年4月底的时候,这位学弟和我分享了他拿下oppo,京东,联发科实习offer的经历,当时我还发了朋友圈 ...

  5. 作为一名双非本科毕业的Java程序员,我该如何在日益严重的内卷化中避免被裁?

    前言 对一个 Java 程序员而言,并发编程能否熟练掌握是判断他是不是优秀的重要标准之一.因为并发编程在 Java 语言中最为晦涩的知识点,它涉及内存.CPU.操作系统.编程语言等多方面的基础能力,更 ...

  6. 春招后端阿里腾讯字节美团Offer拿来吧你,面试经验分享

    近期很多童鞋在准备校招了,找了蚂蚁的一位童鞋,给大家分享一波面试经验,以及面试心得,希望能帮大家在秋招拿到一个好结果 我自己的22届春招实习算是告一段落,给自己做个总结,也给大家分享一下面试的一些心得 ...

  7. 双非本科字节跳动Android面试题分享(已拿offer)

    基本情况 本人系非985非211普通本科生一枚,有实习有项目经历但成绩普通,在面试前刷了很多面经.面试题,这里也把自己的分享下,做个回报好了,顺便攒攒人品,一到这种时候人就迷信起来了. 面试是以视频面 ...

  8. 双非本科字节跳动Android面试经验和心得体会分享(已拿offer)

    新人报道,没有什么可分享的,就记录一些自己求职的体会和心得. 我是在校招补录的时候参加了今日头条的招聘,岗位是Android开发,最后成功拿到了入场券.但是这也丝毫不值得骄傲,大家都知道:技术日新月异 ...

  9. 双非硕士的辛酸求职回忆录:第 2 篇 谈谈我是如何同时找到Java、Python、Go等开发岗和国企银行的科技岗位Offer(上篇)

    1. 双非硕士的辛酸求职之旅--谈谈我是如何同时找到Java.Python.Go等开发岗和国企银行的offer 1.1. 秋招最终情况 本人情况:双非硕,意向工作城市广深,Java和Python技术栈 ...

随机推荐

  1. CountDownLatch、CyclicBarrier

    CountDownLatch CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能.比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行 ...

  2. shiro-重写标签功能----shiro:hasPermission 标签重写

    public abstract class ShiroAuthorizingRealm extends AuthorizingRealm{ private static final String OR ...

  3. TP6 数据库管理工具,生成前后台CRUD页面

    Tp6 数据库管理工具,数据库内容的搬运工 支持MySQL数据库,可视化配置直接生成前后台CRUD页面减少重复劳动,可以直接作为后台页面使用.前端页面技术基于 iszsw/surface 支持多表关联 ...

  4. Swiper 在IE9 及其他浏览器使用

    Swiper 在IE9 及其他浏览器使用 前言 昨天遇到一个问题,swiper 使用版本是3.4.2 除了Ie9浏览器外其他浏览器都正常,IE9 无法轮播,执行控制台报错源码问题.没办法,只能降级兼容 ...

  5. sort函数居然能改变元素值?记一次有趣的Bug——四数之和

    坐标leetcode: 我想都不想直接深度优先搜索暴力求解: class Solution { public: vector<vector<int>> res; //答案 in ...

  6. 024 01 Android 零基础入门 01 Java基础语法 03 Java运算符 04 关系运算符

    024 01 Android 零基础入门 01 Java基础语法 03 Java运算符 04 关系运算符 本文知识点:Java中的关系运算符 关系运算符

  7. Arduino 模拟引脚

    Arduino的模拟引脚的引用,网上不错的一篇文章 参考:http://blog.sina.com.cn/s/blog_156e62ef90102xjio.html 模拟引脚 本文是对于Arduino ...

  8. Java 获取屏幕的宽度和高度

    获取屏幕的宽度和高度 1 import java.awt.Dimension; 2 import java.awt.Toolkit; 3 4 public class Main { 5 6 publi ...

  9. 【题解】NOIP2018 赛道修建

    题目戳我 \(\text{Solution:}\) 根据题目信息简化题意,是让你在树上找出\(m\)条路径使得路径长度最小值最大. 看到题第一感先二分一个答案,问题转化为如何选择一些路径使得它们最小值 ...

  10. Java安全之Commons Collections1分析前置知识

    Java安全之Commons Collections1分析前置知识 0x00 前言 Commons Collections的利用链也被称为cc链,在学习反序列化漏洞必不可少的一个部分.Apache C ...