背景
笔者是17年参加的秋招。
大学里比较不务正业,学习了各种技能,编程算是其中一项。
所以我的方法论和面试技巧可能和一些把编程作为终身事业的同学有所区别,希望能从一个不同的角度给大家一些启发。
如果你能吃透本文的内容,是很有可能在本科阶段就拿到比较高的薪资的。
(当然,如果你已经是研究生,可能拿得更高哦)
面试准备
1
笔者当时只挂了某大厂一个感觉比较厉害的部门,当时的面试官恰好是我实习&秋招前帮我改简历的朋友,挂的原因是我算法不行。比较可惜,当然也非常感谢他,要不然我都不知道该如何润色我的简历。
16年五月底结束实习,准备了一个多月,然后开始投递,算法水平仅限于刷完了剑指offer。大学期间忙的事情比较多,没太多时间刷题,算法基础很薄弱。
一开始我是海投的,也不太了解自己的面试水平,但后来慢慢发现,自己面得似乎还可以,于是就只面喜欢的大厂,其他都在面试前或中途婉拒掉了。
个人认为:如果这家公司你以后是不会去的,那么没有必要继续面。当然如果面得不多,想要积累面试经验,当然不要放过每一次面试机会。只是现在就业环境蛮严峻的,如果不会去可以提早把位置空出来,不占用资源,对大家都有好处。当然,一定要建立在你有信心拿到心仪offer的情况下才这么做,要不然会比较吃亏的。
2
本文不会像其他面试分享一样罗列知识点哈,那类文章我之前也写过挺多的,这里就是闲扯一些我以前的经验吧。
面试有两点很重要,一个是自身实力,一个是面试心态。
大家一定要记住一点,面试官是在物色同事(能干活的螺丝钉)。
实力固然重要,但是你言行中透露出让人舒服的素养,也是提高面试成功率的重要因素。
这么说吧,如果你能在面试中和面试官“聊”起来,偶尔俩人还能一起笑起来,那这场面试基本就成了。
当然,面试房间的门关上不等于把车门焊死,逗笑面试官最好不要使用低级趣味,谈谈技术理想,人生哲学,照样能开怀大笑的。
程序员段子大家应该也看不少了,活学活用吖各位。
3
大家换位思考一下,如果是你自己组建团队,你想要些什么样的搭档呢?
无非是人品好,技术吊。办事靠谱,不发牢骚。
虽然,最终我们都会变成自己讨厌的样子…
但,大哥,这是毕竟面试,演你也要演给面试官看的嘛。
面试内容
1
面试内容就先从项目开始聊吧,
当时我的项目配置是一个小程序,一个小游戏(web前端),一个小框架(SSM),一个小型APP(Android)。
大概是想告诉面试官:增删改查,我会写;常见中间件,我能灵活运用;项目部署也有接触这样。
面试官通常都会挑一两个项目问的,像小程序这类项目能聊的就很多。因为一涉及中间件就能牵扯各种设计问题,如果大家在项目里用到了中间件,一定要想好为什么用,如果不用,还有什么其他的解决方案。
面美团的时候,一个面试官花了一半的面试时间和我探讨这个项目某个功能点的实现,让我想不同的方案。
唉,人都是被逼出来的,那天我想了五六个吧。
大家不要怕在面试官面前出丑,当时我想的方案要么很烂,要么天马行空,被面试官虐的体无完肤。
但是千万不能怂,你至少要告诉面试官,你是有解决问题的想法的,即使现在还没有解决问题的能力。
2
其实面试官都会想要一个点子多的应届生,这可能意味着所谓的潜力吧,所以大家不要害怕展示自己的思考,就算复杂度low到爆又怎样,它也是一种解决策略呀!
而且,通过不断地优化,它最终是有可能成为最优解的,这需要大家和面试官不断探讨,这就是所谓的“聊”了。
放小游戏的原因是我觉得能和面试官聊很多网络,协议,IO模型相关的问题,个人认为各种IO模型的设计非常有趣,所以比较喜欢聊这个。
大家也可以根据自己的兴趣点,放一些相关项目到简历上。
这样一来,面试官问到就是赚到。
3
程序员面试,网络和操作系统是两座绕不过的大山。
先聊网络吧。
其实一路面下来,网络问题无外乎网络协议,而且定位还可以精准一些,就是传输层的TCP和UDP,偶尔问问HTTP/HTTPS这样。
我不太了解科班生是如何学网络的,听计软的同学说他们要看好几本书,考试是要考好多概念的,还有计算题呢。
我入门看的是刘哥推荐的自顶向下,看了四五遍这样,面试的时候感觉还蛮轻松的。
举个例子吧。
在面腾讯的时候,其中一场面试官一上线就丢来一道算法题,一道前缀树的变型。但由于算法基础不扎实,而且比较紧张(秋招第一场面试就是腾讯),最后没跑通,换了个普通解。
面试官的笑容逐渐消失…
4
然后随口问了一个UDP怎么保证可靠传输。
我当时一愣,也不知道当时有没理解错,反正我是这样想的:
大佬欸,想考TCP就直接问啊,为啥要套个UDP外壳呢?
没办法,人家问的就是UDP,那就和他聊聊如何在UDP的基础上继续修改协议,增加功能,做到稳定传输吧,无非就是加序号,设计重传,开滑动窗口提升效率(TCP那一套)。
结果当时用了一半的面试时间聊这个问题,这种聊深了得好好聊,比如说滑动窗口具体落实到代码该怎么写。
我觉得背概念会比较虚,和面试官聊天,当涉及技术点的时候,最好能站在一个“如果要我实现,我会怎么实现”的角度去聊,把自己的想法罗列出来,当然这需要你平时学习的时候也有类似的实践才能在面试的时候有话可说。
自己的实现肯定比标准的要菜很多,但设计思路和理念跟上就行。
5
操作系统问得也蛮多的,感觉频率会比网络少那么一点点?
如果各位仍在校,而且时间充裕,非常建议大家去做一个小型操作系统当面试项目哇,这绝对是大大滴加分项。
抛开面试的功利性来说,写小型操作系统感觉会对一个人的编程能力有巨大的提升。
操作系统都能写,以后不是想干嘛干嘛吗?去做工程也行,开发数据库,中间件,做基础设施也行,干啥啥都行。(使劲忽悠,使坏)
没时间写?
呃,那就去背那些概念吧,面试要考。哈哈哈哈
6
大概就是这么多啦,一个本科生也不可能有太深的技术积累,面试官可能更看重潜力吧,我们装成有潜力的样子就好啦~
大厂技术面试一般都是三四轮,一面偏基础,二面偏项目,三面看BOSS喜好。面试时,面试官问问题往往会步步紧逼,看你的积累有多深,问到不会为止,这可能就是所谓的吊打吧。
从笔者的经历看来,几乎所有面试官都会这样,非要问到别人不会为止。不过,在触及盲区后选择合适的时机服软,面试官都会切换问题的。
一开始肯定是备受打击的,后来就习惯了,不受点打击这面试就过不了,所以大家放开和面试官对线就行。
资源分享
我自己做Android开发已经是第四个年了,毕业后两年,有幸加入到阿里这个大家庭。在阿里工作的几年里,见证了太多人的来来去去,印象很深一个同事,跳槽阿里薪资直接double,但也看到很多人镀着“大厂”的金四处碰壁,终究还是倒在了技术上!
以下分享一下我4年来具体的学习路线及笔记文档,希望能帮助到有心提升技术的朋友!
以下完整学习笔记PDF,点击这里免费下载获取!
- Java筑基必备技能
目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。
知识要点:
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
- 微信小程序开发
微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。
本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战
面试复习笔记:
一、Java 基础(★★)
面向对象思想
多态
异常处理
数据类型
Java 的 IO
集合
Java 多线程
Java 高级(★★)
Java 中的反射
Java 中的动态代理
Java 中的设计模式&回收机制
Java 的类加载器
Android 基础(★★★)
Android 基本常识
Activity
Service
BroadCastReceiver
ContentProvider&数据库
Android 中的布局
ListView
JNI & NDK
Android 中的网络访问
Intent
Fragment
Android 高级(★★★)
Android 性能优化
Android 屏幕适配
AIDL
自定义控件
Android 中的事件处理
Android 签名
Android 中的动画
网络协议
其他
项目面试常见问题(★★★)
- 开发周期
- 项目中遇到的难题
- 项目中最大的收获
- 项目是如何上线的
- 项目是如何盈利的
- 绘制项目架构图
- 项目开发流程
- 你在项目中的角色
- 你负责项目中的哪些模块
- 讲讲你负责模块的具体实现
- 项目中都用到了哪些第三发框架
- 有没有自己写过框架
- 业余时间你是如何提高自己(学习)的
- 有没有自己的技术 blog
- 你的职业规划
- 为什么离职
- 为什么选择我们公司
- 说说你们项目的亮点和不足
- 你们的项目是如何保持风格一致的
- 项目架构是如何搭建的
- 屏幕适配是如何解决的
- 都看过哪些源码
- 项目版本是如何升级的
- 用的什么版本控制工具
- 你能独立开发吗
- App 跟服务器是如何交互的
- 需求文档写过吗
- 接口文档写过吗
- 云服务器都用过哪些
- 第三方平台都用过哪些
简历+社招解答+经典HR面试解析
以上是整理总结的Android中高级面试遇到的真题解析,希望对大家有帮助;同时很多人经常也会遇到很多关于简历制作,职业困惑、HR经典面试问题回答等有关面试的问题。同样我也搜集整理了全套简历制作、金三银四社招困惑、HR面试等问题解析,有疑问,可以提供专业的解答。
由于篇幅原因,如有需要以上完整学习笔记PDF,点击这里即可免费自取!
后记
我觉得这戏笔记对有面试需求的小伙伴还是有帮助的,你可以看看我都整理了哪些点,然后你可以根据这些点自己去学习,要记住,面试千万不要死记硬背,自己理解之后,能按自己的想法说出来,这样和面试官对线才有一点点可能性哈。如果强记那些面经,你会发现自己面试的时候使不上劲的,一问深就跨。
好了,今天的文章就到这里,感谢阅读,喜欢的话不要忘了三连。大家的支持和认可,是我分享的最大动力。
转载:https://blog.csdn.net/Androiddddd/article/details/116496061