zoukankan      html  css  js  c++  java
  • 双非本科拿到阿里腾讯字节,分享Java后端路线

    前言

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

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

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

    正文

    第一阶段看书籍

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

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

    Java

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

    image-20201026154550096

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

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

    image-20201026154609978

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

    Java并发编程之美(选看)

    image-20201026152802320

     

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

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

    计算机网络

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

    image-20201026152815353

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

    图解HTTP(必看)

    image-20201026152827213

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

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

    HTTP权威指南(选看)

    操作系统

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

    image-20201026152839639

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

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

    深入理解计算机系统(原书第3版)

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

    UNIX环境高级编程(选看)

    架构

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

    大型网站技术架构

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

    师兄这么多书我看不完啊

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

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

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

    举个例子

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

    没有扰动处理会怎么样?

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

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

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

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

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

    JavaGuide

    CyC2018/CS-Notes

    JavaFamily

    algo-basic

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

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

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

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

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

    image-20201026154824188

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

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

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

    image-20201025153052353

    上面这图是我校招整理的问题,分享给大家,基本上面试的问题都能在这里找到,而且很多问题都有对应的博客详细解答。(别忘记点个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站上面学习,像狂神说、尚硅谷还是不错的。

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

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

    image-20201021172203723

    来关注一波~

  • 相关阅读:
    VMware15 安装centos7标准板
    jQuery拼接HTML标签元素
    解决win10 蓝牙设备只能配对无法连接 ,并且删除设备无效的问题
    Linux:系统的基本优化
    nano编辑器的设置
    Linux:网络yum源设置
    MySQL:MySQL的基本操作
    MySQL:MySQL的安装
    Python之路:堡垒机实例以及数据库操作
    paramiko 模块安装
  • 原文地址:https://www.cnblogs.com/runxuan/p/13884072.html
Copyright © 2011-2022 走看看