10步成为专业iOS开发者——从零起步

移动开发 iOS
毫无疑问,移动开发在目前和未来几年内都会盛极一时。无数开发职位虚位以待。各大公司都在寻找各种层次的程序员——新手级、入门级、中级、老手、专家。 本文是写给新手们的——我会帮你们找到第一份iOS开发工作。

[[137409]]

想在移动开发大餐中分一杯羹,体验最火最炫的技术?小伙子,很有眼光嘛
 

毫无疑问,移动开发在目前和未来几年内都会盛极一时。无数开发职位虚位以待。各大公司都在寻找各种层次的程序员——新手级、入门级、中级、老手、专家。 本文是写给新手们的——我会帮你们找到第一份iOS开发工作。

“我干嘛听你的?”

你可能会这么说。是个问题——如果是菜鸟乱给建议,那倒是不听最好。

我也不是什么大神,甚至也不算是特别有经验的iOS开发者——但我足够了解市场,因此可以对你有些帮助。

最初我是一个独立开发者,拥有几个收入不高(但也足够让我实现温饱而专心做开发)的应用。之后,我作为初级iOS开发者加入了一家公司,终于能全心全意做应用、甭担心明天吃啥这种问题了。如果我愿意,我完全可以找个公司打工衣食无忧(但可能这并不适合我——我的身体里流着创业的血液)。

现在,少说多做——如何才能成为一名iOS开发者呢?

1.买一个Mac(如果没iPhone的话,还得卖个肾)。

[[137410]]

iOS开发需要Mac。

好吧,其实也能退而求其次(比如hackintosh,或Mac In Cloud),但听我苦口婆心一言——对于iOS开发者来说,Mac会是你的主要武器。一般情况下,你无需放血去买最新、最快、最贵的设备,但好歹得有个叫Mac的东西。当然,如果你是小土豪,想买个好一点的入门设备,那不妨考虑一下Mac Mini——它可能是性价比最高的一款。如果你和我一样追求便携性,那就买Air——特别是它的大屏版。我们也不是非得买新品不可,从eBay上搞个二手货也是棒棒的。

2.安装Xcode。

[[137411]]

现在,当你有了闪闪发亮的全新(好的二手货也跟新的差不多)Mac之后,下一步就是安装[Xcode]了,它可是对iOS开发者而言最重要的软件。Xcode是开发iOS应用的IDE(集成开发环境)。它是免费的,你可以直接从Mac App Store下载。现在就去下,别磨叽!

你会在Xcode中写代码、编辑、在storyboard中“画”出应用、进行单元测试,等等。你也需要用Xcode来上传应用到App Store。你得尽可能地熟悉它,因为它是每个iOS开发者最重要的软件。

3.学习编程基础(可能是最难的一点)。

[[137412]]

现在我们可能到最难的一步了——你需要直接开始编程。如果你有一定的编程基础,那就可以在Objective-C(难一些)和Swift(简单一些)当中挑一个,大概也没那么纠结——它们基本上是标准的面向对象编程语言。但是如果你一行代码都没写过,那也别慌——这有两个纯新手的福利资源:

  1. Ry’s Objective-C tutorial?——适合“恋旧”的Objective-C爱好者。你不用把Obejective-C学得多精(Swift才是未来大势<或者已经是当下大势了>),但最好能了解其基础知识,并可以读懂用它写出来的代码。

  2. Swift language guide,由苹果官方提供——这是最好的Swift参考和学习资料。苹果出品,必属精品。

当然,你不必深入理解所有东西——等你更有经验了再谈这些。但是你必须好好理解变量、指针、类、数据类型和循环这些概念。这样,你以后的学习才能水到渠成。

4.跟着教程,依样画葫芦

[[137413]]

从这一步开始,你终于要做点有用的东西了。看看这些网站:

  1. AppCoda——对初学者而言可能是最好的起点。你可以找到大量不同的教程,它们都有非常详细的说明。一定要都看下来!

  2. Ray Wenderlich——另一个有用的网站,它拥有海量的iOS开发教程数据库。一步一步从中学习吧。

但不要局限在这些网站和教程上!继续前进,开发一个计算器应用。然后是天气应用。再有就是汇率换算应用。音乐应用。明白了吗?只要能找到相关教程,就把它们都做出来。

推荐阅读:

[[137414]]

一直跟着教程学做应用,直到你觉得自己运用Xcode和编程语言(你所选的Objective-C或Swift)都很熟练了。这时候,我们继续前进——
 

5.着手开发自己的应用

[[137415]]

OK,我们越来越进入状态了。现在,你要开始开发自己的应用,它将成为你日后面试的法宝。

别害怕!又不是让你开发Facebook。咱得从初级职位开始,没错吧?在初级职位上,你可以从同事身上大量学习知识。好高骛远没用,你不可能一下子成为有五年经验的专家。

因此,你应该保持内心平静,思考一下目前自己最擅长的iOS开发领域是什么。

或许你开发过一个网络相关的应用?或许你研究过UIKit,并且很擅长做复杂的用户界面?再或者你开发过一个音乐播放器应用,喜欢iOS的音频?你得利用好自己的兴趣和知识,以此为开发应用的基础。要写出整洁、有风格、运行良好的代码。

6.在此期间,希望你能同时尽量多学一点软件开发的综合知识。

6.jpeg

你正在阅读本文,这多少说明了你近期不打算去大学修习计算机。好消息是!你根本不必去!

