一位学长的BAT之路分享

2016 校招感悟

校招真是一次特别tòng kǔ的经历,记点自己的感受吧

简历

简历上要突出自己熟悉的,尽量不要写不熟悉的,尽管描述词是 “了解 xxx”,因为有可能面试官眼中 “了解” 和你的 “了解” 不一样,然后被问到如果答不上来就不 (bei) 好 (ju) 了。

笔试

  • 笔试编程题是大分,尽量拿,如果写不出最优的解法,暴力一发能得点分总是没有坏处的(虽然有些公司只看通过与不通过,没有通过 50%)。
  • 有些面试官会问笔试编程题,在面试之前最好回忆一下当时题目的具体解法(如果没有回答上,面试官有理由怀疑笔试成绩的真实性)。

面试

最重要的部分,一般分为技术面和 HR 面。
HR 面就不说了,毕竟我情商低得吓人→_→,反正遇到尖锐的问题尽量避开或从侧面回答,如果 HR 还是紧追不放,只有随机应变了。

礼貌

基本的礼貌是必不可少的,进房间敲门,双手递简历,称您等

主动

掌握面试主动权,主动表达出来自己会的东西,这样可以:

  • 拖延时间,否则就会一直被面试官问问题,你也预料不到下一个问题你能不能答上来;
  • 让面试官看出你知道的东西,对知识了解的深度等;
  • 根据提出的问题延伸,引导面试官问你熟悉的方面。

lizi.jpg:(Java 中)HashMap 的原理?
:常规 balabala(哈希冲突解决,具体实现,JDK8 改进等),不过该类是线程不安全的,在多线程环境下可以使用 ConcurrentHashMap 代替,继续 balabala(分段锁,JDK8 改进等),它其中的 get 方法是不用加锁的,主要通过 volatile 实现,继续扯到 Java 内存模型等等,都说到这里了,相信面试官不会不问 volatile 与原子性、synchronized 与 volatile 的区别这些问题了。
当然中途很有可能会被打断,但是这不重要,至少表达出来了,而且打断后面试官很有可能继续问后面你本自己打算说的东西。

只是举个栗子,类似的问题很多,比如单例模式(的各种实现,能很自然地扯到 Java 内存模型,类加载,语法糖等)...

代码

很多面试会被要求手写代码,首先不要听完就写,一定要问清题意,输入数据的范围等再动笔,写的时候命名要规范特判一些条件,写完后多检查检查,再交给面试官,可以给他讲解,比如对于某些非法输入,就算你没在代码中检查,可以描述出来,至少代表考虑了这些情况。

面试常见手写代码:传送门

总结

面试官在面试的时候会对面试过程进行记录,比如我在二面的时候被问了一个分布式的问题,当时没有回答上来,三面面试官又问我了,“你回去解决这个问题没,是怎么解决的?来给我描述一下”。所以面试过后有必要回忆一下面试过程,对当时没有回答上的问题查查资料什么的。

人品

当然了,面试中人品是必不可少的啊(ps: 大牛无视)。


致 学弟学妹

正文

先说说我自己的大学经历吧:

  • 大一进了学院的 ACM 队,当时觉得Accept是多么令人高兴的事,于是就这样过了一年,做着自己喜欢的事情,没什么感觉。
  • 大二进了卓软,身边的同学都进实验室了,都开始做项目了,我还在 ACM,其实真的挺孤单的,做着和大多数人不一样的事情。第一学期还好,第二学期有项目管理、软件过程之类的课程,项目管理课上,当时我什么都不会,开始的时候想着边做边学,在 Java 都没学过的情况下听同学讲 Spring,完全听不懂,后来当然是同学做了。而我还在搞我的 ACM,经常晚上对拍到电脑没电,依旧是为了Accept,软件过程课上,别人都写的项目,就我写的某月某日到某月某日 AC 了几道题,暑假时候的信息系统和软件测试也是水水就过了。于是就这样又过了一年,不一样的一年,由于竞赛算法真的很难,期间经常怀疑自己的智商。
  • 大三,说实话这时有点慌了,因为啥都不会,但是又有最重要的 ACM 区域赛,都坚持了两年了总要去一去吧,然后又坚持了大半学期,做题,整理模板(有需要的可以点击下载),10 月参加了长春区域赛,12 月参加了 Ec-final,中途抽时间自学了 Java。区域赛结束,正式放弃了 ACM,高智商人玩的游戏,开始尽量静下心学 Java 后台。其实说静下心,怎么能静下来,身边的同学都有 N 个项目经验了,而我才开始学,就这样又过了一年,挺辛苦的一年。
  • 大四,找工作,实习。

