适用于初学者的iOS开发。 第3部分:准备面试

在本教程的最后部分,我将指导您如何为初级开发人员职位做第一次面试。 正如我在本文中提到的那样,我参加了关于我的职业这两个角色的数百次采访。 大约10年前,我开始了iOS开发人员的职业生涯,可以肯定的是,今天的要求会更高,但是如果您准备得很好,就会成功。 当我只有中层职位时,很少几次我甚至雇用了经验最少的人。 它怎么发生的? 他们证明自己很聪明,可以完成任务。 检查本文以了解该做什么和期望什么。

必要的知识

参加面试之前,请确保您已准备好。 下面,我将为您提供通常讨论的最重要领域的简短清单。

Swift语言功能

正如我在本教程的第一部分中提到的那样,Swift是iOS App开发的第一选择。 而且您需要知道如何使用它。 这里列出了即使在纸上也应该能够写的最重要的东西:

  • 创建变量,了解let / var差异
  • 了解让选件如何工作(如果满足条件)
  • 参考文献薄弱,一些基本的内存管理知识也将是不错的补充
  • 使用数组和字典(创建,计数,插入,删除)
  • 使用字符串(创建,计数符号,添加子字符串)
  • 创建自己的结构,类和方法
  • If..elseswitch..case条件
  • For周期

Xcode

Xcode为您提供了一个非常用户友好的界面,因此,很容易学习如何使用它。 你应该能够:

  • 创建一个新项目并附加CocoaPods
  • 在iOS模拟器和设备上运行您的应用
  • 调试您的应用(使用控制台输出了解问题所在)
  • 将您的应用提交到App Store

界面生成器和UIKit

Interface Builder是Xcode的一部分,您可以在项目窗口中打开XIB或Storyboard文件时看到它。 目的是使构建用户界面尽可能容易。 UIKit框架是iOS SDK的一部分。 它包含UI组件和控件。 使用Interface Builder,您可以使用UIKit组件而无需编写任何代码。 这就是为什么我这次将两者结合在一起的原因。 你应该能够:

  • 在Storyboard中为您的应用( UINavigationControllerUITabBarControllerUISplitViewController )创建导航模型
  • 了解新的ViewController的模式表示和UINavigationController推/弹出机制之间的区别
  • 使用Storyboard Editor创建一个新的ViewController并将其与代码中的类连接
  • 在ViewController之间创建序列
  • 了解UITableViewControllerUICollectionViewControllerUIViewController之间的区别
  • 了解UITableViewControllerUICollectionViewController可重用单元格机制
  • 使用自动布局约束来构建用户界面
  • 通过情节提要参考将一个情节提要拆分为多个
  • 使用UIAppearance代理自定义应用的颜色(以代码形式)
  • 使用@IBDesignable@IBInspectable属性创建自定义视图

iOS SDK

iOS SDK由数十种框架和数千种方法组成。 没有人能全部了解他们。 而且您也不需要它。 您所需要做的就是获取和使用其中的一些知识,并知道在哪里可以找到其他人的文档。 以下是最常用的框架列表:

  • 基础(功能,网络,数据结构(如数组,字典,字符串等)的基础层)
  • UIKit(用户界面)
  • MapKit
  • CoreLocation(GPS和访问用户的位置)
  • CoreData(本地数据库,我更喜欢Realm)
  • 用户通知
  • LocalAuthentication(TouchID,FaceID)
  • GCD(多线程)也很不错,至少您应该熟悉asyncasyncAfter ,主队列和后台队列,您将在本文中找到更多信息。

我建议您在家庭项目中使用上述每个框架的某些功能。

第三部分库

将第三部分库包含到项目中的最常见方法是CocoaPods 。 以下是使用最广泛的库的列表:

  • Alamofire
  • SwiftyJSON
  • 对象映射器
  • SDWebImage
  • 可可伐木工人

当然,每个团队都有自己的库列表供使用,但是这5个库几乎用在我一直在从事的每个项目中。 我认为,对于您的采访,只需要Alamofire。 不要忘记将您使用的所有库都包含在简历中,并准备解释您的选择。

