[译] 2018 年 iOS 开发找工做彻底指南

或如何避免浪费你人生的两千个小时

我被一份耗费了我三个半月精力的工做拒绝了。前端

我作了全部的准备。那个公司的一切就是个人一切。我几乎能够告诉你全部关于那家公司创始人在网上发表的东西。android

我大概十分天真了。ios

想象一下,我写了一篇很长的博客,里面全是实际的代码和如何改进他们应用程序的例子。由于我就是这么作的。git

尽管我投入了全部的精力,我仍是得大声说,获得这份工做是不可能的。我不想相信,但说出来还让我感到了一点安慰。程序员

几个月后,我终于吸引了他们的注意。我和他们的 CTO 通了电话,聊得很愉快,他们邀请我参加编程挑战。github

我花了一周的时间来作到完美,他们的团队也表示对个人代码印象深入。我自信心高涨,感到本身很安全。web

而后,我参加了他们的结对编程测试。面试

两天后,我收到一封拒绝邮件。他们告诉我,我不是很合适。超过 2000 个小时来学习换来了一小时的教训。编程

我瘫倒在沙发上。他们是对的。我并无真的符合他们的需求 —— 我只是花了几个月的时间说服本身我作到了。swift

回想起来,很容易看出个人行为是多么荒唐和危险。我猜原来的我太惧怕被拒绝,想要尽本身所能来减小被拒绝的可能性。

也许咱们大多数人须要处理这种负能量 —— 把简历群发给每一个可能的公司,而后石沉大海没有回应。

在遭到可怕的拒绝后,我醒悟过来了(好像我别无选择)。因而我从新制定了一个实际可行的策略,并最终被一家我认为很是合适的公司应聘为 iOS 开发人员。

本篇指南旨在实现的目标:

我概述的这些策略不须要先前的人际关系网络,而且是那些但愿得到全职工做的 iOS 开发者。虽然你不须要认识任何人,但知道如何沟通和推销本身仍是有帮助的。

你须要作大量的工做 —— 意思是如下任一条或所有:

  • 你发布的能够下载的应用程序
  • 你启动或参与的开源项目
  • 你做为该领域的意见领袖创造的内容
  • 或其余相关工做经验

若是你没有任何能够推销的东西,那我也帮不了你。

到本指南的结尾,你就会知道在 2018 年,在一家开发面向消费者的应用的公司得到一份 iOS 开发工做须要作出什么准备工做。

关于个人背景:

我从 iOS4 开始就开始开发 app。我没有大学学位。我从未有过全职工做,也从未在“敏捷”开发环境或大的团队中工做过。

许多公司由于我没有大团队工做经验和没有大学文凭的简历拒绝了我。

但我也不是空手而去。我本身开发上架的应用被下载了 100 万次。我与人合做创办了一家(低成本的)初创公司,并以自由职业者的身份与一些很酷的客户合做。我有很好的公共项目来展现个人技能。

我在一个主要的科技市场(德克萨斯州奥斯丁)找到了工做,也获得了一些远程工做机会。我被聘为高级职位。我想个人经历对初级和中级程序员也有帮助。

在咱们跳进沉重的东西以前:

我最终被录用的第一条规则是:把全部的事情都记录下来!

对公司作笔记,跟踪哪些简历和求职信有用,每次面试后作笔记,这些会帮助你变得更快更好。

搞定你的 iOS 简历

不想重复造轮子,因此若是你有时间,请阅读这篇编写开发人员简历指南

若是你没有时间:

我曾经被应聘时的简历的一个稍微修改过的版本:

你的简历应该简单易读。以一种易于阅读的格式列出你的成就,优先列出让你看起来最好的事情。

你的简历应该有:

  • 教育背景(如得到学位或选修重要课程)
  • 工做经验
  • 开源项目(提供连接)
  • 你的我的应用程序(若是可能的话提供连接)
  • 最相关的技术技能(保持最小篇幅)
  • 其余值得注意的事情(你参加的俱乐部,你举办的开发者见面会,你赢的黑客马拉松)

要说起你是高级仍是初级开发。让你的简历说明一切。

对你的简历维护几个版本。每一个版本都应该尽可能根据不一样公司的个性调整描述细节。

不是让你去撒谎,而是以不一样公司最看重的方面来推销本身。

得到成功的其余方法

创建一个很棒的我的网站。

