大厂面试分享

简历技巧-敲门砖

简历筛选

  • 好的简历模块,层次清晰

    • 掌握技能这部分是最关键的
  • 项目描述背景、结果、思路清晰

    • 突出核心难点,不要长篇大论

    • 有架构图、设计图更好

  • 简历尽量不要超过4页,挑选几个重要的项目就可以了

突出你的核心优势(简历最顶部)

  • 1.优先的互联网系统架构设计能,XXX级流量系统架构设计经验
  • 2.X年以上团队管理经验,良好的沟通、协调能力
  • 3.从0到1的产品线经验,单独hold一条产品线
  • 4.团队核心骨干,独自负责X个核心模块
  • 5.CSDN博客专家,约XXX篇文章
  • 6.业内分享XXX
  • 7.<高可用架构> <架构师之路>等忠实粉丝

项目经验(STAR法则)

  • 1.项目背景:为什么要做这个项目
  • 2.项目方案:设计方案,考虑到容量、性能、资源
  • 3.项目执行:历时多久,遇到哪些困难,如何解决
  • 4.项目收益:对系统性能提升、对业务指标提升

困惑解答

  • 1.项目比较简单?我感觉我的工作内容中没有亮点?项目中都是简单CRUD怎么办?
    • 1)简历中突出你对项目的思考,你做了哪些调研,你做了哪些改进,提升了项目效率和工作效率,你项目的各项指标都做提升到了哪些?错误率、响应时长、异常处理等等
    • 2)日常的工作中多去思考、多做、积累经验
    • 3)没有分布式项目经历,自己学习,做demo,可以和朋友合伙接私活,锻炼自己
    • 4)公司中没有用到的框架,你可以通过自己的学习来了解,在项目中可以融合进去
    • 5)rpc、mysql、redis、mq这些都是互联网工程师的必配技能,必须深刻理解

面试流程

  • 3轮或者以上技术面试(包含交叉面试)
  • 每轮面试在45~60分钟
  • 每轮面试面试官会填写面试记录供下一位面试官参考
  • HR面试(当面/电话)

一面:团内架构师

  • 1.自我介绍
  • 2.考察你过往的业务和项目经历
  • 3.考核软性技能

考察业务和项目经历

  • 1.介绍你的项目:背景、难点、你起到的作用
  • 2.项目设计:数据量、性能、可用性
  • 3.异常考虑:单机错误、rpc错误、mysql错误、重试机制、兜底设计
  • 4.底层考核:用到的组件的底层设计,redis、mysql、mq
  • 5.场景模拟:基于你的项目场景模拟一种情况考核设计思路
  • 6.项目模拟:是否负责过项目?排期问题、人员问题、沟通问题
  • 7.Coding:让你根据场景来Coding一段代码

二面:团队内负责人(leader)

  • 1.考察你对业务的理解
  • 2.考察软实力
  • 3.考察学习能力和成长性

考察业务想法和思考

  • 1.介绍你的业务:业务量,业务瓶颈,讲一些技术侧对提升业务帮助的模块
  • 2.沟通和表达能力
  • 3.日常学习和提升
  • 4.你期望了解:团队、业务、技术、职责、个人发展

tips

  • 问你为什么学习和引用新技术:是为了解决业务or技术问题,带来效率提升!而不是有新技术就要学习,千万不要说为了跳槽学技术

三面:交叉面试

  • 1.与一面类似
  • 2.根据一面相关的内容进行深度考核,所以三面会比一面更难
  • 3.偶尔有算法相关的题

终面:hr面试

  • 1.为什么离职?
    • 为了追求更好的个人发展
  • 2.原来在团队中的职责、对团队看法
    • 不要说前公司的坏话
  • 3.基本没啥问题

巧妙应对面试官

  • 1.直视面试官,保持微笑,礼多人不怪
  • 2.简洁的自我介绍,一两句话介绍你的工作主要核心内容,平常爱学习
  • 3.讲解项目STAR法则,语速放慢,终点突出项目中的亮点,引导面试官
  • 4.在面试官问你问题的时候,尽量不要打断他,如果不会,没有做过,可以说一下你对这个问题的理解,问面试官是否可以引导一下?
  • 5.离职原因,尽量不要说上家公司的不好的地方,有一颗感恩的心
  • 6.你有什么想问我的:1)新职位的工作内容?2)我在新职位能做出哪些贡献?3)我能学到什么?保持强烈的求知欲,公司会很喜欢
  • 7.观察你的leader,跟对领导很重要

