一:网易资深“女程序猿”带你认识iOS开发
1.推荐网站:objc.io
2.现在公司对iOS开发者的工作经验要求高的原因:公司项目的工期时间一般都比较紧凑,所以都尽量招一个来了就能开工,就能做的开发者。
3.安卓和iOS用跨平台做好吗?答:安卓和iOS有很多交互习惯都不太一样。最好还是各自按自己的交互习惯写。
二:从零开始学iOS开发?这里有入门宝典!
1.入门
书籍:《iOS编程》《iOS开发指南》,入门材料:https://code.tutsplus.com/series/learn-ios-sdk-development-from-scratch--mobile-14536(讲解各个SDK,及各个SDK的用途)
2.高级进阶:原理和基础。
①.语言
a.《Effective Objective-C2.0》&编码规范。
b.Objective-C Runtime。(http://opensource.apple.com/source/objc4/)(Objective-C Runtime Programming Guide)(objc_msgSend实现细节:能为OC的实现有很大帮助)
c.The Swift Programming Language
②.GUI学习
a.View、Controller、Event、Layout、Draw、Animation(对他们掌握的深度,就反映了开发的熟练程度,因为iOS开发一般都在做这些工作)。
b.Apple Guide:(View Programming guide、View Controller Programming Guide、Event Handling Guide、Drawing and Printing Guide、Core Animation Programming Guide)(这些Guide讲得很宽泛)。
③.Xcode学习
a.工欲善其事,必先利其器。(一个人对IDE的理解,反映了这个人对这个语言,这个平台的理解深度)。(学任何语言都要重视对IDE的学习)。
b.Xcode Overview。
c.Xcode Project Management Guide。
d.Xcode编译、链接、打包各流程,配置,Xcodeconfig。
e.Xcode管理多工程、多Target。
f.熟练使用cocoa pods、plugin。
g.llvm。
④.网络
a.理解NSURLConnection、NSURLSession、NSURLProtocol。
b.Apple Guide:(URL Loading System Programming Guide)(Introduction to CFNetwork Programming Guide)
c.AFNetworking。
⑤.多线程
a.《Objective-C高级编程iOS与OS X多线程和内存管理》。
b.Apple Guide:(Concurrency Programming Guide)(Threading Programming Guide)。
⑥.逆向安全
a.Keychain Services Programming Guide。
b.《iOS应用逆向工程》。
⑦.学习资源
a.WWDC session。
b.objc.io。
c.需要熟悉原理和实现的开源库。(SDWebImage)(AFNetworking、Restkit)(AsyncDisplayKit/Pop/ReactNative)(ReactiveCocoa)。
3.知识体系,走向专家:
内功而非招式(3-5年iOS后,该做什么)(学了这些,如果你不想做iOS了,花很少时间,你就又能成为其它领域的专家)
①.数学(基础、高等数学)(数论)(概率论)、《具体数学》
②.操作系统
a.现代操作系统。
b.操作系统实现。
③.链接(Linding)与加载(Loading)。《程序员的自我修养》
④.ARM体系架构(汇编)
a.ARM体系结构与编程。
⑤.语言:
a.Scheme、Racker、Haskell、Prolog…。
b.C/C++/Java。
c.《面向对象编程导论》
d.《编译原理》:龙书
e.《计算机程序构造与解释》(强烈推荐)
⑥.算法与数据结构
a.《算法导论》
⑦.平台编程
a.《Unix高级环境编程》
⑧.设计模式
a.《代码大全》
b.《重构》
⑨.网络&数据库
a.计算机网络
b.数据库
企业需要怎样的iOS人才:
a.大公司更看重基础,成长性。
b.技术热情,不来自于说,来自于行动。
c.系统学习的能力,多看书,系统的规划技术。(不推荐用看博客的方式作为提升技术的主要方式,书籍养分更足)。
d.听、说能力。
e.敢于承担、敢于挑战。(胆大心细)
答疑:
1.大公司都看重算法和数据结构吗?
答:招应届生时,也没啥工作经验,就只有考查基础了,所以会考查数据结构和算法。
2.同时学几门语言,会学混吗?
答:同时学几门,并且同时用几门,确实有可能学混。但是,你学一门,并只用这一门,并一门心思思考这一门语言,就不会学混。
3.架构、逆向工程师很火,iOS就不行了。
答:iOS没啥好逆向的,已经比较安全了。
架构:iOS没啥好架构的,将苹果那套东西用起来就行了。国内也没几款App复杂到需要架构的程度。
想学架构,不如在看看其它领域,如看看安卓、后台开发,这样,谈架构,才有更大的发展空间。
4.苹果为什么推出Swift替代OC?
答:OC是一门很老的语言,80年代推出的语言。很多特性都非常老。
Swift很多对安全的考虑,对性能上的考虑,都比OC好。是一门更现代化的语言。
网友评论