你的网站能够表达出简历没法表达的东西。看看个人我的网站。当我走进 InMotion Software 的办公室时,他们打开了个人我的网站的 about me 页面。几天后他们给了我 offer。

这是另外一个很好的我的网站的例子。保持网站的整洁,用你潜在雇主但愿看到的方式准确地表达你作了什么。

若是你不得不撒谎,你多是在努力争取一个并不适合你的职位。不要紧。调整你的指望,从新准备。

若是你不擅长 web 开发,请坚持在 Squarespace 或者 Wordpress 上创建你的网站。

若是了解网页开发,创建你本身的网站。我使用了 Node.js 和 Hexo。这代表,若是须要的话,我很乐意跳到其余的代码领域,这不会损害雇主的利益。

创建强大的 LinkedIn 页面。

若是你认为 LinkedIn “很挫”,那你就是在和本身过不去。我就经过 LinkedIn 获得了了一些工做机会。

截至 2018 年中

看看个人 LinkedIn 页面。你不必成为 LinkedIn 方面的专家:我去年才开始真正地研究它。

要保持更新而且有一个本身的好看的照片。我拍了一张我满意的自拍上去。用编辑照片的 app,修修图。多练习可让你拍出更好的照片。

添加特定的关键字到你的我的资料中,以助你出如今你期待的某些搜索关键词下面。

想象一下,若是你生活在一个不是奥斯丁这样竞争激烈的地区,你可能很快就会脱颖而出。

以聪明的方式申请工做

这里有一些找到 iOS 开发工做的好方法:

  • 查看 Angel.co 上面的工做(搜索在你的工做地和“支持远程工做”的工做)
  • Google 搜索 “iOS 开发人员的工做 [首选城市]”。谷歌,Glassdoor,ZipRecruiter 和 Indeed 会弹出相关结果。
  • Google 搜索 “远程 iOS 开发”
  • 检查你的 Stack Overflow 板块,作出漂亮的我的页面
  • Github 同上
  • 在 LinkedIn 上 搜索 iOS 开发者职位
  • 参加相关的技术活动

最后一个好地方 —— 一般城市会有一个本地的技术网站。奥斯丁有 BuiltInAustin。实际上我就是经过这个板块找到了我如今工做的公司的职位。

在你的搜索中使用的关键词:移动,应用,iOS, Swift,开发者,工程师,程序员,远程,架构师,iPhone

在你喜欢的文档应用(我用的是苹果备忘录)中记录工做列表。

记录他们的网站、他们的应用程序、他们的 glassdoor 评论以及其余的你喜欢(或不喜欢)每家公司的哪些方面。

找到一种你感受可持续的申请速度。你须要足够的时间去作一些基本的准备工做。

我发现每周申请两到三家公司对我来讲最合适,但若是你已经有了全职工做,你可能每两周甚至更慢地申请一次 —— 若是你坚持下去,那也没什么问题。

想一想是什么让你为每一个公司感到兴奋。你可能不是对他们的产品充满热情,但你喜欢他们公司的技术、文化、你可能学到的东西,或者他们帮助的人。

写求职信

在作了充分研究以后,你可能会注意到一些让你喜欢上这家公司的地方。也许他们在招聘广告中特别提到的一些事情引发了你的共鸣。

用这些来表达为何你是一个很是合适的人选,以及你想从他们那里获得怎样的反馈。

稍微放松随意一些。没有面试官愿意听让人发困的企业行话和 500 字毫无心义的独白。

把你对公司作笔记的时候提到的积极的方面拿出来,并提出一两件引发你注意的事。简单地用你本身的方式说一下为何你认为本身能够胜任。

这里有一封我用过的求职信,让我获得了一个电话面试机会:

注意到它甚至有一个错字 😂 (尽管我不建议这样作)

请注意我是如何把本身缺少团队经验说成是一件我急于克服的事情(这是真的)。

像你的简历同样,记录你用过的求职信的几个版本,注意哪些有用,哪些没有用电子表格。

为编程挑战作准备

编程挑战是一个测试你知识和编码技能的小练习,你能够在本身的时间内(一般是在一个宽松的期限内)作。

编程挑战一般由一个或两个视图控制器组成,并要用到一个或两个相关技术(如网络和 core data)。

我不打算透露全部公司的具体的题目,但我想,即便是我申请的公司,若是有更多的应聘者作好准备,而且对公司想让应聘者知道的东西有足够的了解,公司也会很感激的。