说这个一是回忆一下大学生活,二是说明学长一路这么心酸都走过来了,你们还怕什么。
0ceb90e8a8ce22c48f5df657f3e781d2.jpeg

问题

看到你们整理的问题,选其中的一些说说我自己的看法吧,不清楚的还是不要乱说误导你们,我的天哪。jpg

  1. 技术专好还是精好?
    其实我没懂什么意思,那我就猜测一下咯,必须要有自己专长的地方(找工作吃饭的工具),在这基础上再多了解点其他的。

  2. 哪些公司的发展好?
    其实对于应届生,好吧,诚实一点,对我们这种学校的应届生,只要公司不是太挫,任何一家公司都有很多很多你学习的东西。其他的大公司有大公司的好,小公司有小公司的好。

  3. 如何应对找工作?
    好好学习,好好准备,具体参见面试。

  4. 保研相关
    不清楚,不过根据政策,多参加一些比赛活动,加分你懂的。

  5. 啥也不会?啥都不想学?不知道干嘛?
    这个,我也不清楚,不过我有个建议,上知乎提个问,也许有人解决。

面试

把问题中面试的部分拿到这里了,这个比较重要,笔试就不说了,太杂了。

找工作和实习的面试要点?
面试开发所需的核心技能和知识?
面试经验?
想了解 Java 后台需要什么技术,并且到什么程度?
面试应该准备什么?
面试中注意什么?
面试和投简历需要准备什么?

公共课程:其实这些课很重要的,真的。

A. 算法 + 数据结构
面试中不会考什么复杂的算法,都是很简单的那种,但是很多时候会手写代码,原来随便总结一下:面试常见手写代码总结,另外可以看一看《剑指 Offer》这本书。

B. 计算机网络

  • 网络分层和各层的作用
  • TCP 和 UDP 区别
  • TCP 的可靠传输原理
  • TCP 的流量控制原理
  • TCP 的拥塞控制原理
  • TCP 的三次握手、四次挥手原理
  • FTP 原理
  • HTTP 原理
  • HTTPS 与 HTTP 区别

C. 数据库(这里主要说 mysql)

  • 索引类型
  • 索引应该怎么建
  • btree 索引原理
  • hash 索引和 btree 索引的区别
  • 事务的特性,隔离级别
  • 数据库优化:sql 优化、索引优化、表优化、应用优化
  • 常见存储引擎以及区别

D. 操作系统

  • 用户态和内核态
  • 进程线程区别
  • 进程线程通信方式
  • 进程线程的状态
  • 死锁以及预防策略
  • 进程线程调度算法
  • 分页分段以及页面调度算法
  • IO 控制方式

Java 后台

A. Java 基础

  • java 语言的几个特性
  • 接口与抽象类的异同(包含 JDK8 的新特性)
  • Java8 的新特性
  • IO 和 NIO 的区别
  • 检查异常和非检查异常的区别
  • 异常处理的原理
  • HashMap 的原理(包含 JDK8 中的改进)
  • ConcurrentHashMap 的原理(包括 JDK8 新特性以及 put、get、size 方法的实现)

B. Java 虚拟机
推荐一本书,《深入理解 Java 虚拟机》,对于面试足够了。要是闲太长了,就看这个吧:深入理解 Java 虚拟机总结

C. Java 并发,多线程,和上面的虚拟机有很大重叠

  • 线程的状态
  • interrupted 和 isInterrupted
  • 阻塞队列
  • ThreadLocal 的原理与内存泄露
  • 线程池与 Executor 框架
  • 什么是 Java 的内存模型
  • Lock 和 Synchronized 的区别
  • volatile 和 Synchronized 的区别
  • volatile 实现机制
  • 乐观锁和悲观锁的区别
  • 锁等级
  • Java 同步器
  • CAS 的实现机制
  • 原子类的实现机制
  • Synchroized 的实现机制
  • 你用过 JUC 包哪些类

D. Javaweb
这个好像不能说,分为基础和框架,基础主要是 Servlet 原理,jsp,Jdbc 什么的
框架比如 ssh, ssm,要知道一些常见问题的涉及的原理,看过源码就更好了。
比如:SpringBean 的生命周期,SpringMVC 处理请求的过程等等等...

E. Java 设计模式
其实面试中常问的就两三个,不过还是来个总结:设计模式总结

F. 分布式相关
面试官总是喜欢往这个方向扯,推荐一本书:《大型网站技术机构核心原理与案例分析》

HR 面

  • 你有女朋友吗
  • 你的优点、缺点
  • 你对我们公司了解吗
  • 你以后几年个人的计划
  • 你平时怎么学习的
  • 遇到问题你一般怎么解决
  • 你有什么问题要问吗



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值