实习就业 | 字节跳动头条后端开发实习经验分享

Posted PKU软微研会

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实习就业 | 字节跳动头条后端开发实习经验分享相关的知识,希望对你有一定的参考价值。












HELLO

实习就业

BYTEDANCE

后端开发实习




















前言




大家久等啦!新的一期实习就业经验分享活动又来啦~

本期,我们邀请到了目前在字节跳动后端开发实习的Y同学为我们进行分享~他详细为我们介绍了自己的知识储备方法和面试技巧。

话不多说,让我们开始开始今天的分享吧↓









实习就业 | 字节跳动头条后端开发实习经验分享





一、背景介绍





19年11月初开始准备,今年3月末拿到实习offer。开始的时候打算搞算法,和所有刚踏入算法领域的人一样,都被各种消息劝退,加上自己捣鼓了两个多月,感觉进展缓慢,思前想后,还是决定投身开发的浪潮中,因为自己本科期间对Java后端开发的方向有一点点了解,所以之后的所有准备都是朝着Java后端开发的方向准备的。






二、准备经验





主要是两个部分,一个是算法题目,一个是后端相关知识。


01

算法题目

刷leetcode为主,大致刷了400多道。但实际面试的时候我的体会就是后端开发的算法题确实要简单不少,大概都是中等和中等偏下的题目,当然,大多数时候面试官都需要你写出完整代码,虽然不需要运行,但是你还是必须熟悉如何去写,并且学会如何精简代码量,例如简单的if用三目运算符或者==代替等等。

02

后端相关知识

我们需要了解实习的时候面试官会问什么,关于这一点,可以去BAT等公司的招聘实习生信息中看到列出的详尽需求,也可以从知乎牛客网的经验贴中找信息。


1、知识储备

(1)数据结构、计算机网络、操作系统:重点。肯定是要完完全全理解的。参考考研的难度。

(2)Java基础知识:重点,这个不必多提了,基础知识是必须要了解的,网上对于这方面的总结也是蛮多的,什么JDK7新特性这种还是要去了解。

(3)JVM:重点,推荐看《深入理解Java虚拟机》。我看的是第二版的,章节2,3,7,8是必看的,里面的东西几乎每一次面试都会问到。章节6,10,11,12,13也是需要了解的,这会让你对JVM内存分配有更加深入的理解。

(4)Java并发技术:重点。我看的是《Java并发编程的艺术》,我看的应该是15年的第一版。这个推荐除了11章,其他都看,因为都有可能问到,并且也是对集合类的拓展。

(5)集合类:重点。这个也是面试官非常喜欢问到的,尤其是HashMap必考到,最好能够看一看源码,记住比较关键变量loadFactor,modCount这种。

(6)设计模式:每一种设计模式都需要了解,但是问的一般不深,因为毕竟实习生没有大量开发的经验。但是运用在哪些地方还是需要一定了解的,比如Mybatis的session.getMappe就使用代理模式。

(7)服务器知识:这个部分非常冗杂,需要了解的东西很多,负载均衡技术,http协议,CDN,Tomcat等等都需要有一定了解,但是其实除了http问的也不多。

(8)数据库:重点。这个不用说了,重点的东西,当然不是说CRUD就完事了,什么锁机制,主从复制,MYISAM引擎这些都需要掌握,问的也很多。

(9)Java IO:各种IO方式都需要有一定的了解,并且最重点的就是select,poll,epoll,最好看看网上的视频讲是原理是什么的。这个部分我觉得很难理解,直到现在其实都不是很明白,建议多思考多理解。

(10)分布式框架:重点。这个涉及的知识就有很多了。

分布式存储:

GFS,HDFS(HBase),了解

分布式计算系统:

MapReduce,需要掌握,熟悉流程就可,代码其实不用看

消息中间件:

Kafka,RocketMQ,了解

分布式处理管理器:

Zookeeper,了解

分布式缓存技术:Redis,重点。这个部分提问的非常多,几乎每次面试都提问到了,不仅需要知道功能什么的,底层的比如SkipList跳表什么的数据结构都需要知道

