最近已经不止一位做Android开发的朋友吐槽,2020年,真的有点玩不下去了。
连一些曾经一度年薪60W+,带团队独立操盘大型APP开发项目的朋友,最近在面试的过程中也是各种力不从心。
谈到这个问题,很多人会说,疫情是影响行情的一个重大因素。但在我看来,疫情其实只是一个催化剂,绝大多数移动开发者,到了2020年这个关口,已经面临着一场更为根本的危机。
一个2011年转行进入Android行业的朋友坦言,5年前自己轻轻松松就能同时拿到4个大厂offer,充足的带团队经验和项目经验,让他感觉自己完全已经是在行业内能够指点江山的人物。
结果,最近去面试了七八家公司,全是一面挂!甚至面试的过程都是一种煎熬。去滴滴面试,一开始被问了几个很简单的问题,诸如BroadCast有哪几种,怎么注册,还感觉被侮辱了智商。
但接下来的问题却越来越让他傻眼,每一个看似简单的问题,不断往下深挖到原理层面,自己就一知半解了:广播通信的原理是什么?一时被问懵,只能说不知道。
接下来一连串的问题就更是噩梦了:事件分发机制里,view层的方法跟事件分发有关的是哪几个,做什么功能,举例滑动冲突的解决思想?measure具体的绘制,onlayout的实现是怎么放子view的?网络tcp/IP协议,Socket通信原理,socket复用机制底层实现原理?
这种面试现场一问三不知的体验,让他非常难受。自己之前引以为傲的带团队做项目的经验,现在反而有点尴尬。在面试官眼里,分配任务、组织团队学习谁不会?但每个项目背后的源码和原理,你真的吃透了吗?
是如今的面试官都以虐人为乐了吗?显然不是。大家要明白面试官为什么要这么做,需要从更深层次来看待这个问题:移动开发行业加速提高门槛,不仅是一种必然,而且未来几年还会变本加厉。
时代需要的是创造者,而不是一个敲代码的搬运工。
大家都知道,十年前,一个Android开发人员,只要有一定的java语法基础,应聘上Android开发岗位就不是件难事,根本没有面试会追问原理一说;五年前,你只要能CV百度来的代码完成工作,套别人的模版做出一个APP,也有机会找到一份工作。
但如今,你要是不会Kotlin、混合开发、跨平台开发、NDK、高级UI等流行热门技术,都不会好意思说是做这一行的。前几年,我也一度非常迷茫,每面试一次,都不断发现自己新的短板,然后在焦虑当中试图去补足一个个零散的知识点。
但补来补去就发现,如果自己没有一个成型的知识体系,这种东拼西凑的方式永远只能是捡到芝麻丢了西瓜。知识体系就好比储物柜,零散的知识点就好比我们想要储存的物品,只有收纳得井井有条,才能随取随用。
而要构建知识体系,没有任何捷径,唯一的办法就是深入掌握原理。未来的技术更新速度越来越快,只有懂原理的开发人员才能快速举一反三。再者,随着AI时代的来临,只会CV的“搬运式”程序员也必将会被人工智能取代,留给人类操作的岗位将只剩下程序设计者、高级构架师等。
在Web时代,用户不知道自己要找什么或者忘记网站名字,都不是很紧要的事情。但在移动APP时代,哪怕像游戏这样类型,起码也要挤进排名前100,99%以上的APP沉在应用市场里暗无天日。
当然,大厂的强大营销力量和运营能力,能够让他们的APP始终排名前列。但即便如此,用户的时间和手机内存空间总是有限的,金字塔最顶端的今日头条和腾讯,也要每天不断为争抢用户眼球而拼个你死我活。所以,不断创新早已经不止是理念问题,更是关乎存亡的现实问题。
在这个背景下,各大互联网公司的面试官不在面试过程中对你深挖原理,你觉得是不是太失职了?
首先你得有一个清晰的进阶路线图帮你理清思路,这样才不至于在学习的过程中迷失方向:
其次,为了让大家少走弯路,我结合自己多年以来的android开发经验,给大家分享一下独家私藏的阿里P7级别的Android架构师全套学习资料,主要包括阿里、字节跳动、腾讯、华为、小米等一线互联网公司主流架构技术。
以上7大专题,每个专题里都是全套的学习视频。如果你有需要,可以关注后私信【学习】找我领取。
当然,除了日常的学习之外,找工作之前,BATJ各个大厂的面试真题也是必刷的,下面这些资料,我也会一并无偿分享给正在求职路上的你:
Android架构视频+BATJ面试专题PDF+学习笔记
我相信,这些资料,一定能帮助大家早日走出迷茫,找到理想工作。
引用知乎答主jsonzheng的一个回答吧
问:程序员应该关注哪些技术?
答:
应对这个问题的办法只能是:抓住不变量。
底层知识永远都不过时。算法数据结构永远都不过时。基本的程序设计理论永远都不过时。良好的编码习惯永远都不过时。分析问题和解决问题的能力永远都不过时。强大的学习能力和旺盛的求知欲永远都不过时。你大脑的思维方式永远都不过时。