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

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

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

说着说着,好像有点二八定律的感觉。NO,上面的 80% 和 20% 是我自己的不完全统计,不必当真,举个例子而已。具体关于程序员应该选择大公司还是小公司,请大家移步我的这篇文章《程序员是该选择大公司,还是小公司?你会如何抉择呢?》。

面试准则

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

进一步解释一下,为什么我在上面说:现在已经逐步进入拼技术的时代了?首先,移动互联网刚刚兴起的前 10 年是一个高速发展,高速扩张,野蛮收割的时代,就是不论技术好还是差,只要能够马上做出产品来就好技术,就会通过营销,运营,资本等手段获得用户,而获得用户,占领市场之后,就到了拼技术,拼品质的时代了。而现在移动互联网的下半场就是一个拼技术的时代了。举个简单的例子,微博,你做出来很容易,但是做好就很难了。明星出个轨,公布个恋情分分钟就会让你瘫痪,这不是产品,营销,资本能够解决的问题,这是技术才能够解决的问题。你会做微博不是能力,你能让微博不瘫痪才是能力。前几天在知乎上看到一个问题特别有意思,问:做一个微信很难么?有一个回答很对,说:做一个微信,10 个人用不难,100 个不难,让近 10 亿的用户用,就难了。此处省略一万字,这个话题要是聊透,其实能够还写一篇文章。

面试准备

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

我们既然了解了面试准则,就应该对症下药才行,这样才不至于惨不忍睹。大公司既然重基础,那么面试前一定要好好学习和准备一下这方面的知识。干什么事之前,一定要充分了解情况,古人说的话,还是挺对的,毕竟是 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,今日头条,爱奇艺等。你们先感受一下,是不是会被虐呢?通过上述面试题大家也基本看到了,有算法,有原理。

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

积累才是根本

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

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

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

总结

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

欢迎大家关注我的公众号:非著名程序员。每天都会在里面分享技术文章和编程经验,是我们移动开发者的聚集地。特别声明:未经允许,禁止任何形式的转载!

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

  1. 移动互联网下半场 iOS 程序员面试真经,让你进入 BAT 不再是梦

    前言: 其实说实话,作为程序员,最起码得有 80% 的人都想进入大公司工作,比如:BAT ,小米,滴滴,今日头条,美团等这样的大公司或者移动互联网界的明星企业. 进大公司的好处显而易见,福利好,待遇高 ...

  2. 《互联网思维独孤九剑》:互联网思维,让你日赚斗金不再是梦

    我给互联网思维下了个定义:在(移动)互联网.大数据.云计算等科技不断发展的背景下,对市场.对用户.对产品.对企业价值链乃至对整个商业生态的进行重新审视的思考方式. "独孤九剑"是华 ...

  3. 2021字节面经最新整理: 面试真经/思维导图/学习笔记!火遍全网

    前言 为什么要面试字节跳动? 近两年是中国互联网企业组织架构升级的大年,阿里.腾讯.小米.快手等知名互联网企业都进行了相应调整.2020年3月12日,字节跳动成立八周年之际,宣布组织全面升级,而这一消 ...

  4. 这份面试真经,成功让我通过字节四面(已offer)

    又逢"金九银十",年轻的毕业生们满怀希望与忐忑,去寻找.竞争一个工作机会.已经在职的开发同学,也想通过社会招聘或者内推的时机争取到更好的待遇.更大的平台. 然而,面试人群众多,技术 ...

  5. 互联网大厂技术面试内幕@霞落满天

    很多求职者往往并非因为技术不好,而是没有掌握面试的技巧导致不能把握机会,本课程的目的就是本课程先通过比较真实的好简历和不好的简历让大家明白自己的简历有哪些问题,事实上简历是大厂的敲门砖,非常重要,很多 ...

  6. 数据是互联网下半场产品人突围之道

    在互联网下半场的集体焦虑中,如何应对「产品趋同」与「机会变少」的挑战?在人工智能.大数据风口浪尖上,产品人应注意哪几点?对于创业者来说,任何一个新兴的领域都是无比残酷的,这意味着产品必须能够留住用户, ...

  7. Interview:算法岗位面试—上海某公司算法岗位(偏机器学习,互联网金融行业)技术面试考点之数据结构相关考察点—斐波那契数列、八皇后问题、两种LCS问题

    ML岗位面试:上海某公司算法岗位(偏机器学习,互联网金融行业)技术面试考点之数据结构相关考察点-斐波那契数列.八皇后问题.两种LCS问题 Interview:算法岗位面试-上海某公司算法岗位(偏机器学 ...

  8. Interview:算法岗位面试—上海某公司算法岗位(偏数据分析,互联网行业)技术面试考点之特征工程考察点

    ML岗位面试:上海某公司算法岗位(偏数据分析,互联网行业)技术面试考点之特征工程考察点 Interview:算法岗位面试-上海某公司算法岗位(偏数据分析,互联网行业)技术面试考点之特征工程考察点 导读 ...

  9. 互联网下半场的角逐,玩转轻资产的大数据服务 | 阿里云栖开发者沙龙大数据专场(北京站)干货集锦...

    2019独角兽企业重金招聘Python工程师标准>>> 2019年1月18日下午,一个晴冷的冬日,由阿里巴巴MaxCompute开发者社区和阿里云栖社区联合主办的"阿里云栖 ...

最新文章

  1. HBase 参考指南 3.0 翻译活动期待大家的参与 | ApacheCN
  2. Android进程级别
  3. python使用spark_apache spark - 在python中导入pyspark
  4. ycsb两个阶段说明
  5. 【Linux】Face Recognition的封装
  6. 【企业管理】14 项管理原则
  7. 谷歌云请更正这张卡片的信息_如何识别和更正Google Analytics(分析)报告中的(未设置)值
  8. 第九十九期:可以编写代码的代码:代码生成的利与弊
  9. Android缓存学习入门
  10. windows nginx 停止和启动_大数据离线项目实践之nginx服务器搭建
  11. iOS 开发:Method Swizzling
  12. Qt学习之Qt基础入门(上)
  13. Python 猴子补丁
  14. iOS 禁止横屏的解决方案
  15. ftp下载,6步掌握ftp下载软件的使用方法
  16. 一个参数在注塑行业的影响——“停留时间”
  17. 再观《一步之遥》观后感
  18. 如何制作全景图片,VR全景制作流程解析
  19. POJ 1753 Flip Game(递归枚举)
  20. 低成本打造初创团队的 DevOps 实践(采用 NAS中的KVM 承载 Gogs + Jenkins + Nexus 服务)【0x02】安装Nexus

热门文章

  1. 江海大作业(仅供参考,需要)
  2. 电商商品列表应以SPU还是SKU展示商品?
  3. Android怎么实现数字增减,Android实现数字跳动效果的TextView方法示例
  4. 【实践】信息流推荐算法实践 深入
  5. IE浏览器图片不显示,报DOM7009: 无法解码 URL 处的图像问题的解决方法
  6. 当代最值得收藏的画家作品_名人名画推荐,值得收藏的当代画家作品
  7. 软件测试工程师Linux笔试题及答案(三)
  8. AvaTrade · 爱华MT4软件下载
  9. future promise java_Future与Promise
  10. 昆明计算机ppt培训机构,师友互助实操培训(昆明)ppt课件.ppt