iOS开发学习指南

1. 提升你的英语水平

虽然知乎er的平均水平比较高,但是现实情况是很大一部分程序员的英文水平是不太过关的。那大概需要提升到什么水平呢?我觉得达到比较流畅的阅读技术文档及书籍,配合英文字幕可以比较轻松的观看wwdc的session的水平就可以了。

如果英语水平不过关,甚至没法成为一个合格的程序员。

说来惭愧,我刚实习的时候,碰到陌生的API都是复制到百度查怎么用,实际上API注释+官方文档很详细准确的说明了API如何使用。我不想看官方文档及注释就是怕看那一堆堆的英文,导致API使用过程中一知半解,浪费了不少时间。

经常在开发吹水的群里见别人发一个截图提问如何解决,实际上截图里的英文提示就已经很明确的说明了原因及解决方案。如果英语水平达标,就不会出现这种比较尴尬的提问了。

至于如何提升,下一个背单词的app吧。扇贝单词、百词斩这些都可以。不停的背4级单词就行,已经能涵盖绝大多数常用词了。

开发过程中碰到不明白意思的API,查清楚每个单词的意思,做到见名知意,而且开发中常用的单词也就那么一些,不要和我最开始的时候一样复制百度,然后只知道这一串英文大概是这样用的。实际上下次碰到了还是需要再查一遍.....

最后,尝试阅读纯英文的技术书籍,不用怕,书籍中的大部分单词都是开发中接触过的。配合查词app肯定能啃下来。当第一本纯英文书籍看完后,后面的都不是问题了。

当然,这个过程不是一蹴而就的。我毕业后基本每天都坚持在背单词的app上打卡,不要三天打鱼两天晒网,男人最重要的就是持久。

2.使用google而不是百度

查问题和文档一定一定优先使用谷歌而不是百度。大部分开发中碰到的问题你都能在stackoverflow上找到解决方案,并且还有不少优秀的回答附带了best practice。解决了问题以后试着去回答问题,这样印象会比较深刻。


3.swift入门

不要纠结先学oc还是先学swift。

目前对于iOS开发来说,swift和oc都是必备技能。当然入门肯定要二者选一,重要的是你开始学,而不是纠结在我该学哪门语言,然后一直不肯迈出第一步。

目前个人建议从swift开始入门,除非你的公司明确使用oc。

首先学习语法,推荐阅读swift-apprentice。书卖的比较贵,csdn上应该有网友分享的,记得找swift5及以上版本的。

https://www.raywenderlich.com/

记住raywenderlich这个网站,有空的时候根据自身需求把里面的书籍都阅读一遍,基本都是精品

语法学完了读UIKit-Apprentice

https://www.raywenderlich.com/books/uikit-apprentice/

读完上面两本你对iOS开发大体有一个概念了。如果你是为了找一份iOS开发相关的工作,现在回过头去学oc。 如果公司不要求OC, 做一个了解就行

4.oc入门

学oc我比较推荐看培训机构的视频,印象中几年前iOS开发培训机构一大堆,部分教学视频还是非常适合初学者入门的。这些视频最大的优势是比较系统,从c语言-oc语法-uikit等,能比较轻松的带你一步步接触到一个完整的应用是如何开发的,对初学者来说最怕的就是不知道学习方向。而这些教学视频是根据为学员找工作培训设计的,作为入门教程很不错。

5.1-3年开发经验

首先推荐两本书,必读!必读!而且推荐反复多次阅读。

Effective Objective-C 2.0m.douban.comm.douban.comObjective-C高级编程 (豆瓣)m.douban.comm.douban.com

另外需要不断完善你知识库,非iOS相关书籍的推荐:http权威指南、正则表达式必知必会、mysql必知必会这几本书。这几本书阅读起来比较轻松,而且实用比较强。

除了读书之外,还推荐把UIKit中自己常用类的API仔仔细细的看一遍。详细阅读官方注释!肯定有你没注意到的细节。

很多开发者在这个阶段有一个误区,吸收了大量知识后,就非常想把它们应用在程序中。实际开发要避免这个问题,要追求最简单最稳定的实现方式,能不hack的就不hack,遵循best practice。不要了解一点runtime就想方设法在应用中method swizzling。开发是为了实现业务,稳定性放在第一位。实际99%的业务都用不上runtime的各种黑魔法。各种设计模式和架构同理,这些都会随着你开发经验的增长在你脑海中有一个清晰的概念,等到积累够了,自然就能运用自如,而不是在一知半解的情况下各种乱用。

还有就是业务代码需要逻辑清晰,实际写代码时可以参照下面的例子,标注出序号,配合注释说明每一块的目的。这样不论是自己以后回看还是对于同事,基本一眼就能清楚业务逻辑和代码意图

// 1
let allPhotosOptions = PHFetchOptions()
allPhotosOptions.sortDescriptors = [
  NSSortDescriptor(
    key: "creationDate",
    ascending: false)
]
// 2
allPhotos = PHAsset.fetchAssets(with: allPhotosOptions)
// 3
smartAlbums = PHAssetCollection.fetchAssetCollections(
  with: .smartAlbum,
  subtype: .albumRegular,
  options: nil)
// 4
userCollections = PHAssetCollection.fetchAssetCollections(
  with: .album,
  subtype: .albumRegular,
  options: nil)

这段代码摘自raywenderlich,该网站getting start系列非常合iOS开发者了解新框架,保姆式的入门教学

https://www.raywenderlich.com/11764166-getting-started-with-photokit

6. 3年以上开发经验

这个阶段一般都是公司主力,已经形成了自己的代码风格并且对自己的学习路径有了规划。根据公司的app制定学习计划,比如图像处理App和智能硬件App所需要学习的内容就不太一样,提高自己的深度。

推荐看wwdc的session,最新的技术及最佳实践都在视频里面了。developer App上可以直接下载观看,链接在下面。记得用Safari打开

https://http://apps.apple.com/cn/app/apple-developer/id640199958apps.apple.comapps.apple.com

广度方面,掌握一门脚本语言,python,shell都可以。把重复的事情都写成自动化脚本,能极大的节约时间。有精力还可以学一门后端语言,自己搭个服务器,写写接口。前后端都了解了之后就能很清晰的知道如何设计一个好的接口,相信对整个程序生涯都会有帮助的


7.总结

归纳下来,就是希望大家多去系统性的去读书学习。你可能更愿意每天逛逛论坛看看技术贴,但这实际上对开发水平提升有限。静下心来认真的看完我推荐的这些书,然后根据自身需要再选择其他书籍阅读。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值