一位学长的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 面
你有女朋友吗
你的优点、缺点
你对我们公司了解吗
你以后几年个人的计划
你平时怎么学习的
遇到问题你一般怎么解决
你有什么问题要问吗
相关文章推荐
- 来自北邮人的大牛校招准备经验分享:17届大牛学长分享:如何集齐BAT三家offer
- 我的嵌入式之路(一位学长的真言)
- 分享一位年轻人的AppCan开发之路
- 一位前BAT面试官,详聊进入BAT的面试经验
- 牛人分享:八年的奋斗与思考--我的电源之路
- 【JAVA】心得分享(二)之解决Tomcat.exe或者startup.bat 一闪无法打开的问题
- BAT解密:互联网技术发展之路(7)- 网络层技术剖析
- 一位获全额奖学金到北美留学的学长花四天写下的东西 ~~~此文涉及人生、考研、出国,值得一看
- 分享一位软件工程师的7年总结
- 与一位研究生学长的谈话所感(大二下学期第三周)
- 【分享】职场交流:一位软件工程师的7年总结
- 分享---我的9年IT之路(摘自csdn)
- 阿里巴巴十年Java架构师分享,会了这个知识点的人都去BAT了
- TOP100summit:【分享实录】京东1小时送达的诞生之路
- 阿里巴巴十年Java架构师分享,会了这个知识点的人都去BAT了
- 腾讯技术分享:社交网络图片的带宽压缩技术演进之路
- Vue学习之路---No.2(分享心得,欢迎批评指正)
- 面试之路(6)-BAT面试之操作系统内存详解
- js入门必读--和你分享js的学习之路1
- 分享Java web 开发必游之路