您的位置:首页 > 其它

一位学长的BAT之路分享

2017-01-10 16:49 253 查看

2016 校招感悟

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

简历

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

笔试

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

面试

最重要的部分,一般分为技术面和 HR 面。

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

礼貌

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

主动

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

拖延时间,否则就会一直被面试官问问题,你也预料不到下一个问题你能不能答上来;
让面试官看出你知道的东西,对知识了解的深度等;
根据提出的问题延伸,引导面试官问你熟悉的方面。
问:(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 个项目经验了,而我才开始学,就这样又过了一年,挺辛苦的一年。
大四,找工作,实习。
说这个一是回忆一下大学生活,二是说明学长一路这么心酸都走过来了,你们还怕什么。

问题

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

技术专好还是精好?

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

哪些公司的发展好?

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

如何应对找工作?

好好学习,好好准备,具体参见面试。

保研相关

不清楚,不过根据政策,多参加一些比赛活动,加分你懂的。

啥也不会?啥都不想学?不知道干嘛?

这个,我也不清楚,不过我有个建议,上知乎提个问,也许有人解决。

面试

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

找工作和实习的面试要点?

面试开发所需的核心技能和知识?

面试经验?

想了解 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 面

你有女朋友吗
你的优点、缺点
你对我们公司了解吗
你以后几年个人的计划
你平时怎么学习的
遇到问题你一般怎么解决
你有什么问题要问吗
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: