原文:How To Be A Great iOS Developer
如果你想成为一名 iOS 开发者,并且你想知道从哪里开始,那么你就来对地方了。
在本指南结束时,你会知道:
- 为什么在 2019 年值得成为一名 iOS 开发者?
- 专业的 iOS 开发者需要哪些关键技能(以及如何学习)
- iOS 开发者工作需要注意什么
- 如何准备简历,如何在 iOS 面试中胜出?
让我们开始吧!
如何成为一个优秀的iOS开发者:
- 2019 年 iOS 开发者的需求
- iOS 开发者必备的 11 项技能
- 如何选择最好的公司工作
- 你可以在哪里找 iOS 开发者的工作
- 如何培训自己,并准备简历
- 如何准备 iOS 开发者的面试
- 奖励 #1:iOS 面试题及答案
- 奖励 #2:iOS 开发者简历范例
- 奖励 #3:获得苹果认证
- 结论
第一章:2019 年 iOS 开发者的需求
让我们来谈谈 2019 年对 iOS 应用开发人员的需求。衡量这个问题的最好方法是查看 iOS 开发人员的平均薪酬,因为公司愿意支付多少薪水是需求与供应的一个重要标志。
以下是一些在线资源,可以让你粗略了解 iOS 开发人员在其职业生涯的每个阶段的平均收入。
- Payscale - 根据该网站的数据,iOS 开发者的平均年薪是 87,591美元(576,024 RMB)。如果你的工作经验不足一年,那么薪资定在 69000 美元左右。他们从苹果、IBM 和 Sapient 公司的员工那里获得了数据。
- DevSkiller - 该网站从其他网站整理了 iOS 开发者的平均薪资。从他们的页面中,你可以清楚地看到为 iOS 开发者职业的各个专业级别量身定做的薪资范围,从初级到高级。
- Glassdoor - 这个以发布公司评论而闻名的网站透露,iOS 开发者的年平均基本工资在 10.7万美元/年。当然不差! 那些刚入行的 iOS 开发者通常平均能拿到 8.4万美元,而那些已经是高级别的开发者通常能拿到约 14万美元的年薪。
抛开薪水不谈,我们来看看其他一些事实。
Swift 编程语言已经取得了巨大的成功!自 2008 年苹果推出 App Store 以来,已经创造了超过 200 万个 iOS 开发者的工作岗位!
如果你认为应用会消失,那就再想想吧。根据 Appinventiv 的这篇文章,预计 2021 年应用下载量将达到 3530 亿次。
最后,苹果每年都会发布新的产品和平台,以对 iOS 系统的兴趣始终保持在较高的水平。
如果你也对此深信不疑,我们就来看看找一份 iOS 工作需要哪些技能吧!
第二章:iOS 开发者必备的 11 项技能
不得不说,作为一名 iOS 开发者,培养自己的技能是一件永无止境的事情。
苹果每年都会推出新的 Swift 框架和 Xcode 版本。
支持 iOS 开发的新的第三方库和服务也在快速涌现。
工具会不断变化,但如果你的核心技能很强,你就能学会使用任何新的工具、框架和流行的库。
Youtube Video
在我看来,以下技能应该是 iOS 开发者的工具箱:
1. Xcode
不管你爱它还是恨它,Xcode 都是 iOS 应用开发中使用最广泛的集成开发环境(IDE)。基本上来说,只要花一天时间学习 Xcode 教程后,Xcode 是非常容易掌握和使用的。然而,Xcode 也有许多更深层次的功能,一个实力派用户可以挥洒自如。
学习如何使用高级调试功能、测量应用程序性能的工具以及所有的Xcode 键盘快捷键可能需要数年时间才能掌握。
2. Swift
我会把赌注放在学习 Swift 编程上。
有些公司仍然在寻找 Objective-C 开发人员,但那些职位通常是为了支持一些用 Objective-C 编写的遗留应用,这些应用已经通过多个开发人员传承下来(哎!)。
既然苹果一直在推进 Swift 的发展,那么作为 iOS 开发者,开始学习Swift 而不是 Objective-C 是一个更明智的决定。
3. 构建用户界面
除非你能够编译......一个应用程序,否则你不能真正称得上是一个应用程序开发者,对吗?这意味着,如果你想称自己为 iOS 开发者,你必须知道如何将一个半体面的用户界面(UI)放在一起!问题是,构建应用程序的 UI 有多种方法。
麻烦的是,构建一个应用的 UI 有多种方法。例如,你可以使用苹果自己的教程中使用的 interface builder 和 storyboards。或者你可以用编程的方式来构建你的 UI。最后,你可以采用 SwiftUI,苹果最新的声明式 UI 框架。
Youtube Video
在使用 storyboards 或以代码方式构建 UI 之间,最好掌握两种方式的技能。根据我的经验,以代码实现 UI 是最好的方式,但也有一些公司100% 使用 storyboards,还有一些公司使用两者之间的混合。如果你想增加你找到 iOS 开发者工作的机会,请确保你能两者兼备!
SwiftUI 还处于起步阶段,很多公司并不是很快速地采用未经验证的技术。然而,现在学习 SwiftUI 对你的未来来说是一种投资,因为这是苹果的发展方向,跟着走才是明智之举。
4. 设计资产的整合
通常在专业的软件开发环境中,你会与设计师合作,设计师会给你图形资源,让你将其整合到应用中。
一个好的 iOS 开发者将能够识别哪些设计元素实际上需要使用图形资产,而不是用 Swift 代码进行编程造型。
如果无论你使用图形资产还是用代码进行造型,所产生的外观都是一样的,那么后者是首选,因为它比在屏幕上加载图片更快。
如果需要的话,一个专业的 iOS 开发者还应该能够对标准的 UIKit 元素进行样式设计,或者创建自定义控件。如果你不熟悉,我推荐你使用 Design+Code 课程来学习如何做到这一点!
5.网络框架和 API 的使用
如果你不熟悉 JSON(JavaScript Object Notation),那么要想获得你梦想中的 iOS 开发者工作将是一个挑战,JSON 是迄今为止,让你与第三方 API 和数据源合作时最常见的数据格式。
你应该知道你的苹果网络类,如 URLSession,以及常见的网络库,如 Alamofire。你应该能够使用 Codable 或 JSONONSerialization 来解析你下载的 JSON 数据。
6. 多线程编程(GCD)
许多 iOS 开发者知道主线程与后台线程的区别,但实际上却对[Grand Central Dispatch](GCD)一无所知。
然而,了解 GCD 以及 iOS 并发性的底层工作原理将真正展示你作为 iOS 开发的专业性。
7. 使用数据库
有这么多不同的数据库选项,很难知道如何使用所有这些选项,但了解其中的一些选项会很有帮助。
看看在 iOS 应用中最常见的数据库选项上刷刷技能。
一些流行的可以考虑的是 MongoDB,Firebase 和 Realm。
8. 集成第三方库
有些 iOS 开发团队会信誓旦旦地表示不依赖第三方库,但我认为大多数团队都会使用第三方库。
事实上,使用第三方库可以极大地加快开发周期。去选择那些经过时间考验的、一直在持续更新和维护的库。
这意味着你还应该知道如何使用 Cocoapods 或 Swift Package Manger 将 SDK(软件开发工具包)和库集成到你的 Xcode 项目中。
Youtube Video
9. 单元测试
如果这是你的第一份iOS开发工作,而且你之前从未在开发团队工作过,你会很快意识到单元测试变得多么重要。
随着多个开发人员互相提交代码到项目中,你一定会破坏一些功能。如果你很晚才发现这些被破坏的功能,那么这将是一场解开的噩梦。
这就是为什么创建一个测试套件来验证应用的功能会成为救命稻草的原因。作为任何编程语言的专业开发人员,请确保你至少知道如何编写测试用例!
10. 版本控制和其他团队协作工具
团队协作工具是雇主必须具备的技能,因为你很可能会在团队环境中工作。
确保你知道你的 git 命令,并且在你的 iOS 简历上将 GitHub 和 BitBucket 作为技能也无妨。下面是我们自己制作的方便你学习的 GitHub 教程!
一些iOS开发团队也会利用 lint工具,比如 Swift Lint 来确保整个开发团队的代码风格一致。如果你从来没有使用过它,我建议你花一个下午的时间去尝试一下,这样你就可以把它放在你的简历上。
用 Jenkins、Bitrise 或 CircleCI 进行持续集成是很常见的,但你可以在工作中学习它,所以如果你以前没有使用过这些,不要太担心。只需阅读一下它们是什么,以便在被问及时你可以聪明地谈论它。
Youtube Video
11. 设计模式
设计模式是简单的软件开发最佳实践,它们与编程语言无关。
这意味着无论你使用什么语言,它都会有用!
刷你的 iOS 设计模式,这样你就可以在编写代码时考虑到最佳实践。
如何选择最好的公司工作
理想情况下,你会希望得到 一份高薪的工作,有很好的指导和成长文化,并且重视用正确的方式做事。这将确保你可以作为一个 iOS 开发者在那里工作成长。
以下是一些你要避免的负面工作环境。
- 不切实际的项目期限--小心那些没有意义的时间表。如果一家公司倾向于设定紧迫的最后期限,那么它将会烧毁团队,并最终创造出一种 "不惜代价的结果 "的毒文化。
- 没有领导或导师--你想作为一个 iOS 开发者成长吧?好吧,如果只有你一个人,那就很难了! 寻找拥有经验丰富的开发人员的公司,这样你就可以互相学习。
- 不在乎把事情做对的领导--这通常与紧迫的截止日期齐头并进。偷工减料有时是必要的,但如果这是例行公事......那么你需要重新评估你在那里工作形成了什么样的习惯。
- 有毒和消极的团队文化--当领导层对员工不好时,文化就开始变得非常有毒。人们不会尽力而为,因为他们感觉不到自己的价值或动力。你绝对不希望加入这样的团队。
- 竞争而不是相互支持--人们一定会犯错误,我们都是人。然而,在这个成长过程中,团队是支持还是贬低?
那么如何避开这些危险信号,找到一家优秀的公司工作呢?
Glassdoor 再次发布了今年最适合工作的科技公司。为什么这些公司会上榜?
好吧,这里有一个总结,是什么让这些公司可以提供非常棒的工作?当你通过你的 iOS 开发人员求职时,这是你应该考虑的因素。
专业化
快速研究一下这家科技公司的专长是什么?为什么进入游戏领域?或者是进军电子商务?充分了解该公司的业务定位,不仅会在你的iOS开发者求职面试中帮助你,也会帮助你决定这家公司的专业技能是否符合你的兴趣和你目前的技能。
职业发展
大多数员工在觉得自己可以在职业生涯中取得进步时,都会留在一家公司。我相信你一定不希望一份iOS开发者的工作会让你的知识和技能停滞不前,所以不要犹豫,问问公司是否可以告诉你有什么职业发展的机会,以及年终如何决定晋升。
学习/发展机会
如果你想成长为一名应用开发者,请寻找有很多资深 iOS 开发者的团队。此外询问面试官,公司是否会帮你支付培训或会议费用。
如果公司有一个成熟的导师计划,最好是你能与经验丰富的导师合作,他将指导和挑战你成为一个更好的开发者。
平衡工作与生活
去年有一项研究表明,科技公司的员工职业倦怠是一个令人担忧的问题。不要忘了,当你的身体和心灵因为有毒的职场文化而失败时,那么你的业绩就会受到影响。所以,不要因为一份肥厚的薪水而影响你的整体幸福感。如果你的内心正在慢慢死去,你又怎么能享受到你辛勤工作的成果呢?如果可以的话,你可以向过去和现在的员工询问公司的反馈,并在提交简历之前做好调查。
雇员保留率
员工来来往往,但如果他们达到了惊人的数字,那么你也应该关注。数字不会说谎! 在 Glassdoor 等网站上查看员工对公司留下的评价,深入了解他们是如何流失或留住人才的。
如果只有一两个评论,你要抱着一颗盐的心态去看待,但如果是绝大部分的差评,那就是一个危险的信号。问题是,大多数不满意的员工都会发表评论。快乐的员工几乎不会这样做!
领导力
科技 CEO 和商业顾问马里奥-佩舍夫发表文章指出,在任何科技组织中,战略性、同情心和远见卓识的领导力都很重要。你的职业生涯在一定程度上取决于领导者如何将船驶向更广阔的天地。有效的领导者面包有效的领导者!
协作程度
创建最好的应用程序,并在应用程序开发行业中保持正轨,需要大量的团队合作和协作。在应聘各种科技公司时,一定要考虑团队的存在,各自的规模,以及他们的工作动态。不要犹豫,向招聘人员询问这些信息,以获得深入的了解。
第四章:你可以在哪里找 iOS 开发者的工作
Indeed 和其他招聘网站
利用像 Indeed 这样的工作搜索引擎的力量,找到你梦想中的 iOS 开发者工作!
Indeed 的一大特色是可以根据你的需求、技能和经验水平来定制工作搜索结果。只需在网站上上传或创建你的简历,根据你的位置浏览职位,然后根据你的要求过滤结果。
在 Indeed 这样的网站上找工作就是这么方便,只需要点击几下就可以完成!
自由职业者网站
如果你只是刚开始做iOS开发者,那么最好尝试一段时间的自由职业,这样你可以磨练你的技能,建立你的作品集,并收到客户的推荐,这只会增加你的机会。去Upwork这样的自由职业网站,试着在那里获得第一批客户吧! 如果你始终如一地提供令人满意的产出,那么这些客户甚至可以将你推荐给其他人,从而让你有机会提高你的费率和客户库。
社交媒体组
求职者国家调查报告 的最新结果显示,41%的年轻工作者更愿意在社交媒体上寻找工作。也就是说,有一大堆的 Facebook 群组,你可以加入,这些群组有定期发布 iOS 开发者的工作空缺。只要快速搜索一下就可以了! 你也可以利用这些平台,通过与当前的开发者和求职者同事联系,来拓宽你的人脉。你不仅可以了解到最新的工作机会,还可以从这些群组中分享的技巧和资源中获益。
学院/大学招聘网站
如果你还在上大学,或者你住在大学附近,那么你就不用走远了! 大多数大学和学院都有一个招聘板,你可以在那里浏览 iOS 工作。
在我的情况下,大学甚至有一个实习计划,所以我可以花一些学校学期的时间工作,而不是积累宝贵的工作经验。向你的学校就业办公室咨询吧!
招聘会
招聘会最大的好处就是,你可以真正和各个科技公司的代表进行交流,讨论 iOS 开发者的工作前景。你可以交换名片,存入简历,甚至可以当场接受面试! 所以一定要留意这些职业招聘会,因为参加这些招聘会会给你留下持久的正面印象。
请记住,这些招聘人员和代表总是会对他们的公司说些正面的话。我建议还可以看看该公司的员工评价,以获得更全面的了解。
职业介绍中心
当你只是在 iOS 开发者工作旅程的初始阶段时,不知道从哪里开始是可以理解的。应用开发工作的需求可能很高,但缺点是这些工作的竞争可能非常激烈。如果你需要帮助定制你的简历或从招聘专业人士那里获得合理的建议,那么请检查你所在地区是否有一个方便的职业安置中心。
个人推荐
查看你的社交网络,是否已经有业内人士可以帮助你踏入应用开发公司的大门。不要犹豫了,因为有时候,你梦想中的 iOS 开发者工作只需要一个聊天或私信就可以了!
公司官方网站
这是很直接的。你已经有了一份你想工作的目标公司的名单?然后继续访问他们网站的职业页面。然后,你会得到一个清晰的列表,他们需要一个特定的空缺,要么你已经有了,要么你仍然可以工作,直到你达到他们的最低标准。
第五章:如何培训自己,并准备简历
编程,编程,编程
雇主在将 iOS 开发者的工作托付给你之前,会先看你的技能发展轨迹是否扎实。而在这方面,相信我,坚持是有回报的! 不管你只有几个月的经验,还是一年的经验,都没有关系。到最后,坚持练习的人,才是赢家。正确的态度会让你走得更远! 所以,不要灰心,只要不断地与人交流,并随时将你的进度和项目记录在 Github 上,以资证明!
建立一个坚实的工作组合
这是一篇数据驱动的文章,强调了 雇主重视经验而非教育 的事实。简而言之,雇主总是在寻找你能胜任iOS开发者工作的证据,就这样。这就是为什么对于刚毕业的学生或没有或只有最低限度编码经验的人来说,被录用是很有挑战性的,这是可以理解的! 所以我们再次回到自由职业来解决这个问题。开始为小客户做迷你项目,直到你的核心技能变得更强,你的客户库变得更大。现在,这才是扎实的进步吧! 哦,别忘了 把你的作品放到 Github上,这样你就可以让你的优秀编码闪亮登场了。
练习你的面试技巧
招聘者永远不会知道你能为你枪毙的 iOS 开发者工作提供什么,除非你能有效地传达它们。面试不仅仅是为了得到一份工作而回答快速的问题,相反,它是一种联系的方式,向未来的雇主展示你的价值。如果面试是你最害怕的事情,那么不用担心! 在本文后面,我们将分享一些最好的在线资源,可以帮助你准备那场重要的技术面试。
参加会议或研讨会
不要对那些会议或研讨会的邀请皱眉头。如果你有空、有能力,就去吧! 你不仅能够了解iOS开发者工作行业的最新趋势和技能,还有可能碰到现在和未来的导师和行业专家,他们可能就会帮你联系到合适的人或公司。这比整天呆在房间里更好的消磨时间,对吧?
拓宽你的职业选择
在职业选择上,雇主们很看重那些灵活多变的人。你可能一开始没能得到那份iOS开发者的工作,但也许你可以考虑先做其他身份的工作,只是为了让自己的脚步更稳健?也许你在那家科技公司暂时做质量保证?那么一旦你证明了你能提供什么,那么从一个职位到另一个职位的内部调动总是比较容易的。
第六章:如何准备 iOS 开发者的面试
准备面试可能会让人紧张,但在做了几次面试之后,你会变得更加自如,因为你会知道会发生什么。
除了只具备技术能力,还有一些一般的面试礼仪和最佳实践,你也应该刷刷刷。这篇文章就讲了很多这些比较微妙的面试技巧。
准备一个电梯式的推销
电梯广告是一个20到30秒的快速介绍,介绍你作为一个专业人士的身份。你的自我介绍应该简洁而清晰,足以给人留下持久的正面印象。
你只有几秒钟的时间来给人留下一个很好的第一印象,如果你一出场就结结巴巴,磕磕绊绊,那就会让面试陷入困境!
了解公司
研究和阅读关于你要面试的公司,这样你就可以向面试官展示你做了功课。
任何人都可以做到这一点,但事实上,你确实做到了,这表明你喜欢有备而来,这很好地反映了你的性格和职业道德。
更好的是,如果你能证明你为什么想在那里工作的强烈理由和激情。如果有个人原因,比如公司如何给你的生活带来了改变,一定要分享!
展示一个相关项目
是时候谦虚地吹嘘一下你所做的那个你最引以为傲的项目了! 不要只陈述积极的一面,相反,要更真实、更有亲和力,也要强调你最初面临的挫折,你是如何克服它们的,以及因此而发生的事情。这样一来,招聘者就会深入了解你在压力下的思维、学习和行为,也会了解你是如何领导和与他人良好合作的。
做模拟面试
去找你的那个好友或导师,练习一下接受面试吧! 这些人最了解你的优缺点,所以要挑战他们,让他们问你最常见的、甚至是他们认为会绊倒你的困难问题。这样做将为你提供一个非常宝贵的机会,让你获得反馈,提供更好的答案,并解决恼人的态度。
这里也有一些服务,你可以在那里做 模拟 iOS 面试,在真正的交易之前练习。
奖励:iOS 面试题及答案
看看这些在线资源,可以帮助你搞定iOS技术面试。
- Toptal--自由职业者招聘网站 Toptal 列出了14个基本的iOS面试问题(含答案),这些问题将挑战你解决问题的能力(即发现并修复一个bug)和基础知识(即指定UIView元素布局的方法)。我们也鼓励大家提交问题
- Upwork--另一个巨大的自由职业者中心 Upwork,也公布了他们至关重要的10个iOS面试问题和答案列表,让你为 iOS 开发者的面试加油。这个列表的好处是,答案还包含了如何处理每个问题的提示。
- Workable--他们清单上的问题是为了帮助面试官识别最佳人才而设计的。在技术问题的基础上,他们还列出了招聘人员通常向应聘者提出的最常见的行为问题。技术知识虽然重要,但还不够。你还需要拥有正确的态度和心态,才能在iOS开发者的职业生涯中获得长久的成功。
- CodeMentor--Matt Goldspink 是一位经验丰富的技术培训师,他在网上晒出了自己的技术和标准面试问题清单,让你在 iOS 开发者求职面试时更有准备。他的列表中还有那些让人匪夷所思的问题,招聘人员有时会用这些问题来测试应聘者的思维能力和脚踏实地处理信息的能力,比如 "旧金山有多少个窗户?"
- Dice--Dice 的清单主要集中在那些比较棘手的问题上,这样在实际的技术面试中就不会措手不及。他们的列表中也有丰富的提示,告诉你如何最好地解决每一个问题,这样你就可以为每一个问题提出更连贯的答案。
奖励:iOS 开发者简历范例
迷茫于如何制作成功的 iOS 开发者简历?我们支持你! 看看这些在线资源,有大量的 iOS 开发者简历范例,帮助你拿出那份引人瞩目的应用。
- Ray Wenderlich -- RW 是提供编程教程方面的知名专业人士之一。文章展示了不同风格和格式的iOS开发者简历,从 "经典 "到 "短小精悍"! 还有求职信和简历的样本,以提供更多的指导。最后,他对你的iOS开发者求职之旅给出了最后的想法和建议,以此来结束一切。
- Indeed - Indeed是求职门户巨头之一,他们有一套出色的iOS开发者简历范例! 点击链接,你就可以看到他们的幻灯片,简单而又高效的iOS开发者简历,这将帮助你吸引iOS开发者招聘者的目光。
- Zety--Zety的Maciej Dusynzski已经清楚地勾勒出了每个iOS开发者求职者必须在简历上写上的关键信息,这样才能脱颖而出。该网站本身也有自己的简历生成器,以节省你的时间!
- Velvet Jobs--另一家求职公司为每一个与iOS相关的工作都策划了一份iOS开发者简历样本列表,从iOS移动应用工程师到iOS Lead。这是一个非常有用的资源,无论你在iOS开发者职业生涯中处于哪个阶段,都可以帮助你的iOS开发者申请!
奖励:获得苹果认证
迄今为止,只有 Certiport by Pearson Vue 与苹果公司建立了官方合作关系,对学生的 Swift 编程知识和技能进行认证。
他们为期一年的 Swift 认证课程涵盖了高中和大学水平的编程语言知识,当达到这个水平后,可以成为你 iOS 开发者简历上的一个金字招牌,可以让你找到你梦想中的 iOS 开发者职位!
我认为这并不是绝对必要的,但如果你一心想要认证,那就去吧!
总结
我希望这本全面的指南能够帮助你在 iOS 开发者的求职之路上。
如果在 iOS 开发领域找到一份工作是你的目标,我们有很多培训可以帮助你开始建立起应用组合,这在面试中是非常关键的!
看看这些资源吧。
- 学习 Swift 编程语言
- 学习iOS应用开发
让我知道你的想法,在下面留言!