移动互联网下半场的面试真经,让你进入 BAT 不再是梦

今天突然想聊聊面试了,最近有很多朋友让我看简历,也有很多朋友跟我吐槽说:面试被虐了,简直惨不忍睹,都有点怀疑自己的能力了。其实,我想说:正常。之所以这么说是很多朋友可能没有认清一些问题,哪些问题呢?两点:一是,没有认清自己;二是,没有了解公司。

其实说实话,作为程序员,最起码得有80%的人都想进入大公司工作,比如:BAT ,小米,滴滴,今日头条,美团等这样的大公司或者移动互联网界的明星企业。进大公司的好处显而易见,福利好,待遇高,工作稳定,不像很多创业小公司说倒闭就倒闭,尤其是移动互联网进入下半场之后,很多创业公司都相继倒闭,而且移动开发者也越来越饱和,随着程序员越来越多,自然就进入了激烈竞争的恶劣环境,优胜劣汰的自然规律是不可逃避,也规避不了的。 GitHub 统计,就今年一年加入 GitHub 的中国程序员就有 70 万,自己想想吧,竞争得有多激烈。

即使有20%的程序员不想进入大公司,也无非就是要么就是认清了自己的现实,自己并不是那么天赋异禀,也并不是那么热爱编程,有自知之明的心态,在个小公司干也挺好,倒闭了大不了再换,反正 BAT ,我也进不去。要么就是人家就是 BAT 的大神想出来创业当移动互联界的创业家,想功成名就,即使创业失败,我依然可以鹤立鸡群,潇洒回到 BAT 的世界,帅气的依靠自己在业界的名声依然能够得到一份好的工作。

说着说着,好像有点二八定律的感觉。NO,上面的80%和20%是我自己的不完全统计,不必当真,举个例子而已。

01

面试准则

关于面试这件事,我们得知道一个面试准则,尤其是在移动互联网进入下半场的今天。最近很多朋友面试受挫,并不是说技术有多差,但是就是很受打击,因为在资本寒冬的今天,移动互联网的下半场,程序员要想过上好日子,就得去大公司,现在已经逐步进入拼技术的时代了,所以技术依然越来越重要,这是在小公司无法体现和提升的。而他们之所以受打击是因为平时做项目,做产品也可以独立完成,甚至很好的完成,但是面试失败的面试是基础太差。

所以,你在小公司确实可以能够很好的掌握并做一个项目,但是大公司重视的是你的基础啊。所以要清楚这么一个准则:面试,大公司重基础,小公司重能力(这里的能力指:能不能马上上手做一个项目的能力)

进一步解释一下,为什么我在上面说:现在已经逐步进入拼技术的时代了?首先,移动互联网刚刚兴起的前10年是一个高速发展,高速扩张,野蛮收割的时代,就是不论技术好还是差,只要能够马上做出产品来就好技术,就会通过营销,运营,资本等手段获得用户,而获得用户,占领市场之后,就到了拼技术,拼品质的时代了。

而现在移动互联网的下半场就是一个拼技术的时代了。举个简单的例子,微博,你做出来很容易,但是做好就很难了。明星出个轨,公布个恋情分分钟就会让你瘫痪,这不是产品,营销,资本能够解决的问题,这是技术才能够解决的问题。你会做微博不是能力,你能让微博不瘫痪才是能力。

前几天在知乎上看到一个问题特别有意思,问:做一个微信很难么?有一个回答很对,说:做一个微信,10个人用不难,100个不难,让近10亿的用户用,就难了。此处省略一万字,这个话题要是聊透,其实能够还写一篇文章。

02

面试准备

我在前面说了,面试惨不忍睹的就是由两个问题导致的,一是,没有认清自己;二是,没有了解公司。总结成一句话就是准备不足。

我们既然了解了面试准则,就应该对症下药才行,这样才不至于惨不忍睹。大公司既然重基础,那么面试前一定要好好学习和准备一下这方面的知识。干什么事之前,一定要充分了解情况,古人说的话,还是挺对的,毕竟是2000多年来总结出来的经验,面试就是战场,知己知彼才能百战不殆。

举个例子:小猿在一家创业公司从事了两年的 Android 开发,能够独立开发一款软件,技术还是可以的,效率挺高的,总能快速完成经理交给的任务,平时也会在 GitHub 上提交一些开源代码,分享了一些开源库,star 数五六百,好的上千,熟悉使用 RxJava,Retrofit等网络框架,还会 MVP,MVVM 这样的架构。

感觉自己去 BAT 这样的公司面试没问题,可是,还是被打击到了。人家回复说:学习能力,开源精神都挺好的,就是基础太差。看到了吗?会使用框架,封装个简单的库,能够做出产品来并不是多大的能力,做好是需要基础的。

上面的例子的问题,典型就是不了解自己,也不了解大公司的套路,准备不足,所以才失败的。平时学习的时候,应该要知其然知其所以然才行,然后再多学学算法,原理和一些计算机基础就更完美了。并不是会做就行,基础扎实,才能做得更好。

