首页 > 字节跳动内推,多岗位多城市,并教你如何斩获多个大厂offer
头像
Dante2018
编辑于 2021-03-15 20:20
+ 关注

字节跳动内推,多岗位多城市,并教你如何斩获多个大厂offer

我的内推码: GDZN4P3
我是lark-EA部门的后端研发,如果想了解lark-EA部门及其相关业务的话可以评论或者私聊我,投递链接如下:

投递进展可回复该帖子,我看到就会回复的!当然有其它问题也可以在帖子下面留言哦~

本人去年秋招拿到offer有: 小米华为网易互娱招银网络、 阿里、字节跳动等,最终选择字节跳动。以下是我分享的一些秋招经验,望各位努力准备求职的人都能够梦想成真!

时间点

———能尽早准备就尽早,提前拿到offer可以节省大量花在多余公司笔试面试上的时间,而且更能从容面对大厂的面试,能够把握住更多机会,拖的越晚压力越大越浪费时间!!!如果拿到某些大厂的offer,你就可以不用参加比这些大厂低的offer,你可以事先比较其它公司,如果确定这个公司与你拿到的offer差别甚远,那就可以不用参加不必要的笔面试,好好准备其它大厂。
2月(开学)~6月:基础、项目算法
3月~4月:提前批+春招+实习
7月~8月:秋招提前批
9月:秋招正式批
10月:国企银行笔试

确定目标

  1. 我应该选择算法还是开发?
  2. 我应该选择哪种开发语言?
每年的算法都很难,如果你想进入大公司那就更难了,主要原因是算法岗位需求人员少,如果没有好的项目或者好的论文,很难和别人竞争,尤其是有很多发了顶级会议的大佬,可谓神仙打架。而开发则不同,除了极小部分纯AI类算法公司,大部门公司都有招开发,需求永远都在变,开发的缺口还是挺大的。说到开发,就要选择一门开发语言,主流的为Java和C++,这两种语言岗位招的人多,极少部分的有Go、Python和PHP。如果想进腾讯网易游戏网易互娱百度,选择C++;如果想进阿里、美团网易有道和云音乐、滴滴京东,选择Java,另外我在面试腾讯的过程中了解到腾讯在招Go语言的开发,面试的其它公司在招PHP的网站开发。
我对大厂没啥具体的要求,觉得Java学习起来上手快,而且语言看起来很舒服,岗位需求量比较大,所以选择学习Java。
  1. 我应该选择哪个地方工作?
如果对于地方没有要求,一线城市,比如北上广深互联网公司机会多,更好发展。如果确定好一个地方,就选择该地方某些公司的总部,因为大多数非总部有可能不是核心部门,最好事先了解下,确认好城市可以让你大大减少不必要的面试。

个人简历

  • 有好的博客或者不错的开源项目加分
  • 个人技能熟悉的部分需要了解底层的实现,别写太多反而给自己挖坑,除非你真正掌握
  • 项目不在多而在于精,把项目的亮点找出来,往深的方向研究
  • 项目描述尽量体现在技术使用,以及通过数字化的方式展示技术的优势

相关网站

牛客讨论区(很多内推信息,官方认证更可靠): https://www.nowcoder.com/discuss
牛客简历助手(一键填写各大公司简历): https://www.nowcoder.com/quick-fill/show-edit#form
笔试日历(各大公司笔试时间分布表): https://www.nowcoder.com/school/calendar
校招日程(各大公司笔试面试的时间汇总): https://www.nowcoder.com/school/schedule

CYC大佬github总结: https://github.com/CyC2018/CS-Notes

如果想找某些问题答案可以按顺序查找以下网址,大多数我的笔记参考来自这些网址:

实习准备

实习seng(僧)APP:投完简历,很快安排面试,效率非常高
实习的目的是为了找到一个更好的工作,如果拿到了你想要去的公司,正好也有转正名额,那你秋招肯定美滋滋,想拿更好的只要针对性的复习和面试就行了,避免广撒网海投疯狂笔试面试的麻烦。在找实习的过程中让你更熟悉找工作的整个流程,对于面试可以获得更多的经验,尤其是在面试过程犯的错,都将是你后续秋招宝贵的财富!!!

面试流程