不说的太具体,下面是一些我遇到的几个编程挑战中所作的关键工做:

  • AutoLayoutAutoresizing 视图
  • 调整文本大小以适应不一样的屏幕(Dynamic Text
  • 使用基本 API 进行网络请求
  • 使用 TableViews 和 CollectionViews
  • 用 Core Data,UserDefaults 或存档来持久化数据
  • 知道如何使用 storyboards,也要准备好以纯代码方式编写视图和控制器
  • Size classing
  • 异步加载图片并在主线程上显示
  • 向 tableview 或 collection view 添加无限滚动
  • 将代码模块化。不要把全部东西都塞进视图控制器。了解如何构建不可变的模型和服务层对象。

以上这些内容也可能会出如今面试中。

你不可能写出完美的代码。这是能够接受的:

当你写代码的时候,若是你知道代码不完美,你能够用 //TODO 或 //FIXME 来讲明你将如何改进它,以向团队展现你知道你必须作的权衡。

别人也会看你是否有能力作出人们喜欢的产品。若是你知道如何让它超快、平滑、漂亮,即便他们没有要求(若是你也有时间),你也要去作,除非他们明确说不须要作。

如何处理结对编程挑战

不是每一个公司都会作这一部分,可是值得注意。

对于结对编程,你可能要处理你在编码挑战中建立的代码,或者处理与公司但愿你编写的代码类型相似的任务。

不幸的是,你不能真的“伪造”这一部分。你必须相信你的直觉,由于在你不认识的人面前,你没法当即改变本身的行为。

没关系张,在任务中要玩得开心。若是过后你以为不太顺利,记下你能作得更好的事情。

若是你想练习,那就坐在你朋友旁边一块儿作一些项目。越多越好。

搞定面试

你须要准备好谈论的话题:

  • 大 O 符号。Swift/Obj-C 中的时间复杂度的例子
  • 数据结构
  • 用 Swift 建立一个 LinkedList(以防万一)
  • Struct vs. Swift 的类
  • 了解 Swift 标准库数据结构是如何工做的(基本程度)
  • MVC, MVVM
  • 你在编程挑战中写的代码或:
  • 为解决相似公司面临的问题你可能会编写的代码
  • 你的兴趣和目标与公司的目标是如何一致的
  • “你认为5年后你的职业生涯会怎样”之类的问题极可能会出现

对一家公司产生兴趣每每是一种“伪装直到你成功”的状况。你越是研究并找出对公司有意义的贡献的方式,你的兴趣就越会“神奇地”与他们保持一致。

不过,不要太强迫本身 —— 那些有着糟糕的 Glassdoor 评论和零星任务的公司几乎老是你须要避开的坑。

我所注意到的(虽然不是绝对的规则):公司越大,面试就显得越学术。准备好应对来自大公司问题中的“陷阱”吧。

小公司一般会有更少的形式,由于他们不须要它。

其余重要的准备方法:

最后的想法

找到渴望获得工做和彻底不关心你获得的工做之间的平衡。

若是你坚持上述的过程,你会变得更好 —— 我获得的这份工做使用的简历和我刚开始找工做时投递的简历看起来彻底不一样。我学会了用一种更淡定的态度来处理面试。

让这个过程给你翅膀。每次被拒绝都会让你变得更好,因此要奖励本身的进步,而不是仅仅是关心你是否获得了这份工做。

最后,若是你住在奥斯汀地区:InMotion Software 正在招聘!:) 我和他们一块儿工做很开心。

学习如何制做使人惊叹的应用程序等等

若是你从这篇文章中有所收获,Rob Caraway 写了关于应用程序开发、创业和创建一个伟大的开发者职业生涯的详细指南在这里注册就会获得通知 是他本身的想法。


这篇文章从哪来的

这个文章发表在 Noteworthy 上,天天都有成千上万的人来这里了解塑造咱们喜好的产品的人们和想法。

跟随咱们的出版物去看更多的产品和设计的故事,由 Journal 团队提供。

若是发现译文存在错误或其余须要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可得到相应奖励积分。文章开头的 本文永久连接 即为本文在 GitHub 上的 MarkDown 连接。


掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 AndroidiOS前端后端区块链产品设计人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划官方微博知乎专栏

相关文章
相关标签/搜索