你可以在家打开电脑,学很多关于计算机科学、编程、软件工程之类的课程。

当然,这跟学位还是没法比的,不过单就iOS开发而言却已经足够了。看到上面的图片了吗?读读上面的文字。我不会把链接拱手奉上——信息搜索是开发者最重要的技能之一。开始训练。Google是你的良师益友。

#p#

7.完成应用。

[[137416]]

你专心于学习和开发应用,这样过去了几天、几个星期、几个月……亲,你该有一款自己像样的应用了。应用就是你的简历——你必须全力以赴。甚至说,鞠躬尽瘁。公司会希望从你的应用中看到什么呢?这里有一些建议:

  • 运行良好的应用

  • 整洁的代码

  • 代码结构——小巧的类、合适的变量命名、Xcode中良好的文件分组,等等

  • 对storyboard的使用(如果你既能用storyboard又能徒手编程写用户界面的话,那就碉堡了)

  • 对CocoaPods的使用

  • 一些简单的单元测试

  • 对第三方库的使用(例如GitHub上的一些开源项目——这将是一大加分项,因为实际工作中这非常有用)

顺便,如果你正在寻找一些炫酷的iOS开源库的话,不妨看我另一篇文章:

[[137417]]

当然,一切都取决于你想找什么样的工作和什么样的公司,但总体而言,学好上述话,走遍天下都不怕

OK,现在你有了自己狂拽炫酷的应用。下一步——

8.在App Store发布应用

[[137418]]

呃,我得说清楚——这一步不是必须的,因为它需要一个开发者账号,而这个账号呢,每年有99美元的费用,这很有可能会搞得你入不敷出。

发布还是不发布,这是一个问题……它由你说了算。不过,若能成功发布,很多公司都会把它看做是一个大大的加分项。

在App Store有自己的应用意味着你熟悉应用发布流程,熟悉苹果对于应用的限制(还真不少),熟悉应用本身之外的发布所需事项(如应用描述、关键词、屏幕截图、宣传视频等等)。

你可以选择跳过这一步,但我强烈推荐你能试一下(我的第一份工作应该就是靠我在App Store的应用找到的)。

9.把应用上传到GitHub。

9.jpeg

GitHub是一个社交平台,其主要功能就是源码分享(与之类似但不如GitHub火还有另一个平台是,Bitbucket)。

你可以在此上传源码(可设置为公开或私人),可以在此浏览其他人的代码,还可以为开源项目出一份力。GitHub应用广泛,即使你一直都是独立开发,那也可以从中获益许多——你可以更好地组织代码,并可以获得可能是最好的备份。

但你为什么要上传应用呢?很简单,把源码给你的面试官看。

别再用邮件发代码了,长点心吧,这又不是90年代。

10.联系你中意的公司!

[[137420]]

圆梦时刻到——现在,你已经准备好接受第一份iOS开发工作了!可能是从实习生或初级岗位开始,这都不重要——重要的是,你现在有能力找到第一份工作了,万事开头难嘛,以后就顺利了。

所以,准备好你的简历,找到你所向往的公司,然后就与他们一起开发应用吧!

现在你已经有了一定的开发技能了。在进入岗位之前,你可能会希望试试当独立开发者的滋味,却又不知道该去做什么样的应用。需要灵感吗?那就看看每周最佳iOS应用和游戏报告,这是我一手策划的——那里有各种各样的好应用,iOS开发者们一定想去做!

[[137421]]

或许你在App Store中有一个很酷的应用?我每周都自己策划iOS Apps Weekly,所以给我发送Twitter私信,也许你的应用就是下一轮的App of The Week!

如果你喜欢这篇文章并想读更多,请点击下面的推荐按钮——这会激励我分享更多的东西(我脑子里的想法可是取之不尽!)你也可以在Twitter上关注我,我会经常发一些关于iOS开发的东西。谢谢!

Pawe[[137422]] Bia[[137423]]ecki (@pawel_bialecki) | Twitter:Pawe[[137424]] Bia[[137425]]ecki(@pawel_bialecki)最新的推特。iOS开发者,电吉他手……
 

[[137426]]

推荐阅读:

blob.png

责任编辑:林师授 来源: CocoaChina翻译
相关推荐

2015-06-17 10:03:04

程序员iOS开发

2009-08-15 10:37:33

DNS解析故障

2009-03-10 09:46:00

交换机配置堆叠

2017-09-26 09:13:14

Linux运维经理运维技能

2011-12-27 09:31:13

程序员

2012-07-16 14:44:04

Win 8Win 7

2013-06-07 10:07:28

开发者优秀开发者

2009-05-30 09:50:53

微软Windows 7操作系统

2018-04-13 11:40:28

前端开发路线图前端工程师

2010-08-18 09:46:58

软件开发敏捷瀑布式

2023-03-27 23:57:25

JavaScrip开发技巧

2021-01-03 15:07:16

开发编程语言后端.

2024-08-09 15:01:00

2013-09-12 15:02:54

iOS开发者

2015-06-23 13:41:03

Docker开源社区代码贡献

2021-06-29 18:49:04

谷歌Android应用Play开发者

2015-07-22 16:08:46

OpenStack开源贡献代码

2014-08-08 10:12:44

IRC

2017-01-19 21:45:27

iOS开发者账号
点赞
收藏

51CTO技术栈公众号