分布式事务:准确的讲是涉及的一系列知识,从2PC,3PC到Raft,ZAB,Paxos等等,还有柔性事务

分布式优化策略:这个还是比较少的内容,稍微了解下

(11)Linux:需要知道基本的指令ls,ps。最好对Linux操作系统底层也有一定了解,其实也就是进程,文件,IO,内存分别是如何实现的。尤其是进程的fork,exec重点,需要了解具体的原理,COW这种机制什么的。

(12)SSM:

Spring+SpringMVC+MyBatis重点,作为一个后端开发实习生,这三个最基本的框架肯定是需要掌握的吧,甚至面试官会默认你已经掌握了。看看视频跟着学,然后动手做一两个项目就好了。

(13)Spring cloud:看看视频知道是个什么东西,有哪些部件就好了,作为比较流行的技术还是需要有一定的了解的。

(14)Spring Boot:同上。


2、如何学习

知道面试会问什么,那么接下来就是学。我是从知乎,CSDN,教材网罗资料,基本上上述的每一个部分都在浏览器里搜了个底朝天。

(1)判断是否形成考点。当你拿到知识,你要判断这个是不是能作为面试官的提问点,这个能力还是要具备的,因为实习的话准备一定要有一个度去把握,如果你对每一个知识都去精细的挖,那么这个准备过程估计一两年都拿不下来。我们准备实习就和准备考试一样,要知道重点难点,这个一定要把握好。

(2)写博客做笔记。另外,我在学习的时候也会做做笔记,可以写写CSDN博客什么的,方便之后的复习。这个我认为是必须的。

(3)对难点的态度。其实当你学完你会发现,知识点还是比较多的,并且你初学的时候,可能会理解的不够深,秉持着探索的精神,我们肯定要把他彻彻底底理解的。但是如果一个点你花了很多时间都没有理解,暂且把他放一放,也许当你学到后面的知识,前面的就豁然贯通了。


3、巩固练习

最后,去网上搜搜各个互联网公司的面试题做做,加深自己的记忆与反应力,这也是很必要的,也许许多知识点你知道但是记不牢,一面试全忘了,这肯定不行。如果反应的慢了,也是不够好的,所以需要不断的去做题巩固,和初高中是一个道理的。甚至说做多了你都知道面试官提及一个点的时候,他会问什么了,达到这个地步我觉得就离成功不远了。






三、面试



这一点,我可能没有什么发言权。因为毕竟是网络面试,和以后的现场面试肯定是完全不一样的。但是有几点我觉得还是有必要提一下:

1、保持谦逊的态度。


2、展示对知识的热情。对面试官提出的问题,你一定要绘声绘色的去回答,而不是非常死板。当然这个是建立你对知识充分了解的基础上。因为能做面试官,肯定对待技术是非常痴迷的,所以你也一定要表现你的痴迷程度。


3、能说什么就说什么。面试的时候,永远不是看你知不知道,而是看你知道多少,所以说面试官提出问题,你在思考的时候,一定要简单提一下你的思考过程,主要是表现自己掌握的知识量,这样即使你没有回答到点上,你也会比什么都不说得到更好的评价。


4、尝试和面试官产生共鸣。也许很多时候,面试官提出的问题,他自己都没有想到答案,所以这个时候你要尝试站在和他同一水平上,进行平等交流讨论,一般来说面试官都会对你产生回应,从而使得这场面试更加和谐,增加你成功的几率。



~ THE END ~


以上就是本期的经验分享啦~!



信息收集 | 李子超

文案 | 李祖荣 程玄

排版 | 鲍怡然

审核 | 黄泽金 刘珣 张宇翔

以上是关于实习就业 | 字节跳动头条后端开发实习经验分享的主要内容,如果未能解决你的问题,请参考以下文章

双非一本字节跳动后端实习经历分享,第一周做了什么?体验如何?

双非一本字节跳动后端实习经历分享,第一周做了什么?体验如何?

字节跳动实习面经(已拿offer附攻略)

在字节跳动的实习经历分享 | 万字求职指南

在滴滴和字节跳动干了 2 年后端开发,太真实…

字节跳动实习后端日常实习的三次面试+hr面 面经