通常来说,一面是基础面试,包括语言、数据库、计算机网络、操作系统;二面是项目面试,包括项目用到的技术,对于该技术理解的深度,以及为什么用这种技术,这种技术比别人好在哪里,项目的难点,最好提前总结好,熟记于心;三面是项目面试,更高一级的leader问你,只有当你对自己的项目了然于胸时,你才能侃侃而谈;四面是HR面,通常该面刷人的概率很小,但还是要小心,总结某些问题,提前想出答案,别掉入HR为你设计的陷阱。
不同公司面试方式不一样,面试的重点也不一样,像字节跳动一面和二面基础知识+视频手撕代码,三面项目介绍,类似的公司还有小米猿辅导拼多多,它们更看重的是编程能力;而腾讯通常是电话面,一二面都是技术基础,三面通常是项目,不同部门差异很大,腾讯更看重你的计算机基础,比如计算机网络、数据库、操作系统。还有一些公司需要去现场面,比如vivo、oppo、招银、华为百度京东、浦发,ov比较看重的是学历和计算机基础;招银和华为一二面现场手撕代码,不过代码难度比视频面试要低一些,而且不用写出完整代码,某些功能或者方法不记得了可以通过伪代码的方式表示,它们看重的是你编程的思路和你对自己项目的熟悉度。浦发是机试三道编程题+技术群面,不过听说不难。为了了解不同公司的重点,笔者的建议是多看牛客上其它人的面经,针对不同公司、不同部门,在重点内容上好好花时间,能起到事半功倍的效果。

面试技巧

面试表现的自信自然点,刚开始面的时候肯定非常紧张,可以先和自己的朋友模拟面试,互相模拟,指出对方的问题,快速习惯面试环境。回答问题的时候遇到面试官的质疑,也不要随着面试官的反驳而放弃自己的思考,面试官有可能只是误导你,保持冷静,把自己的思考有条不紊的说给面试官听。其实面试看的是你的一种状态,你回答问题的细节面试官有可能记不清楚,但是你回答问题的状态面试官肯定能感受的清清楚楚,所以遇到不会的题也不用灰心,争取把能答的答好,不能答的挨着边回答。可以通过手机录音把面试过程记录下来,事后根据录音总结面试问题,分析自己回答问题的好坏,不会的问题和同学一起交流,网上也能找到你想要的答案。
0、对于某公司的面试,可以看看牛客网最近关于该公司的面经,把该公司常问的问题总结好,会让你在面试过程轻松不少。比如腾讯喜欢问网络相关的知识,字节跳动喜欢让你手撕代码,阿里喜欢问框架相关的知识,当然对于不同部门不同岗位差别还是挺大的,可以根据你面的部门和岗位来进行针对复习。不过总的来说,大厂更看重基础和算法
1、自我介绍:提前准备好两分钟左右的自我介绍,介绍自己学校获奖情况、比赛情况、项目情况,突出自己的亮点,说话的时候和平常聊天一样,表现的自信点。
2、项目介绍:面试官通常都会问你最难或者最看重的项目介绍一下,面试前可以总结好项目的几大难点,如果没有难点,就总结你觉得不错有点技术含量的功能点,讲你为什么要用这种技术而不用另一种技术,这种技术比别人好在哪里,可以结合自己的应用场景和项目需求进行阐述,让面试官感受到你是有思考在里面。
3、基础知识回答:学的好不代表回答的好,有些问题可以分点来答,尽量答的全面,别让面试官来引导你,通过你的回答方式来引导面试官到你熟悉的领域。当然如果有些问题回答不上来,可以回答相关的一些知识点,比如可以参考某某来实现;如果没有参考的,你可以回答:虽然不了解这一块,但是个人感觉这个底层应该会这么做,虽然这个问题你从没了解过,但是说出你对这个问题的思考也是非常不错的,只有实在不知道怎么回答的时候,可以勇敢告诉说不太了解。
4、手撕代码:写代码前尽量和面试官沟通清除算法题的要求,比如时间复杂度和空间复杂度的需求,比如特殊情况的判断,如果有思路不要立马就去写代码实现,可以先把思想告诉面试官,看看面试官的反应,如果有问题面试官是会提示你的,当没有问题时自己再去写代码。写代码的时候也不用考虑怎么最优,先写出解决问题的算法,即使暴力解决也可以,争取尽可能快的时间把一个可以跑通的代码给面试官看,因为面试的时间还是很紧的,如果有问题面试官会提示你调到最优的,那个时候再去考虑。如果遇到不会的算法,你可以尝试先说下自己的思想,完全没有思路时可以请求面试官换一道题,毕竟面试官不会觉得你一道算法题做不出就把你给拒了,很多面试官还是很通情达理的。除了视频手撕代码,还有现场手撕,视频通常可以使用IDE,但是现场手撕只需要在纸上写个大概就可以了,所以你完全不用担心细节,只需要把大概的思路写出来就行了,某些方法或者库忘记名字,可以通过伪代码的方式做标记,到时候直接告诉面试官,面试官也是会理解的。
5、HR面:尽量回答真诚点,当然也不能太实诚,问你对加班的看法,然后吐槽一波,这个可以多在网上找找其他人的回答,总结好,基本问的问题就那些。
6、提问环节:每次面试完后,面试官都会问你有什么问题问他的,不用紧张说没啥问题,因为面试本来就是个双向选择的过程,你和面试官的地位是平等的,但是不要问一些敏感问题,问了也不好说,比如自己面试过没过、薪资情况,我总结了以下几个问题,可以让大家参考参考:
  • 能否介绍下面试官您所在的部门的核心业务(如果不是核心部门容易被裁,也学习不到什么东西)
  • 进入这个部门需要提高哪些能力或者需要学习什么东西(看面试官对你的表现满意程度,自己面试中存在的问题,公司的技术栈)
  • 如果你是准备找实习,你可以多加一个问题:实习有没有转正机会,转正的比例大概是多少?(实习最大的目的是为了能够转正留在该公司,提前感受公司的工作氛围)