建立你的简历

重要的第一步是通过筛选阶段并预约面试时间。 在这个阶段,招聘人员或人事专员会评估您的简历是否适合他们的职位空缺。 精心准备的简历将帮助您成功地通过此阶段。 良好的简历在1(一页)页面中包含以下信息:

  • 您的姓名和当前位置
  • 所需职位(通常是Junior iOS开发人员)
  • 您的学历,主要学习领域和毕业状况
  • 工作经验

公司不需要知道您的家庭住址,城市或州就足以了解您是否与公司办公室位于同一地区。 职位头衔是另一个很好的补充,可以确保您的简历不会丢失。

如果您还是学生,请务必提及并指出您需要灵活的日程安排或兼职工作。 通常,毕业后您会获得更多选择,因为大多数雇主都在寻找全职开发人员。 但是,以灵活的时间表全职工作是很常见的。

如果您确实有与所需工作无关的工作经验,则无需在简历中提及。 例如,如果您为大学所在系开发并维护了一个网站,并且正在寻找iOS开发人员的工作,那么这对您的简历仍然是一个很好的补充。 但是,在咖啡店当咖啡师并不能帮到您。 您真正可以做的是声明您曾经是一名独立开发人员,现在在App Store中发布了2个应用程序。

在工作经验部分,您还应该提及:

  • 您完成的项目(带有指向App Store的链接)
  • 您的技术栈

提供的已完成应用程序列表将帮助您向雇主显示您有一定的经验,能够编写代码并发布项目。 开发了至少2个不同的应用程序肯定会增加面试邀请的数量,并且也会对您的初始薪资产生积极影响。

提供您熟悉的技术列表也很重要。 通常,最好只添加您在应用程序中使用过的内容,因为您需要讨论有关库使用情况的决定。 这是技术堆栈说明的示例:

 迅速 
Xcode,App Store连接
iOS SDK:UIKit,Foundation,CoreLocation,TouchID / FaceID,GCD
库:Alamofire,Realm,SwiftyJSON

别忘了做研究

在发送简历之前,请先对未来的雇主进行研究。

  • 检查公司的网站,App Store,Google Play个人资料,以了解他们正在从事的产品/项目。
  • 问问自己为什么要在这家公司工作。
  • 尝试寻找其他空缺职位,以与其他公司比较薪水水平。
  • 如果公司位于其他地区,请检查该地方的生活费用。

完成研究后,您应该了解加入该公司的动机以及适合您的薪水水平。 准备在面试中回答这些问题。 当我问他们时,许多人没有特定的想法。 因此,他们要我提供一些东西,然后他们会考虑我的提议。 事情不是这样的。

准备你的故事

评估知识并完成简历后,您应该为电话面试做准备。 它通常持续10到15分钟,目的是检查您的背景,以前的项目,动机。 现场采访通常从相同的讨论开始。 要成功完成此步骤,您需要准备故事。 有时甚至记下来也很有用。 介绍性演讲的样本结构可以是:

  • 教育,您为什么选择学校,专业
  • 您为什么决定成为一名开发人员
  • 您做了什么来开始开发人员的职业
  • 已完成的项目

重要的是要显示出您的工作动机和学习意愿。 考虑一下您如何在两家公司之间进行选择,并突出显示对您最重要的3–5件事情。 不要等到被问到这一点,通常最好以此来结束您的故事。

我通常在寻找对以下内容感兴趣的人:

  • 打造惊人的产品
  • 发展他/她的技能
  • 与优秀的团队合作

不适用于以下人员:

  • 在离家近的地方找工作
  • 想获得午餐补偿
  • 寻找更高的薪水

你可以的!

这并不容易。 在获得第一份工作机会之前,您可能需要参加十几次面试。 请记住要谨慎选择。 通常最好在2个要约之间进行选择,而不要先签署要收到的第一个要约。 不要指望从第一枪中获胜。 继续尝试。 你可以的!