写给应届生:客户端开发真的要被劝退了吗?

最近又看了下脉脉,出现了不少劝退客户端的声音。比如

在这里插入图片描述
什么东西一旦押韵了,好像都挺有道理的样子。

好奇地搜索一下,的确有些不对劲:

在这里插入图片描述
在这里插入图片描述
看了几个帖子,总结下来劝退的理由有这么几个:

  • 客户端开发在走下坡路,就业市场在缩小
  • 前端抢走了很多客户端的活
  • (针对客户端+前端)天花板低,很难做到高级别
  • 现在客户端面试问的很偏很难,难度很大

客户端的需求在缩小,这确实是一个事实。

移动互联网创业热潮早已经过去,一方面没有那么多新创业公司涌现了,另一方面互联网也有赢家通吃,大厂更大,小厂生存空间越来越窄的苗头。当年知道什么是weak,会写个TableView就能拿个15k的iOS开发offer的好事情已经没有了。

不过,一个市场是买方市场还是卖方市场,从来都是需求和供给两方面决定的。而技术人才的供给,相比需求存在一定的滞后。从一个领域需求火爆,到大批新人学成进入这个领域,中间会有几个月到几年的时间差。可能这个时候需求变化更快,火爆行情已经过去,新进入的人就会面临窘境。比如在移动互联网最火热的2015年很多人去学了iOS开发,然后发生了2015年股灾,地主家也没有余粮,创业公司没有投资人的输血纷纷倒闭,转过年这批iOS新人发现:

在这里插入图片描述

但反过来想,客户端开发领域已经经历了这么一轮高开低走,现在没人愿意学了,但市场上的需求,其实并没有消失,很多大厂依然需要客户端。于是就迎来了一轮市场行情的反转,很多大厂不得不想尽办法招揽应届生做客户端,供不应求,招聘时就不得不略微放放水,比往年要求降低一些。这难道不是一种机遇吗?

有人担心即使现在上车了,以后客户端领域路会越走越窄。如第2点所说,前端抢走了很多客户端的活。开发原生客户端需要iOS、Android各开发一个App,成本的确更高。很多公司的业务用小程序就完全能够承载了。

其实手机这个平台有一个很有意思的现象,它没有像桌面平台一样,绝大部分应用都从客户端转向了Web。现在大家用电脑,除了Office三件套、Adobe全家桶这种专业软件,大部分的时间都是在用浏览器。而手机就不同,大家每天在用的是App,移动端浏览器用的并不多。

个人觉得,这种差异主要是因为手机和电脑人机交互的差异。

电脑上信息输入主要靠键盘和鼠标。而手机就丰富多了,触摸屏、摄像头、话筒、还有GPS、气压计、陀螺仪等丰富的传感器。要利用好这些硬件提供的信息,势必需要访问手机操作系统提供的各种API,这种场景下Web就远远不如原生了。比如要做需要处理音视频输入的应用,就只能用原生。

另一方面,用户在移动端主要依赖触摸屏操作,Web页面手势操作的体验不如原生。另外Web的入口是网址,在移动端用软键盘输入网址远远不如PC键盘方便。

因此,Web在移动端比较适合做重展示、轻交互的应用,比如电商,外卖。但重交互、需要处理多媒体信息的应用都会选择原生,比如短视频。

另外Web的交互体验始终和原生有一定差距,所以重视体验、对成本不敏感的大厂都不会放弃原生开发,Facebook曾经尝试过纯Web实现App,后来也回归原生了。相反,大厂会投入大量人力优化体验,除了需求开发,会专门投入人力做性能优化、稳定性、架构、安全、基础设施等方面,每个方向都有相当的技术深度供你挖掘。

因此,对于应届生来说,如果志在一线大厂,客户端的需求规模并不是一个问题。

再说天花板问题。据说在阿里,P8以上后端占多数,这的确给人一种客户端天花板低的感觉。

