最近事情比较多,工做比较忙,同时在自学泰语和前端,精力比较分散。差点这份面经就跳票了,感谢同行的鼓励让我从新提笔。前端
数数这也正好是我入行的第三个年头了,侥幸当年在外包公司获得实习的机会,今后开始了IT生涯。回头看看这三年一步一步走来,真是吃了很多苦头。不知道大家有没有跟我一样的经历,刚毕业的时候什么都不懂,渴望一个机会,去面试当面被面试官批评太差劲。刚入行的时候,没有牛人带,总盼望着谁拉扯本身一把,什么都得本身摸索,一步一步本身踩坑。才工做一两年的时候,就感受遭遇了瓶颈,将来一片迷茫,不知所措。这些我都经历过,我甚至还经历过比这更糟糕的状况。幸运的是,我坚持了下来。
git
先介绍下我的履历,做为面试的参考,抛开背景谈面试都是耍流氓。程序员
双非(非985,非211)一本电信专业毕业,半跨行从事IT行业,工做三年,跳槽前没有互联网履历,第一份工做在外包公司任职,第二份在公募基金公司任职。github
若是你是专科毕业,我建议你至少要考个本科学历web
如今不少公司简历审核的时候都会卡学历,我以前任职的基金公司甚至一度卡到985,211。虽然IT是靠能力吃饭的行当,可是随着从业人员的增多,市场的门槛也会随之调整。我有时候甚至以为本科都有点不够看,建议专科毕业的同窗至少要考个本科学历,否则很容易失去面试机会。即便面试经过了,在最终的HR面也很容易被刷。面试
3.1养成平常学习的习惯,而不是依赖考前突击算法
个人面试准备周期很长,差很少从17年12月底开始有想出去看看的打算,一直到18年6月才最终拿到满意的offer,这个期间我一直在查漏补缺。但个人学习周期更长,从17年5月进入一个平常学习的状态,花了一年时间跟着网课完成了系统性的学习,中间还看过不少书。数组
我不建议你们只在面试前夕进行突击学习,背面试题,这种技巧可能会让你得到一个offer,但没办法提高你的我的能力。我建议养成一个平常学习的习惯,天天抽空学几个小时,在面试前把总结的知识点重温一遍便可。这种习惯日复一日所带来的复利会让你的技术在某一刻由量变产生质变。缓存
3.2人不是神仙,不可能面面俱到安全
业内常常会调侃,面试造航母,工做拧螺丝。你不可能问什么都能答的上来,因此你要调整好心态坦然接受失败。不得不说准备面试真的是个很痛苦的事情,耗费精力不说,你可能忽然会发现你原来这也不会,那也不懂,自觉得拿手的本事被人两三下就问懵逼了,信心严重受挫。但你要相信本身,跌倒了没关系,再爬起来就好。
关于面试具体要准备什么,聊这方面的文章不少,我简单梳理一下,后面也会有我部分公司面试题的总结。
多线程、JVM
这两块的知识点是让你能顺利经过大厂一面的保证,我所经历过的阿里、头条面试一面基本围绕这些知识点展开。
开源框架
我以为多多少少须要看一些框架源码,了解其中的原理,掌握其中的核心,而且能用本身的语言,陈述出来。还有时下比较流行的东西面试官问的概率很高,好比组件化、hybrid。多读读源码也能培养本身读代码的能力,这样的本事能让你很快的了解一个新的项目或者一个新的框架。
性能优化
这一块也是不少公司喜欢问的,特别是当部门架构组团队招人的时候喜欢问。我不太擅长这方面,就很少谈了。
数据结构及算法
在我系统学习的过程当中我是把数据结构和算法跟着课程学了一遍的,可是我面试期间是彻底放弃复习算法的。这么说并非说算法不重要,头条的面试上来就会考一道算法题,喜欢考算法的厂也愈来愈多。只是你们要根据本身的实际状况分配复习的比重。毕竟数学考试最后一道大题你作不来,你能够把前面的小题争取所有作对。
简历是敲门砖,也多是面试的引线
你们必定要重视简历。对于学校不优秀,工做背景不突出的同窗,简历是你的敲门砖。简历写的很差,你可能直接会错过一次展现本身的机会。
在面试中不少面试官会根据简从来提问,因此你擅长的东西,必定要写在突出的地方让面试官看到,主动引导面试官问你你擅长的问题。在回答问题的时候,千万不要只言片语草草结束。每次被提问,都是一次展现本身的机会。尽量的说全,说详细。接着面试官可能围绕你说的内容进行深挖去考察你,因此你的知识点不能浮于表面,否则两三个回合可能就被问的哑口无言。若是你实在有些知识点不懂,尽可能的在回答中规避这些细节,省得面试官一时兴起问你一下。
那么简历到底该怎么写,有些同窗可能会以为,我平时工做都在堆业务,项目上没有什么能够写的怎么办。首先再回头看一看项目里是否是真的没有什么闪光点,日活、品控、性能这些都能做为你的谈资。若是实在没有那就去研究两三个主流开源框架,读读Android SDK源码,写点开源项目放到github上。你也能够搞明白本身项目的业务架构,钻研一下组件化、热修复、插件化、hybrid等热门技术,深究一下性能优化好比卡顿监测、APK瘦身、DEX加密、过渡绘制等。每个点它均可能成为你成功的钥匙。
生活是场修行,认真对待每场面试
这里写了部分大厂面试题做为你们复习的参考,平安系的面试主要问的项目,包括个别小厂面试没什么参考性,这里就不写了。
头条的面试质量很高,复盘的时候有种醍醐灌顶的感受。
携程的面试很不走心,大老远跑一趟最后面试官都不给我提问的机会面完直接走出去了,我也没差到这种地步吧。
阿里的面试比较随机,两次下午上班的时候来电面试,一次是晚上来电面试。
算法:数组中的数据前半部分递增,后半部分递减,排序并去重
Java虚拟机
------如下问题都是面试官根据简历问的------
一面
(招行是架构组招人,问的问题主要是架构方面和安全方面,比较开放,简单总结一下)
干这行三年了,本身恐慌过,也看到过别人恐慌。担忧行业日落西山,担忧Android被大前端统一。这样的担忧也不算没有道理。但其实真正让我恐慌的是我没在进步,而行业在不断进步,担忧跟不上行业的脚步。做为程序员,仍是要保持一颗学习的心态,不断前进。但也但愿你们在繁忙的工做、学习之余抽身出来多培养些兴趣爱好,多陪陪家人朋友。多打磨一下本身的软技能,提升谈吐、情商、表达能力。这些也是一个优秀的程序员所须要具有的条件。
我不算是一个优秀的程序员,也只是努力的在这条路上前行,但愿能作一些本身喜欢的事情。
若是有机会,会在博客上跟你们分享一些安卓之外的内容。
愿每一个人都有梦想,也愿每一个人都能坚持本身的梦想