• 用4年8个月熬出头!成功入职阿里巴巴,涨薪14K(Java)


    前言
    你的努力,终将成就无可替代的自己
    本科毕业后就一直从事Java开发的工作,和多数人一样,最开始从事crud的工作,看着自己的同学一步一步往上走,自己还是在原地踏步,说实话这不是自己想要的状态。
    一年半后开始沪漂生活,又摸爬滚打了一年半,薪资基本上在16K。疫情在家开始了系统的学习,目的就是为了进大厂,得到更多的学习机会,也是为了自己到所谓的“35岁”之后,也能在老家恰一口好饭。
    努力也没有白费,8个月时间的系统性学习成功上岸Alibaba,直接涨薪14K,下面分享一下我的学习指南,面试真题以及个人心得体会。(晒一下入职offer)
     


    阿里面试真题(3轮技术面 + 1轮HR )


    一面(电话面+后期在线coding)
    ①你们为什么要使用mongdoDb?你们的这个系统中涉及到哪些表?
    ②hytrix 的实现原理是什么?隔离策略有哪些?你们使用的是哪一些?你们项目中哪些地方使用到了,使用场景是什么?为什么要使用?
    ③spirng 源码。
    ④rocketMq 的设计理念,数据存储,设计思想等。
    ⑤ConcurrentHashMap的底层实现原理
    ⑥你线上问题解决经验是什么?遇到了什么问题?应该怎么去解决?
    ⑦在线编码: 两个有序链表,合并成一个链表,然后进行算法的时间复杂度,空间复杂度分析。
    二面(电话面+后期在线coding)
    ①tcp协议和uDP 协议的区别是什么?
    ②3次握手和4次挥手的过程是什么样的?
    ③怎么保证接口的幂等性?
    ④mysql的存储引擎的数据结构是什么?相比其余的数据结构,有什么优缺点?
    ⑤说一下你对SpringCloud,SpringBoot,Spring的理解
    ⑥java 在编译和运行过程中分别作了什么?
    ⑦在线编码: 给定一个字符串,单词之间以空格分隔,要求里面的单词倒装过来。
    三面(电话面,技术交叉面)
    ①介绍一下springCloud 的组件,各组件的作用,你们是怎么用,你的理解是什么?
    ②springCloudbus 关联的消息中间有几种?支持哪几种?你觉的什么场景下,会用到springCLoudBus?
    ③springCloud里面的限流,限流是怎么内部实现的?怎么去挡住多余的请求,怎么实现限流的(线程池的工作原理)?
    ④什么时候该用mongoDB,什么时候使用mysql?该如何选择?
    ⑤你做过的项目数据量有多大呢?如果现在数据量特别大,或者一张表一种放不下了,应该怎么处理?分布分表应该怎么做?具体的某一张表怎么拆?(涉及到主键生成,各种主键生成策略对比,数据分片,以及关联数据的存储,主从复制)
    ⑥java 官方提供的创建的线程池的方式有几种?分别是什么?
    ⑦你们使用的java 版本是什么?java最新的版本是多少?你们为什么还在使用java8呢?
    ⑧你们的垃圾回收器是什么的? 为什么是使用CMS而不是G1? 你能介绍一下像CMS垃圾回收器,从对象创建,内存分配到垃圾回收整个过程吗?
    ⑨介绍一下策略模式,应该怎么用? 它能解决什么问题?从编码领域系统设计方,介绍一下我们怎么去实现一个策略模式?


    学习指南(按照开发经验对程序员进行分层)
    0~1年(搬砖):

    • Java基础(基本语法、面向对象、继承、多态、接口和抽象类、异常、内部类、集合、泛型、反射、I/O等)
    • Web编程(Servlet+MySQL数据库+商品管理系统实战)
    • SSM框架入门到精通(Spring+SpringMVC+Mybatis+SSM商品管理系统实战)
    • SpringBoot(SpringBoot+SpringBoot商品管理系统实战)

    1~3年(技工):

    • JVM深度进阶(JVM内存区域+JVM运行时内存+垃圾回收与算法+JAVA 四种引用类型+GC分代收集算法 VS 分区收集算法+GC垃圾收集器等)
    • 并发编程深度进阶(并发机制的底层实现原理+内存模型+并发编程基础+锁+并发容器和框架+原子类操作+并发工具类+线程池+实战)
    • MySQL深度进阶(Mysq|存储引擎选型及注意事项+解读Mysq|的共享锁及排它锁+分区+事务隔离级别+索引+Sql优化)
    • 数据结构与算法(Java程序员面试必问)

    3~5年(包工头):

    • 分布式消息中间件(Zookpeer+Kafka+MQ+dubbo+SpringCloud等)
    • 数据库(主从复制+读写分离+分库分表)
    • 高效存储(Redis+MongoDB)

    5年以上(设计师):

    • 分布式扩展到微服务(SpringBoot+SpringCloudAlibaba+Docker)
    • SSM框架源码解读(Spring高级源码+SpringMVC源码+Mybatis源码)

    10年以上(送外卖送快递):
    进入饿了么,开始送外卖(开个玩笑)


    总结:心得体会
    既然选择这个行业,选择了做一个程序员,也就明白只有不断学习,积累实战经验才有资格往上走,拿高薪,为自己,为父母,为以后的家能有一定的经济保障。
    学习时间都是自己挤出来的,短时间或许很难看到效果,一旦坚持下来了,必然会有所改变。不如好好想想自己为什么想进入这个行业,给自己内心一个答案。
    面试大厂,最基本的就是夯实的基础,不然面试官随便一问你就凉了;其次会问一些技术原理,还会看你对知识掌握的广度,最重要的还是你的思路,这是面试官比较看重的。
    最后,上面这些大厂面试真题都是非常好的学习资料,通过这些面试真题能够看看自己对技术知识掌握的大概情况,从而能够给自己定一个学习方向。包括上面分享到的学习指南,你都可以从学习指南里理顺学习路线,避免低效学习。

    大厂Java架构核心笔记(适合中高级程序员阅读):

  • 相关阅读:
    自动化测试的度量指标
    鸿鹄工程项目管理系统em Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统
    服务器数据恢复—OCFS2下raid5磁盘损坏导致阵列崩溃的数据恢复案例
    【云原生 | Kubernetes 系列】K8s 实战 Kubernetes 声明式对象的 增 删 改 查
    什么是开源工作流框架?有什么特点?
    SHELL脚本学习(十三)初识 gawk 编辑器
    什么是HTML?
    【CT】LeetCode手撕—415. 字符串相加
    计算机竞赛 深度学习YOLO抽烟行为检测 - python opencv
    vite+ceisum 图片JSON 报错问题404
  • 原文地址:https://blog.csdn.net/javaAnPou/article/details/127763651