如何成为一名入门级 iOS 开发者

作者:Weston Hanners,原文链接,原文日期:2016-01-26
译者:ray16897188;校对: 定稿:小锅

最近我一直在帮我的几个朋友开始学习 iOS 开发,然后被问到一个开始学习需要的清单。听起来很适合为此写一篇博客。闲话少说,我给你列出来要成为一名入门级的 iOS 开发者必须掌握的知识清单(不分先后顺序)。

基本的 CS 知识

我不觉得投身开发移动应用必须得有一个计算机科学的博士学位,我认为这应该归为“加分项”那一栏,但是对数据结构和算法有一定基本的了解肯定会防止开发新手们写代码把自己写到死胡同里去。所以对新手来说,我推荐你们去看Youtube上的哈佛CS50课程,把它看做是你入门的开始,这些课程浅显易懂,还十分有意思。

Swift 还是 Objective-C

还是那个观点,你无需到达能够写这两种语言的技术性博客的水平,或者是到能够教课的程度,但是你还是至少得能用这两种中其一来编程,不用过于频繁的查看语法。API是另外一码事儿,尤其是在 iOS 中,框架每年更新,很多方法也经常被弃用。对我来说大多数工作时间开一个 Safari 页面去看 Apple 的文档并不是偶然的事情。尝试着记着所有的太让人厌烦了。要让你自己达到在没有帮助的情况下可以写类、结构体、循环、函数(类和实例)、分配变量、表达式求值的水平。

目前我们正处于一个比较奇怪的时段,这个时候招只会 Objective-C 的人还是能被接受的。Swift 还是很新,除非你进的公司里有频繁的项目更替,否则你就得基本上用 Objective-C。也就是说,有很多的公司正决定转向 Swift(我的公司就是),如果你就会 Swift 的话,找一个工作也不会特别难。重要的是要对你所选择的那个语言足够熟练,然后至少对另外一个也要熟悉到能读懂代码的程度。

框架和 API

还是和我之前说过的道理类似,我不认为你必须能对所有的 iOS API 倒背如流,但是你需要清晰的知道到哪里找起。

  • UIKit (UITableView, UIButton, UINavigationController, GestureRecognizers)
  • Interface Builder (Storyboards, Segues, and the odd .xib)
  • Foundation 类型 (NSArray, NSDictionary, NSString) 以及它们的 Swift 对应 (Array, Dictionary 和 String)HTTP API (NSURLSession, 基本的 REST API 概念, 用 NSJSONSerializatio n 做 JSON 解析)
  • Grand Central Dispatch (GCD, NSOperationQueue)
  • 数据持久化 (NSCoding, NSUserDefaults, CoreData)
  • 内存管理 (什么是循环引用,以及 ARC 的基本原理)

开发中的设计模式

模式很重要,它让你的开发变得容易、代码变得清晰。要确保你了解基本的设计模式,这些模式在 iOS 的框架中被广泛使用,你在不知道它们的情况下不大可能做出来很多东西(还有很多其他模式,但是你可以随做随学)。

  • 代理模式(大多数iOS API的主要模式,你必须理解掌握它)
  • 模型-视图-控制器模式(MVC,我并不觉得 Apple 在鼓励使用最佳 MVC 分离上做的很好,但是它也是个很重要的设计模式,如果你花时间将其合理实现的话它能帮你改进你的代码。还有,可以十分肯定的是:关于 MVC 的问题肯定会出现在任何一个 iOS 工作的面试题里。)
  • 继承(几乎所有用户界面的代码都会是某个类的子类。)
  • 单例模式(绝对会被滥用的模式...保守点儿用吧。)

熟悉开发环境

这似乎是显而易见的,但如果你还没有一台 Mac 的话,弄一台!如果你没有任何一个 iOS 设备,弄一个!如果你没有使用过或者不熟悉设备的话,为它做开发会很难。类似的是,如果你没 Mac 写代码的话也很难。我是在2009年从一台 MacBook 13'' 和第一代 iPod Touch 开始的 。用低配置的设备也是能凑合的。当时是接近$1500的投资,但是长远来看绝对值得的。

UX/UI

通常来说 UX(用户体验)和 UI(交互界面)是由设计师负责的,但是你也应该了解 Apple 的人机交互指南。你应该要了解产品原型和线框图的区别,以及在开发的过程中如何使用它们。

工具

你应该熟悉一些常见的开发工具。

  • Xcode(废话)
  • Git 版本控制(一些公司可能会用 Subversion 或者 Mercurial,但是 git 把你领进门应该是足够的。)
  • JIRA 或者 Bugzilla(基本就是 JIRA,你也是不需要成为使用它的专家,但是你应该至少把它玩个大概,第一次看见它界面的时候别怕)
  • CocoaPods(这是管理依赖性和第三方代码的工具,我还没听过哪个公司不用它)

见解

对 iOS,Swift 或甚至对某个 API 有你自己的见解能特别有效的让面试官知道你对某个知识点的了解到底有多深。这还会让我们能看到你的热情。如果你参加一个面试被问到“你觉得 Swift 如何?”,回答“我觉得,还行吧”可不是正确的答案,你可以告诉他们你对 optionals 的看法,你有多喜欢某个 feature。这里不会有太多错误的答案,重要的是你得有东西可说。

作品集

事实胜于雄辩。如果你想在面试中表现优异的话,可以把一些简单 app 合在一起(或者更好的是把它们发布在 AppStore 上)。展示出你能够独立完成一个项目的能力。我怎么推荐这点都不嫌多。GitHub 也很好,但是如果你选择这条路,面试官想测试一下你的代码的话,要尽可能让它能够轻松通过编译。

我写了篇文章介绍怎样做一个应用程序,可以点击这里看看。

结论

如果你还需要更多的入门资源,请查看我的iOS Developer Resources页面,里面我附了我开始做开发的时候觉得有用的博客和网页。

我想我要说的最后一件事就是JUST DO IT!现阶段对 iOS 开发者的需求量还是很大的,如果你想达到一个不错的技术水准,努力工作一点时间是必不可少的。这是一份有回报性的工作,能够锻炼你的工程技能和创造力。

Shia LaBeouf "Just Do It" Motivational Speech (Original Video)(01:04)

我漏掉了什么了吗?请在Twitter (@WestonHanners)上告诉我。我想把这篇文章做成新手开启他们事业所需的百科全书

另外说一下我所在的公司现在招所有技术水平的 iOS 开发者,如果你感兴趣的话点击下面的链接。

Y Media Labs Careers

告诉他们你是从我这里知道他们的。

  • 2016-01-26 更新:添加内存管理,UI/UX,MVC。添加工具小节。
  • 2016-01-27 更新:布局调整。

本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 http://swift.gg

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • 今天是2016年的最后一天,回想起来2014年高考结束开启了大学生活之旅,有甜有苦。刚开始的大学生活要经历4次of...
    水蕴草Julinia阅读 188评论 0 0
  • 鹦鹉曲 (1)长河落日风轻扬,层峦叠翠缀霞光。柳起舞,远处莺唱,离愁别绪涌如浪。夜来香,一抹芬芳,凝眸顾盼回望。情...
    秦居隐客阅读 240评论 0 0
  • 想知道工作遇啥情况会让你心堵得慌吗?职场里充满着尔虞我诈的竞争,顶着生活的压力我们只能硬着头皮上。在职场中,未必所...
    天天爱分享的最新资讯阅读 518评论 0 1
  • 读万卷书,行万里路。这八个字督促着太多的人。然而好奇心和无知总会让人们产生怀疑和鄙夷。在你专注于阅读某本书的时候总...
    繁辉阅读 289评论 0 0