iOS程序员面试笔试真题库
上QQ阅读APP看书,第一时间看更新

经验技巧10 名企iOS工程师行业访谈录

某知名互联网公司研发工程师访谈录

1.当前市场对于iOS程序员的需求如何?待遇如何?

就笔者所在的互联网公司来说,因为现在产品基本上是移动端先行,所以对iOS程序员的需求量还是挺大的,而iOS程序员的待遇基本与同级其他岗位(除算法岗外)无差别。

2.iOS程序员未来的发展方向如何?

对于发展方向而言,我的个人感觉还是要看iOS程序员个人的成长路线以及以后的发展目标,iOS这个行业的前景和市场需求目前还是比较光明的。

对于不同层次的iOS程序员成长路线和发展方向,我觉得可以分为以下几个方面的内容。

1)独立App开发。

2)业务能手,业务逻辑抽象。

3)SDK功能组件开发。

4)跨端技术Weex、React—Native等。

5)底层研究、iOS汇编、性能、网络、安全等研究。

6)端上机器学习(Core ML)和AR(ARKit)这些新技术也很有发展前景。

总之,iOS程序员并非要局限于iOS开发本身,条条大河终入海,iOS程序员要以iOS开发为入口,不断深入计算机领域,努力走在计算机科学技术发展的前端。

iOS的行业前景主要依赖于iOS、iPhone本身的发展以及App Store的生态,目前看起来,iOS的行业前景无须担心,它们都还处于上升期。大公司的iOS研发其实一直缺人,但是满足条件的开发者较少,由于现在行业新产品发布时Web版可以考虑不做,但是移动端是一定要有,所以,市场对iOS程序员的需求量还是很大的。

3.iOS程序员有哪些可供选择的职业发展道路?

我认为可以大概划分为以下两个路线。

1)一个是UI线,在大业务中专门负责业务页面搭建,沉淀UI组件。

2)一个是基础架构线,主要实现网络、高可用、App架构等。

4.企业在招聘时,对iOS程序员通常有什么要求?iOS程序员的日常工作是什么?

企业在招聘时,主要还是考察求职者对iOS开发基础知识的掌握情况,例如对Objective-C和Swfit语言的了解,对App运行机制的了解,对基础Framework以及业界知名的第三方框架的了解等,还有一部分较为重要的就是求职者的软素质,例如学习能力和沟通能力等。

iOS程序员的日常工作大概可以分为以下几类。

1)最主要的还是业务页面的搭建,已有业务页面的维护。

2)基础组件(网络、UI等)的编写维护,第三方组件的接入和升级。

3)iPhone机型以及iOS系统适配。

5.要想成为一名出色的iOS程序员,需要掌握哪些必备的知识?有哪些好的书籍或是网站可供推荐学习?

一名出色的iOS程序员的必备知识基本与招聘要求是一致的。

1)Objective-C和Swift的基础知识。

2)UIKit和Foundation两个库的使用。

3)iOS App以及iOS的运行机制。

对于学习书籍,由于我个人看得比较少,所以这里我就不推荐了,而我主要是通过以下几种方式来学习提升的。

1)苹果(https://developer.apple.com/documentation)和第三方库的文档。

2)优秀开发者的博客,例如:喵神(https://onevcat.com/)。

3)阅读GitHub优秀开源项目的源码。

某知名互联网公司研发专家访谈录

1.当前市场对于iOS程序员的需求如何?待遇如何?

因为iOS开发入门的门槛相对较低,虽然当前市场上入门级的iOS开发已经饱和了,但是对于iOS的中高端人才需求缺口仍然很大。而待遇方面的情况可以参考各类招聘网站的信息,在此就不透露我个人以及我所在企业的薪酬体系了。

2.iOS程序员未来的发展方向如何?

手机现在是人们生活中必不可少的工具之一,所以iOS程序员的发展前景非常乐观。现在互联网公司的主要业务都依赖于App进行操作和发展。此外,移动互联网已经深入到生活的方方面面,现在仍然有大量的公司业务只能在计算机端办理,非常不便利,这也是手机端业务的机遇和挑战。整体的市场需求对于移动开发是非常巨大的。

3.iOS程序员有哪些可供选择的职业发展道路?

1)一直钻研型,成为在某一领域专精的优秀iOS专家。2)工作几年之后,由于经验丰富,又熟悉业务成为iOS项目经理,逐渐进入管理层。3)自主创业,转型去讲课或者转型去出书,成为一名自由工作者,按需求提供咨询服务等。

4.企业在招聘时,对iOS程序员通常有何要求?iOS程序员的日常工作是什么?

首先,iOS开发需要扎实的计算机基础知识,包括基础的算法和数据结构,常用设计模式、网络通信协议、数据安全等;其次,要求iOS基础扎实,能够熟练使用常用的UI组件和网络组件,具有优秀的代码设计能力,避免开发中犯一些低级错误;了解各个常用框架的实现原理、网络性能、数据库性能、h5加载调优,精通hybrid开发,有App的架构设计能力。

程序员的日常工作主要是通过自己优秀的代码设计能力,快速高效、高质量地完成业务开发,并能够攻克遇到的一些棘手问题,提升自己的能力。

5.要想成为一名出色的iOS程序员,需要掌握哪些必备的知识?有哪些好的书籍或是网站可供推荐学习?

现在iOS开发呈现出大规模的集成化,除了App的整体架构设计的能力之外,网络通信、数据库、数据安全、消息同步、缓存设计、动态性hybrid、webview调优、日志记录、性能监控、数据埋点、crash上报、自动化测试、视频处理、图像处理等,都是App非常核心的功能,专精其中两三项就已经是一名非常出色的iOS工程师了。

我对iOS的书籍关注较少,网站推荐GitHub。