楼主: 大眼珠子123
跳转到指定楼层
上一主题 下一主题
收起左侧

[自我提升] [AMA]如何成为iOS开发准大牛

   
🔗
 楼主| 大眼珠子123 2021-1-5 13:33:32 | 只看该作者
全局:
今天聊聊iOS面试中xcode实操的环节。
. ----
最近几年,越来越多的公司,面试iOS engineer的时候,会弄一个xcode的session,一般耗时1到2小时,正常情况onsite的时候,一般公司会提供个装好xcode的笔记本,然后现场动手。最为常见的题目就是按照要求,现场build一个app,根据不同公司的偏好,往往会涉及UI,network request,animation以及少数的UI互动。.google  и

常见考察点包括
  • xcode熟练度
比如画个UI,能不能找到UIButton给拖到storyboard上。弄个UITableViewController能不能三下五除二的就搞定了。这里面有一个最常见的考察点就是是否正确理解UITableView/UICollectionView cell reuse的概念,我还真见过有不少候选人其实没搞明白这些东西。另外,不少大厂在实际工程中,并不会使用storyboard。得理解为什么要做这样的选择。不过,面试时还是优先考虑用storyboard吧,毕竟比手写代码快多了。
.
  • 能不能搞定一个简单的restful 的http request/response
不少大厂的话,实际很多工作中并不会使用restful的API,不过面试中,一般到还是用restful API,一方面是大多数候选人都用过,然后debug起来也算是方便。.
这里面有些小细节,比如是否注意处理error case,并不是说一定要十全十美的处理error,通常onsite这点时间不足以处理这些error case,但是至少要展现出理解network request是会有各种error可能性大,至少加个TODO也是好的。
还有response回来的时候,最好不要再main thread来做数据decode,以及能明白为什么不要这么做。这里面通常就会涉及到怎么使用GCD的问题了,如果GCD基础没理解对,这里也很容易暴露出问题。
然后restful 的json decode,iOS其实有好几种方法,准备阶段,可以多考虑下那种方式在面试时会比较省时省力。

  • 简单的多线程
有的题目可以就会涉及一些多线程了,这个没什么太多好说,得靠知识和积累的积累。

  • Animation
onsite现场不一定会考察太复杂的animation,不然时间不够,不过基本的放大缩小,漂来漂去肯定还是需要会的。然后followup question可以聊聊多种不同的animation实现方式优缺点之类的也就挺不错的啦。

  • code style
    . 1point 3acres
通常面试时间都是很紧张的,几乎没有候选人能写出完美的code,不过即便是时间不多,尽力把code整理的顺眼点也是能体现能力的。面试官最不想看到的就是从头到位就是所有代码都在一个文件里,然后连最基本的MVC都不试图弄一下。


一个xcode session不见得有时间完成所有这些内容,面试官往往也会有选择性的排列组合一下,比如一个restful API回来一个list的数据,然后UITableView把这个list的数据画出来,有个title,有个网络图片啥的。这都是非常常见的xcode面试题目。

总体而言,xcode面试题目套路远没有算法题这么多变,限制1,2小时之内可行的考察点也就这几种,也都是日常工作中基本都会用到的。平时多多积累,准备时有针对性的练习练习,然后面试时,注意时间,优先写完基本框架,app能跑起来,然后在补充细节就挺不错的啦。
回复

使用道具 举报

🔗
xxnooryesxx 2021-1-6 06:08:07 | 只看该作者
全局:
突然想问一个问题
我司的pod的架构都是用ruby写的script,每次更新跑一下就行了非常方便
还有就是project setting里面其实挺复杂的
我觉得pod跟setting算是比较底层的架构了,但是其实工作中也没什么机会动那里,不过我觉得学会底层才能算一技之长
还有就是multi-module interaction目前也是就用一下架构的func,但是具体怎么来的也是迷迷糊糊. .и
想问问lz这些要怎么进行学习呢?
回复

使用道具 举报

🔗
 楼主| 大眼珠子123 2021-1-6 12:54:08 | 只看该作者