笔试技巧

1、考试过程中注意关闭通信设备,弹窗可能会标记作弊警告,另外双屏也会,还有打开其它浏览器搜索。通常选择题和填空题不能回桌面,编程题可以回桌面用本地IDE。
2、先把简单的题目做完,难的题目可以写出个大概争取都拿点分,因为最后的成绩是根据根据你提交程序通过的样例数来定的,某些题目没有想到简单方法时,可以直接通过暴力法解决,能拿到分才是王道。
3、编程尽量把某些功能模块化,比如交换两个变量的值,这样方便调试,知道哪部分功能正确,哪部分错误,方便快速查找问题,另外学会使用IDE的Debug,真的非常好用。
4、笔试完后可以到牛客网上看看大家的笔试情况,看看那些所有AC的答案,和别的思路进行对比,借鉴别人的思路,以后可以拿来复用,这样才能最大化学习笔试编程题。

踩过的坑

  1. 第一次面试就面的大公司,没有任何经验,被虐的很惨,浪费了一次好机会,可以多看看面经事前模拟面试
  2. 笔试的有些题目想不到好方法,浪费大量时间,事实上大部分用暴力法能过百分之五六十,碰巧还有可能全过
  3. 内推时一定要问清楚内推人的部门和业务,非核心部门面临被裁的风险非常大
  4. 面了很多不必要的小公司,最后还是拒绝他们给的offer,不必要的面试和笔试浪费时间

后台开发要求

后台开发需要学习的东西非常广,但是不需要把每样都学的很深入,只需要把常见的问题都整明白就差不多了。刚开始如果基础不好时间充足的话可以看教材,如果时间紧张,可以根据面经或者根据我下面总结的知识点来准备,可以根据知识点查找相关书籍、相关博客、相关笔记进行学习,某些知识第一遍看不明白没关系,做上记号,先了解个大概,之后复习再看,当你看第二遍时你就会感觉熟悉些了,然后多看几遍就会豁然开朗,反复多次效果真的非常好。对于这部分,也可以和同学朋友一起互问互答,把各自总结的问题一起讨论,扩展自己的知识面,并且加深自己总结知识点的印象。刚开始学的过程中如果感觉看书比较乏味,可以多看看网上(博客园、掘金网、csdn、简书、知乎)一些不错的博文,通俗易懂,浅显易出,有的还有动图显示,另外不同人的不同理解方式让你从多方面了解某个知识点。

1、语言

笔者心得:语言方面问到的问题很零散,但是通常离不开以下知识点的范围,而且某些知识点问到的概率非常高,其实这些也是以后开发中会遇到的问题。
Java语言包括Java基础和Java虚拟机两大部分
学习资料
  • 《Java编程的思想》、《Java编程的逻辑》、《深入理解Java虚拟机》
  • Java菜鸟教程网站
Java基础
  • 多线程的三种创建方式、线程池的参数和使用场景、sleep和wait的区别、多线程编程顺序执行
  • 常量池,String、StringBuffer、StringBuilder的区别
  • 八种基本数据类型,wait、notify、notifyAll
  • static、final、接口、抽象类、内部类
  • 异常的种类
  • Java8新特性
