一:思维导图总结,几大高级开发面试问题;
二:具体难点问题,看书、敲代码、分享……深入理解;
三:每个模块再细分计划,各个击破;
高级需要掌握哪些模块?
各个模块需要看哪些书、博客、文档?
一:UI
重写与封装Core Animation,UIDynamics
二:网络
NSOperation,GCD
TCP,UDP
Base64
JSON/XML
HTTP
Socket
蓝牙
三:性能优化
Time Profiler
内存管理
Instrument
使用 (Analyze)和 (Profile - Instruments)工具优化内存
四:计算机基础
数据结构,算法,编译原理
数据结构,算法
基本的算法和数据结构(排序搜索算法, 数组, 队列)
较复杂数据结构的灵活应用(二叉树, 图等)
复杂的专项算法(图像识别算法, 拓扑定位等等)
图解HTTP、图解TCP/IP
CSAPP(深入理解计算机系统)
五:测试
iOS自动化测试的那些干货
https://blog.csdn.net/hello_hwc/article/details/60957515
六:架构
设计框架:MVC,MVVM
设计模式:单例、工厂、代理、观察者
组件化方案分析及应用
网络缓存层搭建方案及应用
MVVM与Controller瘦身实践
https://blog.csdn.net/Hello_Hwc/article/details/73089418
《Pro Objective-C Design Pattern for iOS》
iOS 21种设计模式之抽象工厂(Abstract Factory)
https://blog.csdn.net/Hello_Hwc/article/details/50202675
七:系统类库
Core Data,Cocoa Touch(Foundation,UIKit)
八:第三方库
开源库(AFNetworking,SDWebImage,fmdb),开源控件(EGOTableViewPullRefresh,MRProgress)
微信、容联云IM、JPush、支付、高德地图
Masory、SDWebImage、MBProgressHUD、FMDB、MJRefresh、IQKeyBoard
CocoaAsyncSocket
iOS开源库源码解析之SDWebImage
https://blog.csdn.net/Hello_Hwc/article/details/51404322
iOS开源库源码解析之AsyncDispalyKit
https://blog.csdn.net/Hello_Hwc/article/details/51383470
IOS常用第三方类库
https://blog.csdn.net/sugar_i_love/article/details/51305649
iOS 项目源码大全 github 国内外大神
https://blog.csdn.net/qq_30513483/article/details/53159169
iOS超全开源框架、项目和学习资料汇总(3)网络和Model篇
https://www.jianshu.com/p/c59698c249e5
图像处理
GPUImage无疑是这方面的集大成者了。用OpenGL ES2.0来实时处理图片和视频流,性能和功能都是顶尖的。
开发和调试工具
PonyDebugger看上去是一个不错的调试工具,可以在电脑浏览器上远程调试iOS程序、查看试图层次、网络等等。CocoaLumberjack是个Log工具,号称是可以提供企业级Log,使用者也挺多。
九:底层原理
Runtime,Runloop,msg_send,hittest,respond chain
KVO
KVC
Block
十:进阶书籍
《Objective-C高级编程:iOS与OS X多线程和内存管理》
《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》
这本书(Rob Conery)和这本书(Gayle Laakmann McDowell)可能是我发现提升你的技能的最好工具。虽然它们只是表面上的,但它将为今后的学习奠定基础。
《iOS.Animations.by.Tutorials.v2.0》(这是Raywenderlich出版的一本关于iOS动画的书。)
《iOS Core Animation: Advanced Techniques》(这本书同样是介绍iOS动画,但是侧重于介绍CALayer等各种原理行的东西。)
《HTTP权威指南》(如果想弄懂iOS中的网络相关知识,强烈推荐先看一下这本书,绝对事半功倍!)
《iOS网络高级编程》(Professional IOS Network Programming)
《Cocoa设计模式》(设计模式平时在工作中用到的总是那两三种,单例,代理。)
《OS X与iOS内核编程》(了解iOS背后的东西)
《官方文档》电脑上,手机上下个Dash(现在iOS版的Dash已经开源),没事的时候看看,挺好。
《WWDC回顾》
《精通iOS开发》Cocoa 库使用
《iOS编程实战》完善,实用的 Cocoa 库使用说明,也包含少部分 Objective C 的特性介绍
《iOS Auto Layout 开发秘籍》Auto Layout 介绍,解释和使用说明
《Objective-C基础教程(第2版)》基础的 Objective C 知识
《Objective-C编程全解》完善的 Objective C 语言讨论,可以看做是 Objective C 的语言分析,各种原理类的描述
《iOS开发进阶》
《iOS测试指南》
《Swift编程权威指南》【有电子版】(NEW !)
《精通iOS开发(第8版)》(NEW !)
《Swift基础教程(第2版)》【有电子版】
《从零开始学Swift(第2版)》
《Swift iOS开发小书》(只提供社区电子版)
《Swift与Cocoa框架开发》【有电子版】
《精通Swift设计模式》
书籍大致分为四类:计算机基础类、入门类(不同语言的入门类书籍)、应用提升类(不同语言或框架)、提升类书籍(例如剑指offer)
十一:独立开发一个App
十二:语言
C/C++/Objective-C/Swift
HTML5,CSS,JavaScript,jQuery,Java
十三:框架
熟练使用Interface Builder,理解ReactiveCocoa框架理念,阅读源码;
理解Restful Api概念,会使用Restkit,进行网络资源传输;
iOS系统架构和常用框架
https://blog.csdn.net/bobo553443/article/details/78666760
十四:代码管理和优化
使用Git、SVN进行版本控制管理;
命名规范、编码习惯、测试标准
十五:功能开发
数据存储:plist,FMDB,NSUserDefaults,归档,序列化、反序列化,SQLite3,CoreData
音视频媒体:AVFoundation,FFMpeg
目标 ——
十大必读书籍
《Objective-C高级编程:iOS与OS X多线程和内存管理》
《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》
《HTTP权威指南》
《iOS网络高级编程》
《Cocoa设计模式》
《OS X与iOS内核编程》
《官方文档和WWDC回顾》
《Swift编程权威指南》
《精通Swift设计模式》
《Swift与Cocoa框架开发》
十大资深技术博客
筑梦师Winston
https://www.jianshu.com/u/c6b20dcdeb81
https://github.com/LeoMobileDeveloper
https://blog.csdn.net/Hello_Hwc
https://www.jianshu.com/u/2de707c93dc4
OneV's Den 王巍(喵神)
NSHipster
limboy, 一个程序员、设计师、创作者,钟爱精良的产品,闲暇时喜欢翻看各类书籍,偶尔也会写点文章。目前就职于蘑菇街,主要负责无线基础相关的事情。
Kevin Blog
http://blog.sunnyxx.com/page/2/
郭晓东的专栏 - IT工匠——只为更精致的产品
https://blog.csdn.net/daiyelang
标哥-iOS攻城狮
https://blog.csdn.net/woaifen3344
https://www.jianshu.com/u/811a70f4726a
https://www.jianshu.com/u/368a8cd349af
https://www.jianshu.com/u/9913981cb400
https://www.jianshu.com/u/3dd433cb3ea1
https://www.jianshu.com/u/93131dfba96a
https://www.jianshu.com/u/0cf7d455eb9e
十大第三方库源码分析
AFNetworking
SDWebImage
FMDB
MJRefresh
YYModel
HXPhotoPicker
ZFPlayer
CocoaAsyncSocket
框架:nimbus、BeeFramework、ReactiveCocoa
十大高级iOS知识点
MVC、MVVM框架
设计模式
KVO、KVC、Block
GCD、NSOperation、NSThread
内存管理
Runtime,Runloop
TCP/IP、HTTP、Socket
plist、FMDB、NSUserDefaults、归档、序列化/反序列化、SQLite3、CoreData等数据存储
FFMpeg、音视频媒体
十大github关注学习
Leo
LeoMobileDeveloper
https://github.com/LeoMobileDeveloper
Phodal Huang
phodal
待我代码编成,娶你为妻可好
halfrost
halfrost
天道酬勤,勤能补拙。博观而约取,厚积而薄发。
文明
zhengwenming
https://github.com/zhengwenming
Story5
Story5
个人模块具体时间安排?
我的3-5年的个人规划,从初级开发到高级开发,再转型专注于做产品到做一个真正的创业者。
一:从离面试最近的开始复习,比如先看《面试之道》这本书,把高级必须掌握的KVO、KVC、Runloop、Runtime、设计模式、框架等等都先掌握,好一边面试一边发现自己的不足,包括技术上的不足和自我认知的不足。同时学习别人的博客和开源项目,自己要从用轮子,到自己模仿造轮子这个目标来突破。
二:从计算机基础来突破,比如对HTTP的理解,C/C++语言基础,算法,数据结构等等。
三:往全栈工程师发展,语言:Java、Swift、H5、PHP、JS等等,安卓,web前端,后台,产品,UI都要会。
四:在产品经理这条路上走,开始独立或者寻找志同道合的人一起开发小而美互联网的产品,做有内容有深度有意思的产品,而不是仅仅是为了赚钱,要追求人性之善而不是人性之恶。
做好计划,要开始实施了。先做个预计的时间。心里有个底,大概多久能成为高级开发。现在心里估计!看本《面试之道》里面都有很多知识不懂,Swift不懂,OC的基础和算法都很差,这本书搞懂,理解透我估计都要一个月。然后再发散其他iOS高级知识点,突破5个难点的话,一个两周,也要两个月,相当于就是突破基础就要三个月。再加上架构,设计模式,第三方源码分析,至少还得三个月,如果再研究视频框架,底层原理,算法,数据结构难点,还得三个月。再学安卓,后台,web,UI,产品,一门至少三个月才能到入门的水准,我先就学入门水准的话差不多了吧!!!这样算下来,实现我的高级开发的目标,大概的时间是 —— 25个月,也就是说至少得两年的时间:
1:《面试之道》面试常见问题分析 1个月
2:iOS高级难点突破5个 3个月
3:架构,设计模式,第三方源码分析 3个月
4:FFmpeg,算法,数据结构,HTTP,底层原理 3个月
5:安卓入门 3个月
6:后台入门 3个月
7:web和小程序 3个月
8:UI设计,PS 3个月
9:产品设计 3个月