全局:
xxnooryesxx 发表于 2021-1-6 06:08
突然想问一个问题.google  и
我司的pod的架构都是用ruby写的script,每次更新跑一下就行了非常方便
还有就是project ...
. 1point 3acres
这个其实有点鸡生蛋和蛋生鸡的关系了。 ..
. .и
cocoapods 是一个很常用的工具,业内大多数公司都会用这个。Google/Facebook有自己的一套,也是很不错的。

project setting等怎么config,和复杂的pod应该怎么setup,的确是大多数iOS engineer不见得会接触太多的部分。大多数codebase里面,基本上项目开始搭架子的时候就把这些给搞定了,然后日常维护基本上就是增量调整一下。除非有机会从头开始一个codebase,不然很少有机会把这些坑给踩一遍。然后没有这些经验的话,往往搭架子的时候也不见得会让你来弄。某种意义上就陷入鸡生蛋蛋生鸡的矛盾了。

我个人觉得,这些算是比较偏门的经验点,没有太多锻炼的机会也就算了,真的需要的时候,边做边学也不是不行。除非是专门去做iOS dev tool的组,一般也不见得真的会这么需要这方面的技能点。大部分iOS engineer还是着重build iOS app方面的技能,如果有哪个公司面试过程中会太在意这些东西,我还是会非常意外的。

回复

使用道具 举报

🔗
 楼主| 大眼珠子123 2021-1-6 13:06:02 | 只看该作者
全局:
xxnooryesxx 发表于 2021-1-6 06:08
突然想问一个问题. 1point 3acres
我司的pod的架构都是用ruby写的script,每次更新跑一下就行了非常方便
还有就是project ...
. .и
"学会底层才能算一技之长",这个要看"底层"的定义了,如果是UIKit内部是怎么work的,Swift和OC相互之间是怎么call到一起的,GCD到底是啥东西,这些进阶知识点,对于更好利用这些框架完成任务肯定是非常有帮助的。
.google  и
至于xcode build每一个flag都是什么用处,或者怎么自动生成xcode proejct之类的,实际工作中往往并不是特别essential。实际项目上,如果实在是不会,往往也都有替代技术方案。
. check 1point3acres for more.
多学点肯定没坏处,我推断有兴趣看这篇文章的都是跟你我差不多的普通资质的engineer,毕竟目前这些话题都还是比较浅的。普通资质的码农,多关注点主流的最常用的东西,对于求职实用性而言其实是时间效率比较高的。

评分

参与人数 1大米 +1 收起 理由
xxnooryesxx + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

全局:
楼主,我也做了大概一年iOS开发,公司比较大,做的东西scope也非常小,具体app的架构都非常成熟了,总觉得工作中学到的东西并不足够自己提高。像您提到的很多东西,我都不是很熟悉。我是不是应该在工作之外提高一下其他的知识面?还是说慢慢在工作中积累?
回复

使用道具 举报

🔗
 楼主| 大眼珠子123 2021-1-11 05:46:02 | 只看该作者
全局:
Liuzhiyu 发表于 2021-1-6 17:24.1point3acres
楼主,我也做了大概一年iOS开发,公司比较大,做的东西scope也非常小,具体app的架构都非常成熟了,总觉得 ...

工作之外积累和工作中积累并不矛盾。其实关键点在于公司的整体技术水准如何,如果公司本身就是一线大厂,那么一般而言,一线大厂的整体技术水平是有保证的,大厂里面有可能scope比较小,但是并不妨碍自己看着已有的框架学习和思考,尤其是方法论层面上的积累,为什么大厂要有这种方法论,这是为了解决什么问题?有啥pros/cons,适用场景是什么?如果自己看明白了还没法想明白的话,至少大厂里也不会缺大牛级的任务,虚心学习请教下一般人家也都是乐意的。

如果公司整体技术水平比较差的话,尤其是外包行业的公司,通常的确没啥值得学习的东西,往往就是低水平重复而已,从提高技术的角度而言,的确就得靠自己工作时间之外去学习积累点东西,不然长期下去作为码农的确会有远忧。从乐观面对的角度而言,技术水平差的公司,能够存活下来的话,肯定就有技术之外的过人之处,总之三人行必有我师。自己肯用心观察,总是能学会点东西的。-baidu 1point3acres