Java虚拟机
  • Java内存模型、类加载机制、双亲委派模型
  • 垃圾回收机制,垃圾回收算法
  • volatile、Synchronized、ReentrantLock、ThreadLocal
  • CAS和AQS,AQS同步组件:CountDownLatch和CyclicBarrier区别
  • 反射的概念、使用方法、应用场景

2、算法与数据结构

笔者心得
  • 很多大厂对算法的要求比较高,很多面试都需要现场手写代码,而且要能跑通测试用例,所以平时需要多加练习。
  • 对于现场面试手撕代码最好提前用笔写在草稿纸上练习,没有IDE的提示,你会发现很多常用的方法名都记不住。
  • 刷题可以先从简单的题型开始,最好是那种能通过你的思考花些时间就能解决的问题,找到了成功感才更容易坚持刷下去。
  • 刚开始刷题可能会比较难受,不过很多题目都有答案,尽量自己写出来,如果写不出来也没关系,直接看答案,多练习几遍,记得会更深刻。
学习资料
  • 教材:王道的《数据结构》、严蔚敏的《数据结构》
  • 面试刷题:《剑指Offer》(面试中写算法的题目通常来自这里,书籍可以用电子版,不过是用C++写的,可以网上找Java的解法,牛客网有板块直接刷题
  • 笔试刷题:Leetcode英文网站(笔试中算法的题目通常来自这里,进大厂差不多刷前200道题左右就可以了,中文网站也有,但是没有英文网站讨论区的答案好,有的题目还有有官方答案)
  • 动态规划专项复习:左程云的《程序员代码面试指南》
算法扩展(可以暂时先不看)
数据结构
数据结构扩展(可以暂时先不看)
  • 红黑树、B和B+树
  • 有向图和无向图

3、数据库

学习资料
  • 《高性能MySQL》、《MySQL必知必会》
知识点
  • 事务的四个属性ACID,三种并发异常,四种隔离级别
  • 索引的底层实现,索引失效的场景,不同索引引擎:MyIASM和Innodb的区别
  • 数据库优化,MySQL调优
  • MySQL主从复制原理
  • 多版本控制MVCC,Redo和Undo日志
  • MySQL语句,连接join的使用,慢查询Explain
  • 关系型数据库和非关系型数据库的区别

4、计算机网络

学习资料
  • 《图解HTTP》
知识点
  • TCP和UDP的区别,TCP的三次握手和四次挥手,TCP的拥塞控制
  • HTTP和HTTPS的区别和流程,HTTP1.0、1.1、2.0区别,HTTP常见状态码(301、302、502、503),HTTP的请求报文和响应报文结构,网页的执行流程,HTTP方法POST和GET的区别,Request和Response的区别
  • Session和Cookie的区别和应用场景
  • OCI网络模型,TCP/IP模型,它们各层的特点和协议
  • BIO、NIO、AIO,select、poll、epoll

5、操作系统

知识点
  • 进程和线程的区别,线程状态,进程的通信方式,多进程和多线程的区别
  • 死锁条件,预防死锁,避免死锁,解除死锁
  • Linux常见指令(find、awk、grep、top、free)

6、项目

Spring
  • Spring AOP和Spring IOC
  • SpringMVC的处理流程
  • Spring动态代理:JDK和Cglib
  • Spring事务传播机制
  • Spring Bean,Spring注解
  • SpringBoot的特点,和Spring有什么区别
Redis
  • Redis为什么这么快:基于内存、多路复用
  • Redis的持久化机制:RDB和AOF
  • Redis的五大数据类型:字符串、列表、哈希、集合、有序集合
  • Redis的主从复制和集群方式
  • Redis的数据淘汰策略
  • Redis的分布式锁实现原理

7、场景题

  • 海量数据处理:TOP K问题
  • 秒杀系统的设计,高并发和高可用,缓存,中间件
  • 消息队列、Nginx负载均衡、一致性哈希
  • 分布式和集群,分布式的事务:2PC和3PC、CAP定理、Base定理
  • 微服务和RPC,RESTful,CDN
  • 攻击技术

8、其它

  • 智力题
  • 设计模式(重点:双检索单例模式),JDK和Spring中的设计模式
  • 工具:git、maven、docker

全部评论

(1) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