跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 准备 iOS 面试到崩溃
未分類
2020 年 5 月 29 日

准备 iOS 面试到崩溃

准备 iOS 面试到崩溃

資深大佬 : 20151024 3

现在还没来得及准备 Swift 、算法、Flutter 、RN 这些,这阵子在骑驴找马准备 OC 、iOS 相关的面试题。
杂七杂八的知识点真的非常多,而且由于 iOS 开发的从业者过多、岗位又被小程序蚕食,iOS 的面试向来都是造航母般地问原理、底层、源码(实际工作中很少涉及,比如 KVO 的原理、SDWebImage 源码)。很多都是属于应试背诵范畴的,本人现在工作四年多了,记忆力不比学生那会,即便完全建立在理解的基础上,一些专业的名词表达也是纯记忆。
另外,还要强行给现在的项目镀上特色,强行包装出项目的难点、代表性技术。
唉,需要每天清晨和睡前都要背一遍,不然现在的工作需求一来,停个几天,忘得就差不多了,又要重头再来,想裸辞后全职在家准备面试,又看到现在这么多人失业,所以没那个勇气,难受、心累。
大佬有話說 (99)

  • 資深大佬 : xiaotianhu

    招人,帝都 亦庄求 iOS 开发。。。详情看我帖子。。。

  • 資深大佬 : XVXVXXX

    加油!

  • 資深大佬 : wode82863790

    同是技术,懂你!加油!

  • 資深大佬 : wangyzj

    贵圈真乱
    好好搞 oc 不好吗

  • 資深大佬 : lonelymarried

    就是问一些名词。我开发 ios 这么久,都是记得英文,突然来个中文内省,wtf ?

  • 資深大佬 : StephenDev

    android 也一样。 java 深一点问虚拟机,kotlin 深一点问协程原理,然后还有 android app 和 Framework 的各种问题,再加上算法、网络、项目杂七杂八,准备面试真的难。

  • 主 資深大佬 : 20151024

    @lonelymarried 百了一下 iOS 内省,好了,又要多背一个考点
    @StephenDev iOS 和安卓难兄难弟

  • 資深大佬 : zilaijuan

    java 同感

  • 資深大佬 : loshine1992

    iOS 和 Android 今年应该都有点难

  • 資深大佬 : sxiaojian

    kvo 原理已经不算难了

  • 資深大佬 : waye121

    所有领域面试都这样
    造车的公司还问 Linux 内存管理
    若是半导体公司 倒也能理解
    哎

  • 資深大佬 : KeyboardManAnAn

    话说为什么要选择在今年跳槽呢?你这是刻意制造困难也要上吗?(狗头

  • 資深大佬 : onevcat

    我还以为这年头都是问二进制对齐优化和动态库挂载了…

    KVO SDWebImage 啥的还好啦,还算蛮常用的,至少比什么纯算法要简单 XD

  • 資深大佬 : jackchao7432

    兄弟,这要怪你自己了……都是很基本的题目,别跟年龄扯关系,你才多大…我也是醉了

  • 資深大佬 : sunnywqf

    iOS 现在这形势也只比 PHP 好一点了. 和主情况差不多的 iOS 开发

  • 資深大佬 : furlxy

    @onevcat 惊现喵神

  • 資深大佬 : p2p

    小哥哥找我 咱们试试不面试造

  • 資深大佬 : nieyujiang

    @onevcat #13 活捉喵神

  • 資深大佬 : RealKela

    @onevcat 拿出小本本记下来记下来

  • 資深大佬 : Deeer

    到最后一道算法题 压死

  • 主 資深大佬 : 20151024

    @KeyboardManAnAn 因为在这家实在忍不下去了,碰碰运气看能否跳成功
    @onevcat 我举的这俩例子确实还好,但 n 个这种问题同时要背,并且收到 offer 前 n 个问题都要背在脑子里,真的累
    @jackchao7432 我没说这俩题目难,背这俩我 1 小时搞定,难的是要背了后一直记着直到面试成功,而且还有 n 个题目背了后都要同时记着。我只是跟我以前的自己比较年龄和记忆力。

  • 資深大佬 : endlessJ219

    现在原生客户端都是大厂做,去大厂肯定是这样的,目前还做 ios 安卓的开发基本上都是 3,4 年以上经验的了,要求越来越高

  • 資深大佬 : jackchao7432

    @20151024 你说算法背我还能同情你一下,基础什么的还用背吗?平时都不积累的?

  • 主 資深大佬 : 20151024

    @jackchao7432 口头争论毫无意义,我还是用例子说话,还是上面的例子,kvo 原理,我先贴出标准答案: http://www.cocoachina.com/articles/22453 ;假如面试时问你 kvo 的原理,并且你没背过,你能完整地说出答案?简单地只说出个主要和大概能打动面试官、能 pk 得过完整背出来的竞争者?当然如果你是大牛当我没回复,我只是个普通求职者,跟你不在同个频道。

  • 資深大佬 : knowckx

    和主的感悟一样,现在的面试,很多技术要点都是要记忆性的,知识点多且杂。

  • 資深大佬 : lalala328

    @onevcat 活捉喵神,hiahia

  • 資深大佬 : ooops

    没做过 rn/flutter 之类的或者理解不深就不要准备。不如把 OC 搞深搞透,纯背的问两个题就看出来了,换个问法就不会答很减分的。

  • 資深大佬 : cornetCat

    说实话主的基础确实差了一点,平时可能不太看技术文章吧。
    类似 kvo 原理、block 原理、runtime 、runloop 、autoreleasepool 实现等等这种技术点这些年(近 5 年)出的文章太多太多了,15 年以前相关的文章确实少,但是这几年深挖技术细节的文章太多了(而且很多写的真的不错,通俗易懂),平时留心一点多看看,组里多组织一些技术分享,其实很容易掌握。
    不过正常工作确实用得不多就是了。

  • 主 資深大佬 : 20151024

    @ooops 感谢建议,是的我是在理解的基础上再背的;
    @cornetCat 首先我承认,我确实水平达不到大厂水平。但如果是因为我说的觉得背这几个理论知识点吃力,就得出结论我的基础差,这点我是有点难以接受的,我并不觉得这几个有多高深,只是觉得背它们并长久保存记忆难。可能我正文有点表达不明吧,我说的造航母并不是指它难,而是跟实际开发中应用的技术比起来,像是造航母的技术一样在实际生活中用不上。

  • 資深大佬 : jackchao7432

    @20151024 唉,算了不跟你争了,兄弟,还是多提升自己吧……

  • 主 資深大佬 : 20151024

    @cornetCat 另外补充一点,我并不认为这 5 个是 iOS 技术的基础,在我的观点里,它们只是激烈的面试竞争的产物,属于面试题中的基础。在中小厂实际开发中,分别应用这 5 个的几个常见经典方法即可,并不需要知道它们的原理,当然知道了肯定更好,至于知道后的实际帮助有多少,我就不好说了。

  • 資深大佬 : txx

    @onevcat 二进制对齐优化是什么…动态库挂载又是什么….

  • 資深大佬 : cornetCat

    @20151024 我个人的经验,知识点不是靠背的,是靠理解,理解之后知识点之间联系起来形成一个系统的框架,这样就算不记得细节,大的脉络是可以记很多年的,当回头需要面试的时候随便看看一些面试题就能串回来。这样反而不怕面,可以引导面试官往其他脉络上走,让他看到你系统化后的知识储备。
    背题的追问几个问题就露馅了。
    另外,我曾经就为了加深记忆,把看完的技术文章用大白话跟老婆复述一遍,效果挺好的,推荐你可以试试。

  • 資深大佬 : jackchao7432

    二进制重排-缩小包体积,动态库挂载-热修复

  • 資深大佬 : onevcat

    @txx 是一些面向 PPT 和 KPI,但是实际上似乎没什么用的魔法!

  • 資深大佬 : jackchao7432

    @txx 说错了,二进制重排-提升启动速度

  • 主 資深大佬 : 20151024

    @cornetCat 感谢建议,但我想说,你建议的方法,也是我一开始行动的方法。我还是举 kvo 原理的例子,2 年前那次准备面试时,我已经对 kvo 原理理解利很透彻了、背得也很滚瓜烂熟了,结果入职后被需求缠身,不久后照样忘掉 70%,虽然再看一遍后能在半小时内迅速拾起记忆、马上理解、并且背得滚瓜烂熟,但问题是面试时不会只问一个 kvo 原理,我还要同时应对其它 n 个类似的偏向记忆的面试题,而且这些面试题在实际开发中应用作用不是特别大,就觉得准备面试很累。当然每个人记忆能力和记忆方式都不同吧,记忆方面确实是我的短板,这也导致我生活的习惯是一想到事情就记到某款笔记 app 里,然后每天清晨和晚上看一下 app,知道今天要做什么。

  • 資深大佬 : txx

    @onevcat 一点了喵大还没睡..可见和大大的差距…

  • 資深大佬 : txx

    @jackchao7432 为啥动态库挂载可以热修复呢?

  • 資深大佬 : vnex

    … 我倒是觉得问算法题,倒是比较容易搞定,但是问 SDWebImage 之类的,可能就搞不定了额。。。我 iOS 原生开发是 4 、5 年前有在开发,那时候 runtime 什么的倒是了解,现在已经不记得了。然后最近两年开发 golang,去了解了下 go 的调度、内存回收什么的。。。收到的新的 offer 是前端开发的,估计过两三年 go 的也要忘光了

    但是算法,比较通用,面试的难度一般都是问快排、topk,归并,动态规划,比较通用

    不过,我可能领域深入的会不够

  • 資深大佬 : efaun

    @20151024 #37 给你讲个哲理 准备 iOS 面试到崩溃

  • 資深大佬 : HeapOverflow

    ios 原生开发为什么要 flutter

  • 資深大佬 : ohao

    远程工作有需求吗? 我这边筹备很久了

  • 資深大佬 : z281874655

    你写的这些问题。。。都是最基本的吧,15 年就在问了,问这些的工资给不到太高,顶天 25

  • 資深大佬 : z281874655

    @vnex 干嘛又去搞前端,go 工资溢价那么高,

  • 資深大佬 : Leonard

    同觉得这些没用,我之前准备面试的时候也背过,当然也是理解背诵,现在只记得个大概了,工作里基本用不到。
    没办法,现在移动端供大于求,只能提高面试门槛,即使这些门槛在工作里用不到。

  • 資深大佬 : luckyrayyy

    既然是抱怨,我也借贵宝坑抱怨一下 Java,真内卷到爆炸…面试的东西都是现背的。
    要背 Java 语法、特性、多线程、锁、动态代理、泛型、反射。这是基础,应该的。
    要背 Java 容器源码,HashMap 、HashTable 、ConcurrentHashMap 。大致原理也算基础,应该的。但是还得背初始值 16,负载因子 0.75 ,数组多过 64 且链表大于 8 变树小于 6 回链表。并发包里一堆源码,AQS 得背,LongAdder 得背,原子类和工具类也得背。
    要背 Java 虚拟机,内存结构,对象创建,类加载,GC 方式 GC 流程,死锁定位 oom 分析。
    要背 Java 框架,SpringBootSecurityCacheDataMVC 先来一圈,关键源码背一背。MyBatis 原理、缓存了解一下。
    要背 Web 服务器,Nginx Tomcat 原理背一背,基本配置背一背,引申出来计算机网络基础再背一背。
    要背六大设计原则 23 种设计模式,对抽象能力确实有帮助,忍了。
    要背 MySQL 锁,有行锁表锁独占锁共享锁意向锁间隙锁临键锁,要背事务,扁平事务长事务分布式事务 2PC3PC,要理解存储方式,b 树 b+树,表块叶行,redo log undo log bin log slow query log,最后还得会优化。
    要背 Linux,基本架构,常用命令,shell,遇到过现场白板写脚本。
    要背 Redis,数据结构底层结构,常用用法分布式锁,得抢救缓存雪崩缓存穿透缓存击穿,得搭建集群主从复制哨兵模式 cluster 。
    要学架构,垂直切分水平切分流量控制升级降级分布式微服务 servicemesh 。容器学一学 k8s 整一整。

    正好复习了一遍,爽。

  • 資深大佬 : From313

    – 同 4 年 iOSer 同 OC
    – 我真的搞不懂原理啥的。。。我不用的话我就老忘。。所以就为了面试背。。
    – 去年 8 月我入职了一个公司,到现在一行 iOS 相关的代码没写过。一直在弄 Java 和微信小程序。。。
    – 现在好多 iOS 开发的岗位都要 Flutter RN 这种,缩减成本。
    – 面试造火箭,工作拧螺丝
    – 主加油

  • 資深大佬 : JavaIO

    加油,你行的

  • 主 資深大佬 : 20151024

    @z281874655 #31 里我对它们的定位阐述过了
    @Leonard 唉,所以我现在的想法是下家找相对不那么坑的,能让我待久点,这样就可以减小面试频率
    @luckyrayyy 互勉,加油
    @From313 谢谢
    @JavaIO 谢谢

  • 資深大佬 : toooo

    大厂优质的资源和职位是有限的, 就必须增加这些额外条件来筛选
    高考学的大部分知识实际生活有用吗? 只不过是一种淘汰手段罢了
    选择一些不那么好的职位, 你会发现没那么难的. 但追求好的职位你就要付出一些代价.

  • 資深大佬 : Batmand

    @luckyrayyy 漏了一个算法,除了背题还要刷题,搞定了这些,可以进大厂了

  • 資深大佬 : vnex

    @z281874655 二线合适的机会比较少

  • 資深大佬 : zjddp

    用过的第三方还是得看看源码的

  • 資深大佬 : aino

    @Batmand #52 不会吧 不会吧 这些会的你以为就能进大厂吗?我感觉现在 java 去面试都问这些,很多很乱

  • 資深大佬 : skye

    @onevcat 跟着喵神学编程

  • 資深大佬 : timelessg

    给一些不成熟的联系,对我很有效,首先是简历,不要罗列技能树,要写清楚做了啥解决了啥有啥收益,对自己简历上写的一定要准备好,2,把面试题整理出一个体系,分门别类的看,遇到看不懂的不要死抠多看些不同的文章,遇到好的文章尽量把作者的博客都翻一遍,掘金是个不错的网站,3,gayhub 上有可以 debug 的 runtime,gnustep,对着面试题打断点使劲看,不然很多面试题是解决不了的,4,本人算法菜

  • 資深大佬 : vnex

    其实,go 这边的面试也越来越变态了,从一开始的 slice 要注意的点,到 go 的内存回收 mpg 调度 map 的实现,再到 channel 的底层实现以及 go 的内存模型。。。

  • 資深大佬 : luckyrayyy

    @Batmand 害,对,还是还想着写上常见的算法来着,写着写着忘了

  • 資深大佬 : cd2want

    @onevcat 喵神呐~

  • 資深大佬 : NoHair

    坐标深圳,4 年 iOS,mj 底层班下刷了一遍,你说的原理我都能讲个 7788,4 月底被裁,面了十来家,一个 offer 没有
    一个是招人确实少了,我之前做 IOT 相关的,很多公司会拿需求匹配度和过往项目经历筛人,再一个我薪资要的偏高
    游戏公司的招聘比较多,SDK 开发 组件化 网络优化啥的我又不太熟悉
    flutter/RN 确实相对多了

  • 資深大佬 : CoderGeek

    @luckyrayyy emmm 看得我哭笑不得

  • 資深大佬 : CoderGeek

    @luckyrayyy 最气人的是 面进去可能让你转 go 写前端 哈哈哈哈

  • 資深大佬 : luckyrayyy

    @CoderGeek 哈哈哈哈倒是真见过

  • 資深大佬 : yeqizhang

    @luckyrayyy 前提要数组 64 吗?涨姿势了……话说我还被问过线程安全的 List,被问到 redis 底层结构时我懵了……我还被问过数据库架构……

  • 資深大佬 : yeqizhang

    @luckyrayyy 就算都回答上了然后工资还可能给不起,挑便宜的。最后看看你的学历专业,项目经历。

  • 資深大佬 : luckyrayyy

    @yeqizhang 长度不到 64 的时候碰到大量哈希碰撞会优先扩容数组,而不是转成树。线程安全的 List 可以用 CopyOnWriteArrayList 或者 Collections.synchronizedList() 处理一下。Redis 底层结构是常见的面试题了,也是硬背就完事了…数据库架构如果说的是 MySQL 的什么缓存、语法分析器、优化器、存储引擎这种架构的话,那的确够偏门的…

  • 資深大佬 : qyizhong

    什么? KVO 的原理、SDWebImage 源码这些不都是 iOS 应届生都得会的东西吗[捂脸]

  • 資深大佬 : Yuannnnn

    学就完了

  • 主 資深大佬 : 20151024

    @toooo 是的,想要得到别人得不到的,就要付出别人不愿付出的
    @timelessg 感谢建议,但对于第 1 点我想说简历如果不多写点技能、只写自己最有把握的技能,很大概率面试机会都没有
    @NoHair 加油,实在不行就降薪呗,唉
    @qyizhong 如果你是看了#21 、#24 、#29 、#31 、#37 的回复之后才评论的话,我只能回复你:是的,我连应届生都不如,祝你开心。

  • 資深大佬 : xiaowangge

    @luckyrayyy #47 可以去闲鱼卖 Java 面试服务了,你当面试官。每小时收费 200 元 准备 iOS 面试到崩溃

  • 資深大佬 : qyizhong

    @20151024 看完了全部帖子,get 到你的意思了,并没有这个意思哈

  • 資深大佬 : massacreformash

    建议出国,真的,iOS 在国内的生存环境太差了

  • 資深大佬 : luckyrayyy

    @xiaowangge 哈哈哈谢谢,新副业 get

  • 資深大佬 : qq2511296

    这些个什么原理,底层。开发中大多数时候用不上。很多并不是自己真正去研究探究的底层,只是看了看别人博客文章,记忆效果并不好。
    我跟主差不多,我找了 2 个月了,没找到啥合适的工作,有点不想干 it 了,就算还能再写几年 iOS 代码,到 35 左右怎么办? 摸鱼摸不了多久了,难受,迷茫啊

  • 資深大佬 : pheyer

    是这样的,根本原因就是你如果继续选择为别人而工作,就不得不接受别人的挑选

  • 資深大佬 : linqiang

    上次面试直接问内存对齐,动态库链接优化,内存映射

  • 資深大佬 : fanyingmao

    都喜欢面试造火箭,工作拧螺丝,然后进去之后发现代码写得不规范,框架设计低内聚高耦合,写没意义的代码,好想自己干不用别人给自己定价。

  • 資深大佬 : buzailianxi

    早晨看 晚上看 中午抄一遍,你做到一个月,熟悉的程度就可以了,面试的人也就网上看一下,问你的时候能说出来,就够了,除非真是个大哥,没遇到几个真玩明白且经常用的

  • 資深大佬 : Lfinesse

    只有我觉得 背就能搞定的事儿 就不是大事儿吗

  • 資深大佬 : linkoubian

    感觉有点过了。比如所谓 KVO 原理,理解上抓住两点,1 是子类化、2 是对 isa 的 swizzle,是不是就足够了?无论写多久的业务代码,都不会忘记真正理解了的内容吧。

  • 主 資深大佬 : 20151024

    @massacreformash 是的出国是一条出路
    @qq2511296 加油,我的想法是找没到到出路前,在这个行业能多干一个月是一个月,多干一天是一天,毕竟未来做什么都需要钱
    @linkoubian 是的,你说的这两点我也很难忘记,但脑子理解的东西、在面试时用口头表达出来,是需要包装和背诵的。对于初中级面试者,只简单地回答这几个字,我觉得是不能够打动面试官和 pk 掉竞争对手的

  • 資深大佬 : fffang

    @linqiang 内存对齐,动态库链接优化,内存映射
    其实还是背,面试官 80%也不懂,80%少了,95%吧

  • 資深大佬 : MonkeyBro

    看招聘不都是要 swift rxSwift flutter 嘛,这些不都是 N 年前的面试题了,背呗,还能咋样

  • 資深大佬 : fyxtc

    @Lfinesse 问题是背只是一部分,哈哈哈

  • 資深大佬 : gunavy

    面试复习背题很正常,不正常的是迟早有一天会背不动

  • 資深大佬 : luopengfei14

    @From313 恭喜你成功转行,还是在职转行。

  • 資深大佬 : loarland

    理论上的东西突然问道还真不一定能说的头头是道 – -!

  • 資深大佬 : busfool

    正在背 Java 面试题呢 既然都是纯记忆了 打算试试按记单词那一套来

  • 資深大佬 : gggxxxx

    国内风气都这样。其实优秀程序员的主要特质是想象力,眼界和勤快。但是国内很多公司很喜欢这种擅长堆技术术语的人,其实大部分人写的代码不都是调用调用三方库编译点别人的开源代码。真正创造力还是比较欠缺

  • 資深大佬 : gbcl520

    程序员为难程序员,不过不问这些问题,怎么知道你的实力呢,面试本来就有一点应试的味道。

  • 資深大佬 : utyyyreee

    加油

  • 資深大佬 : lnim

    二年社招 试了下
    被问到了 二进制重排插桩~ 还有 block 签名 block signal
    劝退了

  • 資深大佬 : GromHellscream

    像刚入门的 Swift 新手怎么办…

  • 資深大佬 : lwlizhe

    FLutter 是必须的么?
    我是做 Android 的,感觉看了下面经还好,没怎么出现 Flutter,除非你简历中写到了 Flutter

  • 資深大佬 : gp370051630

    @NoHair 大兄弟,可以透漏下要的薪资水平吗?准备跳槽的突然有点慌

  • 資深大佬 : TanLeDeDaNong

    虽然不是移动端,但是今年大概都这样吧 哪个方向准备面试都很难,我的建议是哪有什么充分的准备,太累太难了。给自己一个期限将核心准备了,剩下的交给命运吧

  • 資深大佬 : NoHair

    @gp370051630 我在拉钩 boss 都是投 15 以上的,一般往 18 20 的要
    我前两段工作都是 IoT 行业相关的,制造业因为贸易战+疫情是个什么样你也清楚
    招聘需求上还是游戏行业+音视频处理相关的多,另外 flutter+rn 也有一些,还有一部分强调实际的 swift 开发经验,这个我也没有,感觉现在坑少人多,我找的猎头也反馈 iOS 的岗位真的少,实力有自信,准备下算法就找人推大厂吧,海投除了能力可能还需要运气
    最后,今天终于有了个还不错的 offer,准备入职了

  • 資深大佬 : LowBCoder

    @luckyrayyy 同为 Java 的看哭了,确实是都是要背的…

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具