回复

使用道具 举报

🔗
Xeroryeleoi 2021-1-21 07:10:55 | 只看该作者
全局:
想请问一下楼主对于react native vs IOS objective-c/swift的看法。感觉现在很多公司都在开始使用react native来develop android和ios app,这个是不是更接近web development?会对于传统objective-c/swift ios developer有影响吗?还是大部分tech stack还是共享的可以很好上手?感谢!(backend eng + mobile小白, 在考虑转ios中, 但是又担心ios长期发展会变窄)
回复

使用道具 举报

🔗
 楼主| 大眼珠子123 2021-1-21 09:59:13 | 只看该作者
全局:
Estheroy 发表于 2021-1-21 07:10.google  и
想请问一下楼主对于react native vs IOS objective-c/swift的看法。感觉现在很多公司都在开始使用react nat ...

react native vs IOS objective-c/swift 是一个非常热门的争议话题,太多太多吵架是来自于这个话题。这两者是差别非常大的技术方向,大多数公司都只会选择其中一个技术栈。.1point3acres


react native,好处的确是类似于web开发,可以随时deploy更新,然后iOS和Android还可以共享很多code。

objective-c/swift,好处是原生态解决方案,OS层面都会支持的很好,然后通常用户体验也容易做的更好,没有啥做不出来的效果。. 1point 3 acres

作为初学者的话,两者都是很有就业前途的技术方向,都有大把大把的工作机会招人的。可以结合自己的情况挑一个学,其中共享的knowledge并不是特别多。如果自己公司里面已经有一个正在使用了,照着学着做就是最好的上手方式。如果是学生状态的话,看看身边有没有能够请教到的会iOS的人,跟着人家学一样的技术栈,也容易请教问题。-baidu 1point3acres

以下为个人观点:
我的职业轨迹走的是objective-c/swift的技术路径,并没有在职业上有机会实践太多react native的技术路线。所以有些观点可能会有些偏颇。
个人认为,objective-c/swift是一个比较适合新手入门的技术方向,毕竟是Apple推荐的技术思路,大把的教程都很容易找到。站在Apple的角度而言,Apple其实并不是很喜欢react native这样脱离Apple掌控的思路。个人观点,react native有适用场景和流行空间,但是远没到可以缩小objective-c/swift engineer就业空间的地步。所以不用太担心长期下去objective-c/swift没人用之类的。

.google  и. check 1point3acres for more.


. 1point3acres

评分

参与人数 1大米 +1 收起 理由
Xeroryeleoi + 1 谢谢解答!

查看全部评分

回复

使用道具 举报

地里匿名用户
🔗
匿名用户-OWBLB  | 添加认证 | 2021-5-2 01:46:39 来自APP
真的是一篇好文,现在求职市场mobile开发需求很大,毕业生会ios的真的不多。年轻人总觉得backend好像高大上,不知道谁给的错觉
回复

使用道具 举报

全局:
匿名用户 发表于 2021-05-01 10:46:39. Waral dи,
真的是一篇好文,现在求职市场mobile开发需求很大,毕业生会ios的真的不多。年轻人总觉得backend好像高大上,不知道谁给的错觉
entry level可以,再往上走mobile的上限远不如infra
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
职场达人
  • ↑ 本版用于讨论职场各种干货话题,闲聊请去🔗聊聊或者🔗匿名版
  • ❌ 本版严禁水贴,引战,发布广告,拉群,贴个人联系方式,扣分无警告
  • ☑ 求职、面经等去 🔗北美求职和 🔗回国求职大区,刷题和学习请去 🔗终身学习大区
  • ☑ 请去专版发布 🔗内推, 🔗招聘信息,和讨论 🔗创业内容
  • ☑ PIP / DevList/ Need Support 等话题也已开设 🔗专版

本版积分规则

>
快速回复 返回顶部 返回列表