要想成就不败金身,那我们就一起来知己知彼一下。那大公司到底喜欢面试什么样的问题呢?我该如何准备呢?我通过朋友了解到,总结之后就两点:算法和原理。说这些都是概念,来点实际的,给大家举一些例子:

  1. 翻转一个单项链表
  2. 合并多个单有序链表(假设都是递增的)
  3. 堆排序过程,时间复杂度,空间复杂度
  4. 快速排序的时间复杂度,空间复杂度
  5. HashSet与HashMap怎么判断集合元素重复
  6. 逻辑地址与物理地址,为什么使用逻辑地址
  7. 一个无序,不重复数组,输出N个元素,使得N个元素的和相加为M,给出时间复杂度、空间复杂度。手写算法
  8. 二叉树,给出根节点和目标节点,找出从根节点到目标节点的路径
  9. 数据结构中堆的概念,堆排序

10. 图:有向无环图的解释

11. LRUCache原理

12. ThreadLocal 原理

13. HashMap源码,SpareArray原理

14. Https请求慢的解决办法,DNS,携带数据,直接访问IP

15. https相关,如何验证证书的合法性,https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解

16. 是否熟悉Android jni开发,jni如何调用java层代码

17. Android系统为什么会设计ContentProvider,进程共享和线程安全问题

18. RxJava的功能与原理实现

19. 适配器模式,装饰者模式,外观模式的异同?

20. 静态内部类的设计意图。

21. 多线程:怎么用、有什么问题要注意;Android线程有没有上限,然后提到线程池的上限

22. 点击事件被拦截,但是想传到下面的view,如何操作?

23. Android中进程内存的分配,能不能自己分配定额内存

24. 序列化的作用,以及 Android 两种序列化的区别。

25. 前台切换到后台,然后再回到前台,Activity生命周期回调方法。弹出Dialog,生命值周期回调方法。

好了,就先举这些例子,以上的问题来自于 BAT ,小米,滴滴,360,今日头条,爱奇艺等。你们先感受一下,是不是会被虐呢?通过上述面试题大家也基本看到了,有算法,有原理。

你只要在面试前,认真准备,充足准备,应该不会有多大的困难。其实大部分程序员面试大公司失败的原因是自己准备不足。大公司去校招成功率比较大的原因是大学学的一些基础没有忘掉,而现在的你,只注重实战,而不注重基础。但是在拼技术的时代,基础很重要,基础和原理懂得的更多,做的东西才会更加牢固。

03

积累才是根本

前面说了,通过了解面试准则,面试准备,那都是一种临时抱佛脚的方法,让你快速面试成功的一种捷径罢了。其实平时的学习和积累才是根本。通过了解大公司的要求,我们在小公司也应该时刻严格要求自己,不要只注重实战,不要不在乎性能而仅仅去说我实现了就好。

我们在平时的工作和学习的过程中,要时刻保持学习之心,不仅仅注重业务的实现,有时间拿起书来看看基础和原理,了解一些源码,多做一些思考,其实总会慢慢进步的。

再啰里啰嗦的举个例子吧,比如:你最近看到社区里流行使用 MVP 模式,你就会去看一下 MVP 后,找一个开源的模板,下载下来,自己也开始用,不要仅仅停留在使用上,你应该思考:为什么大家都喜欢使用 MVP 模式?这样做的好处是什么?我还能在这样的基础上做优化吗?举一反三的把自己问倒,打破砂锅问到底要用到自己身上。

总结

说一千道一万,不如自己去行动。要想在移动互联网的下半场是自己占有一席之地,那就得从现在开始,从今天开始,马上严格要求自己,既重视业务实现能力,也重视基础和原理。基础夯实好了,高楼才能够平地而起,稳如泰山。什么高并发导致的崩溃啊,什么明星绯闻啊,你的前端不怕,后端更不用怕。下次吹牛可以这么说:三对明星同时出轨,我的程序也不会瘫痪。

时间: 2024-10-03 08:58:08

移动互联网下半场的面试真经,让你进入 BAT 不再是梦的相关文章

写给产品人:互联网下半场,我们应如何应对?

一.背景 又是一年年关将至了,纵观2018年各互联网大巨头都发布了To B战略,开始纷纷宣布进军B端市场,可以说今年是个鲜明的标志的一年.无可厚非我们可以看到互联网确实进入了下半场. 那下半场的到来时对于我们,尤其是对于C端产品人的挑战具体是那些呢?在新市场环境下我们又能去做些什么呢?让我们来一个个看. 二.互联网下半场的挑战 在互联网进入下半场的竞赛后,当下对于各个产品体系来说已经不是简单的完成产品载体设计就行了,以往的那种搭一个XX平台就上线的选手变得越来越难以生存. 理由也很简单,经过将近

2019Android74道高级面试合集(含BAT字节跳动等等)

前言 最近半年,常常有人问我 "Android就业市场究竟怎么样,我还能不能坚持下去 ?" 现在想想,移动互联网的发展不知不觉已经十多年了,Mobile First 也已经变成了 AI First.换句话说,我们已经不再是"风口上的猪".移动开发的光环和溢价开始慢慢消失,并且正在向 AI.区块链等新的领域转移.移动开发的新鲜血液也已经变少,最明显的是国内应届生都纷纷涌向了 AI 方向. ? 可以说,国内移动互联网的红利期已经过去了,现在是增量下降.存量厮杀,从争夺用

