【面经阅读总结】000_和你一样我也拿到了offer-我的校招总结
原文地址:https://www.nowcoder.com/discuss/56158
一、文章总览
- 了解和参考我的找实习和校招历程,方便你的需要
- 可以了解目前国内互联网公司校招的基本流程
- 如果你是学生,可以针对本文有的放矢的提高自己技术
- 获取校招(Java研发)准备的参考书籍和网站
二、阿里
实习:3月份开始内推的阿里实习,前后经历了一个月,经过三轮技术面+一轮HR共4次面试,到4月底才出最后的结果。
不得不说阿里实习,就像马拉松。好的方面是你可以针对上一次面试发现的问题,有充足的时间来理解和补漏。最后顺利拿到阿里的实习offer,为校招开了一个好头。
校招:实习是在阿里菜鸟,所以校招就没有走普通的校招流程,直接内部通过转正答辩拿到了offer。
实习主要是跟做项目,期间在ata和里内网上看到好多非常不错的技术分享文章,也抓紧机会学了不少。
还参加了菜鸟针对所有实习生开展的马拉松编程大赛(连续48小时),很幸运地跟着队友拿了个第一名,主要是开发容器来验证阿里中间件的依赖隔离和类共享的机制,实现Pandora中间件容器的加载原理,并感知云上云下不同环境自动切换依赖等。
第一名有啥好处呢,除了每个人都有价值RMB600左右的机械键盘和获奖文化衫外,队长可以直接拿校招offer,我们其他小组成员虽没直接拿到直通offer但是在后面转正答辩中加分很多,最终我们小组所有人都拿到了阿里的校招offer,这也是非常不错的奖励!
三、如何看待校招技术面试
(1) 公司的角度
为什么要校招?
- 一方面可以补充新鲜血液,挖掘优秀人才,培养公司未来骨干,丰富公司的人才储备
- 另一方面还可以一定程度提高公司的社会影响力(可以宣传公司、打广告)。
而社招更讲究“即战力”,要求员工能够马上投入工作岗位为公司创造价值、做出贡献。
要什么样的应届生?
- 技术基础扎实、能力足够好等。所以你要向应聘公司证明你可以胜任这个职位。
- 学习能力强,综合素质评价高,有培养的价值等。所以你要证明你有培养的潜力。
- 善于沟通交流,有团队协作意识等。所以你要证明你待人接物、为人处世方面的能力。
- 大部分应届校招生没工作经验,公司招进来以后还需要花时间代价来培养。企业不是慈善家可以免费培养你,是要让你尽快地成长起来能够为公司做出贡献的。公司看重的是你在一定时间内的发展潜力,他想要的是经过在公司历练半年、一年后的你,公司愿意招你就意味着你的基础知识扎实、潜力值得培养。
(2) 个人角度
- 展示自己扎实的技术基础。
- 平时就要积累技术能力,做好自己实验室的项目,如果没有也要想办法去做一些项目,积累经验。
- 展示自己的学习能力,尤其是自学能力。
- 互联网技术发展如此迅速,如果自学能力跟不上来,就只能慢慢被淘汰了。终身学习,如果不是自学,还会有谁陪你一起学一辈子?
- 有不错的沟通交流能力。
- 虽然性格可能会比较内向,但是绝对不是不敢主动提出问题、不敢主动去交流的借口。
- 体现自己的思维方式、思考能力。
- 做一件事情,小到做一道算法题目,大到项目的开发,动手前要分析,了解重难点、关键点,然后要做好基本的计划和安排过程,落实,不断反思-总结,改进。
- 如果经常按照这个思维方式考虑问题,时间一久一定会获益良多。总结,很重要,可以帮助你梳理自己的思路,对做过的事情有更加全面和清楚的认识,推荐用blog的方式总结。
四、面试技术要点
Java
- JVM内存分配机制、内存模型
- GC(minor GC、major GC、触发条件、GC算法等)
- 类加载机制(类隔离和类共享)
- Java集合(List、set、HashMap、HashTable、ConcurrentHashMap等)
- interface和abstract class
- socket编程及NIO
- synchronize、final、static理解
- 异常(检测异常和未检测异常、继承关系等)
- 反射、动态***
- Spring的IOC、AOP
数据库
- 第一、第二、第三范式之间的理解和比较
- 数据库的事务、ACID及隔离级别
- 索引优化(组合索引、最左匹配原则)、优缺点
- 手动写创建索引的语句
- 并发访问场景和所有可能出现的结果、锁作用和实现
- 主主复制、主从复制
- B-tree的应用
- int和varchar
- io优化
- 分表分库设计
- 操作系统/Linux/集群
- shell脚本、查找文件命令
- top命令、netstat命令、ifconfig和ipconfig
- 乐观锁和悲观锁
- session集群共享
- Hadoop集群扩容问题
- 集群负载均衡
- 虚拟路由
- Hadoop集群单点故障
计算机网络
- 传输层协议TCP和UDP
- http和https(对称加密、非对称加密)
- ftp和sftp
- 从访问一个网址到页面出现,描述中间发生的所有事情。
数据结构&算法&设计模式
- Hash及冲突解决
- 二叉搜索树
- 手写快速排序算法、单链表反转、字符串部分逆序(如moc.anis.www转为www.sina.com)
- 手写二叉树层序遍历、二分查找、递归算法实现
- 超大文件寻找top K算法设计(单机1M内存、Hadoop集群、外部排序+uniq命令)
- 算法设计:给定函数a可以等概率产生1-5这5个数,仅调用a实- 现等概率产生1-7这7个数
- 用栈实现队列
- 订单超大并发访问-队列批量处理
- 观察者模式、工厂模式、适配器模式
智力题
- 估算武汉市需要多少个消防站。
- 有两根粗细不均匀的香(烧香拜佛的香),每一根烧完都花一个小时,怎么样能够得到15min?
- 下一场雨,估算武汉市总降雨量吨数。
- 盒子里放水果,猜哪个盒子放什么水果。
项目
- 每个项目从整体架构设计、扩展性、后续优化到任何实现细节都有可能会问。对做过的事情需要多总结和优化思考。项目这块是需要花大量心思准备的。
五、如何提高自己的技术能力
-
人与人之间的差别在于业余时间。技术能力的增长是比较缓慢的,成长都是要靠平时一点一滴的积累。用一句话总结,不积跬步无以至千里,不积小流无以成江海。
-
有良好的自控能力,能够自律。偶尔玩玩王者荣耀、打打阴阳师,和同学打个篮球都没关系,适可而止。
-
有严格的时间观念。早上第一件事是规划自己当天要做的事情,按重要紧急分类排序,量适当。晚上一般是总结。
-
看书。书籍是使人进步的阶梯。
六、网站推荐
赛码网 性质类似牛客网,推荐
七、如何有针对性的准备面试
- 明确自己的岗位(最好只投一个)和工作地点,精准投递。
- 简历上出现的每一个字都要能说出所以然,否则就不要写上去
- 面试前有针对性的调研面试部门在公司的定位、战略意义,增加自己对公司部门的了解。
- 调研面试岗位需要哪些技能要求,提前针对性准备。
- 寻找网上的面经,学习之。对着面经,模拟面试的过程,看自己是否能够完美回答,如果不行就做好标记好好准备。
八、面试技巧
- 要表现得自信、积极乐观
- 主动引导面试官问自己会的内容
- 回答问题时把不会的或者答得不好的问题引向自己熟悉的、有把握的方向。校招腾讯二面面试问我是否了解二分排序,当时一下子没什么印象,如果我当时什么都不做直接回答“不会”,那二面之后基本挂了。但是我当时就说二分排序没什么印象但是对二分查找还是有了解的,然后面试官就让我手写二分查找的代码,几分钟我就写完了,还简单分析了算法复杂度的情况。这样自己就很好地把握了面试的主动权了,也顺利过了二面。
- 不同角度回答问题
- 正反方面去阐述,如果可以就尽量举例具体说明问题。比如阿里一面问我IOC有什么好处时,先说弊端,没用框架前都是在代码里面硬编码创建对象,耦合度高、扩展性差;然后从另一个方面说优点,用了框架后可以把对象生命的整个周期交给框架管理,有解耦合、有良好的扩展性等优点。这样一来面试官就相信你理解了这个知识点,而不是背书。
- 多用数字说话
- 网易游戏面试官问我做的项目有什么成果,如果我说处理了大部分的投诉,提高了工作效率,这样的回答感觉绵软无力。如果平时就注意做好总结,就可以说系统查询时延在1s内,处理了原来70%的工单任务,效率提高80%,后者显得你更加专业、有说服力。
- 敢于承认自己不会的问题
- 遇到不会的问题时,不懂装懂的人一定会杯具的。面试中要真诚,面试官看过的人成百上千,纸是包不住火的,强行装下去只会让面试官对你更加失望。倒不如大方承认这方面知识相对缺乏,还可以趁机询问面试官给点指导意见帮助你思考,从而体现你的上进心、进取心,赢得更好的印象分。
- 回来后反思总结
- 面试过后一定会有自己不满意的地方,应该及时复盘合总结。想想自己哪里的技术不会,哪些语言需要重新组织,哪里应该举例说明,说不定下一次面试就遇到了呢。
所有的面试技巧,都没有你过硬的技术能力有说服力!
- 面试过后一定会有自己不满意的地方,应该及时复盘合总结。想想自己哪里的技术不会,哪些语言需要重新组织,哪里应该举例说明,说不定下一次面试就遇到了呢。
九、校招基本流程
十、简历方面
- 现在就开始制作自己的简历。当发现自己简历没什么内容可写时,起码还有时间弥补。
- 可以多投几家公司。目标要远大也要切实际,把想去的公司分高中低几档分别投递,保证了冲击一流企业的机会,也可以拿到保底的offer,不怕最后一无所有。