欢迎访问shiker.tech

请允许在我们的网站上展示广告

您似乎使用了广告拦截器,请关闭广告拦截器。我们的网站依靠广告获取资金。

如何在三周内拿到offer?
(last modified Feb 18, 2024, 10:12 PM )
by
侧边栏壁纸
  • 累计撰写 182 篇文章
  • 累计创建 64 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

如何在三周内拿到offer?

橙序员
2024-01-23 / 0 评论 / 0 点赞 / 346 阅读 / 1,401 字 / 正在检测百度是否收录... 正在检测必应是否收录...
文章摘要(AI生成)

本文介绍了如何刷算法题和准备面试的方法。对于算法题,可以通过leetcode上提供的学习计划选择相应的专项进行练习,并借助leet book提供的基础知识和系统性练习来提高刷题思路。作者建议集中一周时间来刷算法题,以达到快速整体掌握的效果。对于面试准备,作者借助AIGC来刷题,并介绍了搭建面试助手和模拟面试的流程。面试问题一般分为算法题、基础题、原理题、组件题、主观题和场景设计题,对于不同类型的问题,作者提出了相应的解决方法。对于原理题,建议阅读spring源码和springboot源码,对于组件题,重点了解常用中间件的实现原理。最后,作者指出刷算法题需要多练习,而基础题需要背诵。

先来个图证明下文章可靠性:

image-20240123101444327

算法题如何刷?

leetcode上有对应学习计划,可以通过相应的学习计划进行专项学习。

  • 如果是算法新手,可以先从编程基础0到1开始练习
  • 可以从学习计划中挑选链表、数组、动规、和二叉树进行专项练习image-20240122184356742
  • 同时leetcode上也提供了对应的leet book。如果你在专项练习时常常没有思路,可以看看相应的leet book,为你提供了基础知识和系统性练习,让你上手快速image-20240122184933508
  • 整体的刷题思路为先基础,在系统,最后刷热题。算法题我是集中了一周来刷,然后就看所有题就有思路了,这个和高考时的题海战术一样

面试一问就卡壳?

这里我是借助了AIGC来刷的,。具体该怎么做呢?我这里搭了两个工具来实现:

image-20240122185539886

面试助手

面试助手来帮我解答我比较有疑惑的方面,具体搭建流程如下,我们可以上传自己的简历来做主观题问答:

image-20240122185740811

比如我想了解主从复制:

image-20240122185858012

又或者我对自己的未来规划:

image-1705979024666

模拟面试

模拟面试这里类似于牛客网的AI面试,我们可用过下面这个流程搭建一个简易的模拟面试流程:

image-20240122190033304

这样我就可以每天练习面试过程:
image-20240122190154917

我应该看什么?

面试问题一般会分为如下几类:

  • 【算法题】: 从【数组, 链表, 集合, 动态规划, 排序, 二叉树, 二分查找】等方面提出的中等难度的编程问题
  • 【基础题】: 从【java集合, JVM虚拟机, 内存模型, 锁和线程安全, 网络通信】等方面提出的面试问题.
  • 【原理题】: 从【spring, spring boot, mysql, redis, kafka】等组件的原理和底层实现中提出的面试问题.
  • 【组件题】: 从【分布式锁, 分布式事务, 分布式系统相关理论, 负载均衡, 注册中心, 消息中间件】等服务组件的使用场景中提出的面试问题.
  • 【主观题】: 基于【个人简历】,从【个人成长, 项目经历】等方面提出的面试问题.
  • 【场景设计题】: 基于高并发场景下的应用设计和技术设计而提出的面试问题.

算法题需要刷题,基础题需要背。下面我们来看其他几类问题如何解决:

原理题

这里最好把spring源码和springboot源码看一下,因为spring的编码和设计属于所有开源框架中最优秀的一类。个人在面试时也把其他常用框架源码和原理看了一下,整理在源码解析专题里了

组件题

中间件,常用的有很多,消息中间件,分布式缓存,分布式事务,分布式锁等这几个都有多种实现方式,面试的时候一般会结合你的项目,从你技术选型出发,然后在问你中间件的原理。这里你可能要了解这几个:

  • 分布式缓存:
    • redis
    • Ehcache
  • 消息中间件
    • kafka
    • rocketMQ
  • 分布式事务
    • 2pc、3pc、tcc、saga
    • seata 和XA
  • 分布式锁
    • redlock和看门狗
    • zookeeper
  • 注册中心
    • eureka
    • zookeeper
    • 其他(rocketMq中的nameServer,微服务的其他注册中心consul等)

主观题

主观题一般会问你项目中的技术难点,针对你遇到的技术问题,以及如何解决的展开提问。你可能会写亿级数据库容量的治理,那这里面就会涉及到分库分表,数据归档和检索搭建等难点;你也可能会写你的项目经受了几千qps的挑战,那你可能会就分布式缓存,分布式锁,读写分离等角度出发进行讲述。总之,你的简历一定要有技术深度,另外其他的,你可以写一个独立负责项目的需求迭代,通过这个项目来阐述你自己软性的个人成长有哪些。

场景设计题

ok,如果你到了这一步,那么你离技术面试通过只差临门一脚了,正常来讲这都是倒数一二面提的问题,这个没有什么比较好的接发,你可以看看其他人写的秒杀系统、抢红包等场景的技术文章,来加上自己的分析理解,去考虑如何解答,一般来讲需要从表结构设计,服务架构设计等角度去解答,这类高并发问题一般都是比较考验你如何解决单点故障,缓存穿透,羊群效应等问题的解法,所以这个可能需要你对中间件的应用有足够了解。

总结

总结下来,我们需要通过面试刷题网站来巩固自己的基础,也要通过学习常用中间件的源码来提高自己的技能,纵向横向结合,offer自然会找上门来~

0

评论区