但阿里这种情况,有其业务特点的因素。阿里是做电商的,电商系统的复杂度在于订单、库存、支付这些复杂业务逻辑的处理和高并发的挑战。这些部分都是后端在处理的,前端/客户端只是用户操作的入口,大佬多后端合情合理。

但有些业务类型,比如短视频App,很大一部分复杂度在于用户的创作和观看的体验(当然还有后端的视频服务、并发支撑和推荐算法),这部分都是客户端在支撑的,尤其是视频拍摄和编辑,有相当的复杂度。因此在短视频团队中,客户端的重要性和电商团队相比就会重要的多。这种团队客户端开发就会有更多机会走上更高的位置。

另外说句老实话,P8以上的能有几个,大部分人不需要想这么远。

说到最后一个问题,客户端社招面试的难度。

  • 可能是一种认知偏差,难道大厂的前端后端面试就不难吗?
  • 如上面所说,二三线公司的客户端需求的确变少了,所以市面上主要是大厂在招聘,那么统计意义上整体难度确实提高了,但同层次的公司面试难度则未必。
  • 和15年比确实变难了,但15年的情况并不是一种常态。

说了这么多,我个人觉得客户端绝对不像那些劝退言论说的是个大坑,相反,对现在的应届生来说,是个不错的进大厂机会。很多大厂校招都不要求任何客户端开发经验的,只要基础知识扎实,代码能力过关就行了。

最后分享一下字节大佬整理的Android中高级面试题锦集答案,文末直接获取

第一章 Java方面

  • 第一节 Java基础
  • 第二节 Java集合
  • 第三节 Java多线程
  • 第四节 Java虚拟机

在这里插入图片描述

第二章 Android 方面

  • 第一节 Android 四大组件相关
  • 第二节 Android 异步任务和消息机制
  • 第三节 Android UI 绘制相关
  • 第四节 Android 性能调优相关
  • 第五节 Android 中的 IPC
  • 第六节 Android 系统 SDK 相关
  • 第七节 第三方框架分析
  • 第八节 综合技术
  • 第九节 数据结构方面
  • 第十节 设计模式
  • 第十一节 计算机网络方面
  • 第十二节 Kotlin方面

在这里插入图片描述

第三章 音视频开发高频面试题

  • 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?
  • 怎么做到直播秒开优化?
  • 直方图在图像处理里面最重要的作用是什么?
  • 数字图像滤波有哪些方法?
  • 图像可以提取的特征有哪些?

在这里插入图片描述

第四章 Flutter高频面试题

  • 第一节 Dart部分

    • Dart 语言的特性?
    • Dart的一些重要概念?
    • dart是值传递还是引用传递?
    • Dart 多任务如何并行的?
    • 说一下 mixin?
  • 第二节 Flutter 部分

    • Flutter 特性有哪些?
    • Flutter 中的生命周期
    • Widget 和 element 和 RenderObject 之间的关系?
    • mixin extends implement 之间的关系?
    • Flutter 和 Dart的关系是什么?

在这里插入图片描述

第五章 算法高频面试题

  • 如何⾼效寻找素数
  • 如何运⽤⼆分查找算法
  • 如何⾼效解决接⾬⽔问题
  • 如何去除有序数组的重复元素
  • 如何⾼效进⾏模幂运算

在这里插入图片描述

第六章 Android Framework方面

  • 第一节 系统启动流程面试题解析
  • 第二节 Binder面试题解析
  • 第三节 Handler面试题解析
  • 第四节 AMS面试题解析

在这里插入图片描述

第七章 企业常见174道面试题

  • 1.SD卡
  • 2.android的数据存储方式
  • 3.BroadcastReceiver
  • 4.sp频繁操作会有什么后果?sp能存多少数据?
  • 5.dvm与jvm的区别
  • 6.ART
  • 7.Activity的生命周期
  • 8.Application能不能启动Activity
  • 9.Activity的状态都有哪些
  • 10.横竖屏切换时Activity的生命周期

在这里插入图片描述

有需要的自己白嫖扫码领取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值