欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

给最近正在找工作(iOS)的朋友一些建议/经验

程序员文章站 2022-06-04 11:14:11
众所周知, iOS开发找工作越来越难, 企业要求越来越高,一方面是资本寒冬期+七八月是企业招人淡季, 另外一方面也是iOS市场饱和。最近有出去看新机会, 所以下面记录一下面试XimalayaFM的大概过程。 面试一共分为4轮,全程手写代码和算法。 一面:自我介绍, 然后问一下手头开发App日活和崩溃 ......

众所周知, ios开发找工作越来越难, 企业要求越来越高,一方面是资本寒冬期+七八月是企业招人淡季, 另外一方面也是ios市场饱和。最近有出去看新机会, 所以下面记录一下面试ximalayafm的大概过程。

面试一共分为4轮,全程手写代码和算法。

一面:自我介绍, 然后问一下手头开发app日活和崩溃率,接着开始问

1. 无痕埋点实现原理,手写方法交换代码;

2. 手写代码使用gcd完成: 先并发下载3张图片, 等3张下载完了再并发下载剩余3张, 这里可以使用dispatch_barrage栅栏来区分任务, 也可以使用信号量;

3. timer是否精准, 怎么使用精准的定时器…

4. runloop监听主线程卡顿: 使用observer监听主线程loop, 结合信号量

二面: 手写代码: log(a), postnotification(log(b)),log(c), 问打印顺序, 这里主要考察分线程和主线程的通知回调是否同步,然后又问了ui卡顿优化的问题;

三面: 考察了隐式和显式动画、如何实现圆形进度条、离屏渲染卡顿底层原理(垂直同步信号) 、事件响应链详细过程、socket建立连接详细过程,最后是手写单链表的反转代码;

四面: 主要考察算法: 手写冒泡排序,常用排序算法的时间复杂度, 以基准数偏移的有序数组的查找值为n的元素,要求时间复杂度o(logn)(这里可以利用二分法查找), 最后就问了一些个人职业发展以及现有团队规模问题, 再然后就是谈薪资…

 

总结: runloop runtime 常用排序算法 链表反转 查找等问题在面试二线大厂的时候基本是必考的点, 最近找工作的朋友需要多留意~