互联网的大动荡时代已来临!BAT站队不可避免?

携程最近资本动作不断.继上周斥资4亿美元收购多年老对手艺龙37.6%股份,成艺龙最大股东后,携程日前又获得大股东.全球最大的在线旅游企业Priceline 2.5亿美元投资. 根据双方协议,此次携程与Priceline的合作采用了可转债形式,作价2.5亿美元,新的可转债发行后,计入总共两次可转债可转换的股份,Priceline将持有约10.5%的携程总流通股. 携程还表示出加强与Priceline合作意愿,携程称包含此次发行的可转债及2014年8月发行的5亿美元可转债在内的携程股份,Pricel

值得2019年创业的互联网项目 小程序创业月入10万不是梦

如今移动互联网创业依然成为趋势,这让更多的创业者有更广泛的项目可以选择,整个国内都踊跃出一股创新创业氛围的感觉,从城市到乡镇都升腾着无法抑制的创业激情. 虽然现在互联网创业项目有很多,但是还是想分享下做互联网创业项目之前的一些建议: 1.千万不要刚入门就做资本性质太强的项目,这种项目资本相对投入较多,比如说,你想开个什么商铺,对于2019年的现在来说要开一个商铺的话需要花费大量租金(租金基本没有一个月一交),大量的转让费(少说好几千,多说几万上至几十万),装潢,进货,总体算下来的话最少则几万,多

互联网进入下半场,逐鹿江湖成败关键取决于年轻用户

日前,腾讯发布了2016年最新年报,年报显示,2016年腾讯收入1519.38亿元(219.03亿美元 ),比上年同期增长48%.此前阿里巴巴.百度也已发布2016年年报,阿里巴巴2016年的营收达到1438.78亿元(209.17亿美元),紧追腾讯之后,百度2016年营收为705.49亿元(102.56亿美元). 由此可以看出,当年凭借搜索引擎独步中国互联网的百度,如今落下阵来.其中最为主要的原因就是百度在移动端的搜索引擎不再成为移动互联网的最核心入口,它已经被微信取代. 除了搜索,过去在PC

揭秘一线互联网企业 前端JavaScript高级面试

作为前端开发者对JS并不陌生,但真正做到深入理解与高级应用,这正是面试过程中对高级前端工程师岗位的硬性需求,目前也是大多数前端开发者的弱点.本课程把前端JS高级的知识点从起因到原理.进行渐进式讲解,让你顺利拿下前端高级JS面试难题,巧过面试关! 全面解析BAT企业前端JS面试,BAT前端工程师亲授,全网独家视频讲解前端JS高级面试中的各种问题.扩展你的JS知识深度 初级前端也能学 涉及前端高级的知识点从起因到原理,渐进式讲解.为你讲透每个知识点,应聘BAT企业轻而易举 轻松应聘BAT企业的前端高

互联网裁员潮下,500强与国企再受青睐

春节回来没多久,余明(化名)就从同事口中得知公司已口头下发“裁员指标”的消息.“指标”在口口相传中,略去了原因.背景和标准等内容,变得十分简单明.易理解了——要求每个部门必须走一个人. “司龄”不足半年的他,原以为必是这把裁员刀下的亡魂.没想到的是,部门内有个同事因个人原因辞职,部门负责人私下告诉大家,尽量把那个离职的同事算在裁员的名额内. “这批没赶上,但我很可能在下一份名单上.”焦虑并没有因为这次虎口脱险而缓解,“半年前,我被猎头从世界500强被高薪挖到这里,据说底薪是同级别中最高的.你想,

BAT Androidproject师面试流程解析+还原最真实最完整的一线公司面试题

尊重原创,转载请写明原文出处:http://blog.csdn.net/sk719887916/article/details/47040931 (skay) 求职和我们每一个人息息相关.而求职也有门道.好的发挥和技巧也许能让我们以压倒性优势在面试中胜出,可能我们技不如人,可是我们的综合能力假设优秀的话,企业也愿意招这种人,因此我将自己亲身经历的BAT和其它知名互联网的面试经验分享给大家.让有技术的人展现获得展现自我的平台,前几天在网上一搜,一系列的百度面试题,我特别兴奋,点击练链接一看,差点给

面试官的七种武器:Java篇

起源 自己经历过的面试也不少了,互联网的.外企的,都有.总结一下这些面试的经验,发现面试官问的问题其实不外乎几个大类,玩不出太多新鲜玩意的.细细想来,面试官拥有以下七种武器.恰似古龙先生笔下的武侠世界中的七种武器.下面我为各位一一道来. (欢迎转载.转载请注明出处:http://www.cnblogs.com/hzg1981/) 长生剑=语言基础 长生剑是七种武器之首,同理,编程语言的考察也是技术面试中最基本的.这条不满足的就直接Pass了.以Java为例,语言的考察大致可以分为三个层次: 初级