困惑解答

  • 1.面试比较紧张,表达不好怎么办?
    • 语速放慢,如果没听清,请面试官再简单重复一下
    • 团队内平常多做分享,业务分享,技术分享
    • 技术扎实,保持核心竞争力
  • 2.面试有哪些雷区?
    • 为什么引入新框架,千万不要说新出的,应该说调研对比,可以性能提升
    • 为什么用这个框架,千万不要说公司让用这个框架,应该说考虑到业务量,考虑到学习成本
    • 不要不懂装懂,不要太张扬

面试题

mysql

  • 1.聚簇索引、覆盖索引、回表查询、联合查询

  • 2.主键的设计思路,自增/UUID

  • 3.字段为什么要not null

  • 4.为什么mysql的翻页性能越来越差,如何解决

    • limit的翻页,并不是直接就索引到了,而是一页一页往后翻,怎么解决
    • 不要单纯的使用limit,最好给出查询范围
  • 5.mvcc存储的每一行有额外的3个字段

    • DB_TRX_ID:一个6byte的标识,每处理一个事务,其值自动+1
      
    • DB_ROLL_PTR: 大小是7byte,指向写到rollback segment(回滚段)的一条undo log记录
      
    • DB_ROW_ID: 大小是6byte,该值随新行插入单调增加。
      
  • 6.是否用过分布式事务,分布式事务的一些实现方案

    • 2段提交
    • 3段提交

redis

  • 1.高可用
  • 2.主从复制
  • 3.哨兵机制
    • 选举
  • 4.内存满了淘汰机制
    • 不止lru,还有很多
  • 5.一致性hash和redis cluster

mq

  • 1.为什么引入mq
  • 2.使用哪种mq,为什么选用
  • 3.如何保证消息一定被消费

es

  • 1.如果同步,保证数据一致
  • 2.倒排索引,fst压缩

场景模拟

  • 有一个订单表,还未分表

    • id
    • create_time
    • state
    • userid
    • 还有几个不太重要的字段
  • 订单表的数据已经超过5000w了

问题1

  • 实现类似12306,下单完成后30分钟内未支付自动取消订单
    • 方案二,临时表,将未支付的订单表放入临时订单表中,扫描临时表,数据量小,这种方案在很多场景下都用得到
    • 方案四,按时间分表

问题2

  • 用户进入系统,需要看到最近的100条订单,当前方案:select * from order where userid = ? order by create_time desc limit 100 ,但是因为数据量太大,需要20秒才有结果,请给出你的优化方案
    • 方案一:1)select 需要的字段,替换select * 。2)加索引,userid需要加普通索引
    • 方案二:使用用户id进行水平分表,如何用订单id查询(基因法)?后期如何扩容
    • 方案三:每次用户下单将订单id存入redis的list,redis宕机?先入库还是先进redis?
    • 方案四:使用10个多线程,每个线程取10条,最终如何整合到一起?能否优化该结果?

问题3

  • 一张表,包含用户需要频繁访问的记录,如何优化减少db的访问
    • 1)使用分布式锁:先从缓存中获取,若未获得,先加锁,抢不到锁怎么办?
    • 2)如果把数据预先加载到redis中,如果redis崩溃了怎么办?—redis集群,但是切换的瞬间就挂了怎么办,本地缓存,多级缓存来处理
    • 3)把热点数据加载到本地内存中,如何考虑容量防止OOM?— 设置过期时间
    • 兜底,缓存兜底,本地内存兜底,磁盘兜底,nginx兜底

问题4

  • 你们的分布式锁是使用什么实现的?为什么选用这种?
    • redis是ap模型,zk是cp模型,对于支付这种账户一致性要求比较高的话,最好还是用zk

职场建议

职场建议

  • 你选择的不只是一份工作!既然你已经选择了,就要尽最大努力

六大主动

  • 主动了解,了解整体业务,不要局限你所负责的
  • 主动询问,不懂就要问,但是问之前先思考
  • 主动承担,有事情主动跳出来,不要怯懦
  • 主动帮助,有问题主动去帮助解决,即使不是你负责的
  • 主动反馈,别等领导来问你结果
  • 主动总结,每日睡前梳理总结下今日工作,明日todo

认知提升-站在更高的角度思考

  • 站在架构师或者leader的角度思考问题

早到一点

  • 前期很重要,你需要付出的更多
  • 让大家看到你的态度

大厂的理解

  • 有很多的大牛,你合作的同事都很牛
  • 你的同事都很努力,越优秀的人越努力
  • 有很多自研的框架,有很多的分享和培训
  • 流程制度较完善,需求多次审核,设计文档和CodeReview

总结

  • 1.成长不是一蹴而就的,平常多思考,多积累
  • 2.保持乐观!不怕苦,不怕累,找方法
  • 3.敢于去尝试,不怕错,怕不做
  • 4.每天比别人多努力一点点
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值