美文网首页Android&Java面经Java面试求职在路上
互联网公司面经,Java方向(转自某大神,写的非常棒!)

互联网公司面经,Java方向(转自某大神,写的非常棒!)

作者: 锅与盆 | 来源:发表于2017-02-25 15:57 被阅读1674次

    在牛课网论坛上看到的,大神写的找工作攻略,写的非常好,特别是简历准备,引导面试官,把握面试节奏这些方面,很值得参考。转发过来分享给大家,也能经常看看也激励下自己。

    原文内容如下:

    尊重原创版权,转载请注明原文地址
    博客:http://blog.csdn.net/note_sun 欢迎关注

    前言

    写这篇有以下几个原因:

    1. 对过去一年找工作的一个详细总结
    2. 自己找工作也看了许多攻略,没有一个特别有用,特别好的,所以就自己写一个攻略,如果能帮助到别人,当然最好了。
    3. 好吧,师弟师妹们总问,额。就写一份得了。
    4. 个人的一些想法,如有意见和错误,欢迎指出和讨论

    内容提纲:

    1. 个人经历介绍以及一些找工作误区
    2. 如何写好简历,做到最完美的简历
    3. 如何准备知识,做好规划
    4. 如何笔试
    5. 如何面试
    6. 公司介绍

    本文注重方法,不会具体说具体的题目,因为每个面试官问的不会一样,没有太多的意义,而且方法掌握对了,知识都是通的,具体实践自己怎么操作都可以。

    个人经历

    阿里蚂蚁金服:3月初第一个面的公司,3面过了。暑期实习3月

    网易游戏互娱:3月面,1面,通过发了offer,没去实习

    百度:9月校招,笔试+3面面试,最后拿到special offer

    腾讯:9月校招,笔试+2面面试+hr面,special offer

    华为:9月校招,3面+2面,special offer

    今日头条:笔试+3面,拿到offer

    微软:4月面,3面,通过,算法偏弱,最后没给offer

    猿题库:9月,3面过,算法偏弱,最后没给offer

    误区

    1. 以为看越多面试题越好

    许多同学看许多别人的面试题,看面试是什么题目,然而真正面试发现并没有什么用,本人第一次面试前看过1,2篇面试题经验,之后就再也没看过。因为面试可以说是一种谈判和博弈,每个面试官,问到的题目肯定不一样,许多都是顺着话题而展开,而且技术发展这么快,去年的面经的题目可能就过时了,算法题目除外。如果花过多时间和经历去看面试题,那么就跑偏了。

    2. 盲目的投各种公司

    许多同学投各种公司,然后忙的焦头烂额,发现最后收获的很少,又很沮丧,很累。其实选公司也是有许多策略的,不易贪多,注重质量,而且第一次面试的公司一定要慎重选择,如果第一次面试成功,那么有保底的,又能增加信心,在以后的面时间过程中肯定也会越来越好。如果第一次面试失败,那么会很打击,很沮丧,会怀疑自己,缺乏自信,那么之后别的公司的面试也会越来越紧张,没有自信。所以第一次面试的公司要选好,争取一下成功。

    3. 各种跑招聘会

    额,本人找工作没有去一次招聘会,个人觉得没有特别大的作用,如果想了解,想搜集信息,网络完全可以搜集的很全面,而且跑很多招聘会,看那么多的同学,人容易焦虑,缺乏精力,又疲惫,又累,所以直接网上投就好了。

    准备和规划

    规划:学习知识-> 简历->内推->笔试->面试

    怎么学:
    1. 看书,看书,看书,记录,记录,记录
    2. 总结和思考
    3. 巩固和举一反三
      看书是最好的学习方式,书具有系统性,会涉及到各个细节,多看书能很好的打好基础,增加广度,其次是记录,记录重要的知识点,关键的知识点,容易忽视的知识点,重点理解和思考,增加深度。然后不断巩固,加深记忆。

    java和android找工作之前看了如下书

    java:
    java编程思想,java核心I,II, java虚拟机,java特种兵,java数据结构与算法,head first java, java特种兵,effective java,java并发编程艺术,java面试指南

    android:
    第一行代码,android群英传,android权威指南,android开发艺术,android深入理解内核思想,android系统源码分析
    这些书全部都买了,当然是二手的,一本一二十。

    这么多书,怎么看呢?

    精读一本,例如java,看java编程思想,认真看完,做好笔记记录,自己不理解的,容易忘记的,觉得重要的记下来,当然是记关键词,使自己之后能看到关键词想到相关知识点,之后不断巩固。

    然后你看别的书,就发现,都是熟悉的,因为许多都是重叠的,那么就查缺补漏,做记录,之后看的就非常快。

    获取信息

    每天抽取一定的时间,获取招聘信息,然后根据时间记录,其他时间打基础。

    做简历

    首先要认识清楚:

    1. 简历不是说把自己所有的有的无的都放上去
    2. 简历针对不同公司,不同职位,要做相关更改,最好不要一份简历通用
    3. 把简历当作一个入口,和面试官沟通的入口,每个点相当于开始,针对每个点,都做好接下来的对话。
    亮点和优势:

    好的简历无外乎以下几点:

    1. 学校奖学金(XXX奖学金)代表你的学习基础
    2. 技能,简单列一下几点比如java:熟悉Java(多线程,IO, 虚拟机)了解常用jar包源码,了解Java设计思想等
    3. 项目:xxx项目,自己做了哪些工作
    4. 竞赛:xxx竞赛xxx几等奖
    5. 论文和专利:xxx论文
    内容:
    格式:
    1. 用表格来规范简历的格式
    2. 字体要清晰,统一,看起来舒服,如微软雅黑
    3. 不要超过一面
    4. 清晰简洁,每个模块加粗,下一横线
    5. 中英文简历都要做,英文注意单词用法
    6. 提交得提交pdf格式,内推是发现许多同学交到是word版本,word版本因为兼容性问题,布局会变的。
    7. 尽量填充一面,内容多的,缩小字体,缩小行距,内容少的,增大字体,增大行距,一页满,不留空白
    个人信息:
    1. 标题不要写简历2个字,都知道写简历没必要多此一举,直接写自己名字
    2. 手机,邮箱,性别,出生年月,技术博客,github。技术博客和github很重要,是加分点,许多面试官会看,这个是最直接能了解一个人的技术基础,如果没有,那么ok去准备,去总结,去写,去填充这些。
    校园经历:

    如果只是本科,直接写到个人信息里面,如果硕士,可以写两行,也可以加上自己获得的奖,xxx奖学金啥的,动态的调整内容

    技能:

    1.切记不要写精通

    2.列清点: 如果直接写熟悉java语言,那么很宽泛,面试官可以在这么大的范围里面随便问,问到很偏的东西,就完蛋,比如java8新特性,java多线程,java泛型。 ** 如果改为熟悉Java语言(基础,容器,多线程,IO,面向对象),这样就很好,**相当于把一个很大的集合,缩小为可控的集合,那么只要认真准备擅长的,重点的几点,再兼顾其他的知识点就ok。其他也是一样 熟悉机器学习(列自己擅长的算法)熟悉数据结构(...)

    这样写法一个可以丰富自己的简历,使每一行都占满,另一个缩小集合,限制在自己擅长,拿手的重要知识点上面,这样自己准备起来有方向,当然其他的知识点也要准备。

    3.java可以如下写: 熟悉Java语言(...) 熟悉Java虚拟机(...)了解JDK源码(ArrayList,HashMap...) 熟悉Java并发(...) ArrayList,HashMap的源码非常重要,必掌握知识点,而去写到简历上,很大可能会被问,一旦问道,自己顺手纸上写出来,多么完美。

    1. 数据结构(...)操作系统(...) 网络(...) 数据库(...) 如果没有精力准备,那么不写,问到能回答则回答,不回答,就说不会。

    2. 语言:CET-4:xx CET-6:xx 能熟练阅读官方文档。

    项目:
    1. 有项目最好,项目上标清和xxx公司,和xxx国外老师,和xxx创业团队合作项目,这样看上去就显的项目重要,有底气,比上面都没有,让人以为自己捣鼓的小项目好很多。

    2. 没有项目,那么自己要准备一个项目,途径:教学视频,带你手打项目,语速2倍,了解项目整个逻辑,属于拿来主义,站在巨人的肩膀上,加上自己的思考,改进,进行包装,这样也可以,但是自己要圆过去,重要的不是项目本身,是项目中,自己做了什么,涉及到什么知识点

    3. 项目写清自己做的工作,关键知识点:xxxx

    自我评价:
    1. 不要写什么踏实,努力,这些很虚的东西。
    2. 有爱好,特长可以写 如xxx几级, 志愿者,社团工作,可以写,xxx主席
    3. 有优势的写:如3年读了100本专业书,写了多少篇博客
    4. 职业规划:职业发展
    注意:

    1.简历是一个引子,上面的每一点,每一句话都是有用的,如果问到那么必须自己能对话下去

    2.为什么技能,列点,这些就属于自己抛出去引导面试官问的,这样就会化被动为主动

    3.比如列了熟悉ArrayList,HashMap源码,这样就抛出去这样一个问题给面试官问,而且属于数据结构知识,又有语言实习,极大可能面试官看到简历这点就会让你写,你在写这点在简历上的时候,就肯定准备的很周全,那么面试的时候,顺利的写下来,这样就很好。技能,项目都是如此,抛出去相关点,准备周全,等着来问。 自我评价也是,抛出去读了多少书,那么问到你最印象深刻的书是什么,准备好,顺利答出,这样就会掌握面试的节奏,化被动为主动

    1. 简历的每一点都要认真准备,写的准备好,虚的,不会的那么就不写。因为自己真的遇到面试官,就拿着简历,对着上面一点一点的问,然后扩展(面试官会针对这个点一直深挖,考察技术深度)

    笔试:

    一般最开始都可以走内推流程,不过现在大部分内推也是要笔试的了,笔试有以下类型:

    1. 在线编程:网易微软的hihoCoder,没有acm基础的很难通过,这个时候就是发挥人脉的时候到了,当然自己要努力经常刷leetcode,等在线编程题目
    2. 选择,编程,简答之类的:涉及的知识面真的很广,大家都懂得。不明说了,如果不懂欢迎联系我~

    面试:

    1. 第一家面试的公司最重要,慎重选择自己把握大的,可以不上来直接BAT,可以面一些小公司,使自己适应,增加自己的信心,如果一上来BAT,那么可能直接撞死,信心将受到强烈打击。本人一上来就是B,幸好还是通过了。
    2. 把握时间节点,在自己把简历准备好,知识点准备好,怎么抛,怎么把我节奏准备好后,再投简历,切记没准备好,盲目的投
    3. 约好时间,许多面试可能在你做别的事情,比如搬砖,比如吃饭,比如睡午觉的时候打电话过来面试,这个时候正确的姿势是:不好意思,然后约半小时后。然后在这半小时中:
      1.找一个安静的空间,
      2.看笔记关键词过一下知识点,
      3.清空大脑,平静心情。 刚开始可以这样,如果有把握,那么随时开始。
      本人刚开始几次都是突然打电话,然后都是约了靠后的半小时到一小时,平静好心情,清空好大脑。后面面试多了,就随时可以开始面了。
    4. 面试有这几个阶段:自我介绍阶段,基础知识,扩展知识,项目,提问
    自我介绍阶段:

    简历上有的就不需要说了,说以下几点:

    1. 简单介绍项目,重点突出一个,看面试官是不是感兴趣,动态调整
    2. 已经有的职业技能规划
    3. 未来的发展规划
    4. 自己的看法,为什么投这个公司,自己对这个公司的业务,和公司这个职位的工作情况,工作环境,使用的技术。

    中间可以加入一些问句:比如说完自己的未来发展规划,问公司的对信任的职业规划什么样,或者问面试官个人,这样使对话能继续下去,有的说,有点聊,双方都舒服。

    基础知识:
    因为简历上已经抛出引子了,自己也准备好了,那么简单的基础知识很容易就能答上来,会的就说会,不会就说不会

    扩展知识:
    如设计题目,考思维,ok首先归类到哪方面的问题,然后搜查知识点,看有没有类似的知识点,涉及到。因为这样的题目,大多都是从基础知识扩展出来的,所以从对应的基础知识搜查。

    应用知识:
    最新的技术,开源项目,xx语言新特性。这些需要自己平时积累的

    项目:
    知识点介绍项目,说清楚项目的应用场景

    以上知识和项目这些完全没有技巧可言,全部都是靠自己的功力,当然抛出去的引子使知识点范围可控了

    提问:
    1.问具体公司文化
    2.问使用什么开源技术
    3.问个人发展规划
    4.问公司培养新人计划
    5.问面试官面试反馈: 最后问,如果前面谈的好的话,这个时候就知道自己是不是面过了。

    优缺点:
    经常遇到,这是一个很难回答的题目,重点是,缺点不能是真正的缺点,如果说缺点是不喜欢加班,ok,完蛋。本人经历后总结出以下几点:
    1.实践能力不足,解决问题能力有待提高,随着自己的实践和努力,怎么怎么样
    2.职场专业性不足,学校学生的思维更多, 然后自己会尽快转变从学校到职场多过度
    3.心理抗压能力不足,。。
    4.任务时间规划和细分。

    ***公司:
    *****阿里:
    电面,内推没有笔试(很棒哦),网站上有进度,面试完成后,面试状态会变动如果挂的话,没挂的话过几天就下一面,最后有一个hr面,只要价值观没问题,基本没事。然后优缺点问题回答好,参考上面。

    基础知识:根据个人抛什么样的引子,java的话常规的题目如:抽象,多态,虚拟机双亲模型,gc,内存结构,多线程,线程池,自动装箱,io, 等。 结合数据结构问的重点是容器,抛了引子,会写源码,ok了。 然后并发库, equal方法源码等。之后排序,各种应用场景排序,大规模排序,分桶。 偏项目,每一面都会问项目,二面,三面扩展知识比较多,涉及多线程比较多,虚拟机比较多,或者源码。
    阿里的氛围是狼性文化: 适合张扬的性格,公司争吵比较多,当然是对事不对人。弹性上班,下班部门不同,时间不一样。基本9点后把。

    百度:

    现场面:3面,在宾馆,问的题目难度比阿里难,有算法题,手写代码,问题偏低层居多,本人android, 问了很多底层的原理,AIDL, Binder,AMS, 启动流程, view绘制, 消息队列,Binder open(), map(), JNI,当然这些自己在简历上也抛了引子。 前两面一天面,之后过的话会有3面会涉及一些hr面的问题, 很少, 项目比前二面问的多, 有设计题目。 3面后无hr面

    腾讯:

    宾馆,2面,hr面, 100000人里选1000 貌似是这样。 扩展连续深入问题居多, 比百度好一些,不是特别篇底层,有手写算法题目。
    腾讯文化柔和

    微软:

    3面,手写算法题目, 看编程之美,程序员代码面试指南, 准备充分就OK了

    猿题库:3面,手写算法:2面远程,在线编程,1面线程,链表,数组居多,不涉及树图。

    今日头条:3面,2,3题算法题,基础知识, 随着面试进度,越来越偏底层

    最后:
    1.充分的准备 数据结构, 在线编程刷题,看书基础知识, 实践项目, 兼顾计算机基础知识,自己的知识积累最重要,其他面经,题库,也只是景上添花。
    2.心态调整好,第一公司选择最重要,成功则一路信心倍增
    3.每次面完做总结,思考,学习,提高
    4.关注新技术,关注开源项目
    5.多花功夫,只有比别人更努力才行
    6.祝找工作的新的一年顺利找到自己满意的工作。

    相关文章

      网友评论

      本文标题:互联网公司面经,Java方向(转自某大神,写的非常棒!)

      本文链接:https://www.haomeiwen.com/subject/dkqnwttx.html