原文
去年的11.11号我正式开始了我的程序员生涯,成为了一个iOS程序猿,到现在已经一年多了。
一年时间说长不长,说短也不短,之前我对自己2016年的目标也没有什么规划,毕竟作为一个半路出家,刚入行的菜鸟来说,懂的实在是太少,我也不知道这一年里面我需要往哪个方向努力,需要掌握一些什么技术,反而是有点好高骛远了,想要什么都会,swift,js,python都学了一段时间,游戏也看了一下,但是都没有坚持学下去。还好现在我的目标还算是明确,确定了先专心在iOS方面有所突破,进阶。
最近这段时间,一直危机感非常重,一个是iOS最近的行情确实是不太好,经常看论坛里面或者朋友出去找工作的,都是怨声载道,简历上没有写个两三年经验的都没面试。另外一个是一年下来,虽然学会的东西不多,但是也深刻感受到了,需要学的东西太多,毕竟我的起点比别人晚太多。经常想着如何快速的突破这个瓶颈,让自己的技术达到一个新的阶段,但是又无从下手。这也让我非常焦虑。
其实有时候”当局者迷“,很多时候我总是想有没有捷径,别人做开发两年三年,而我需要找到一个捷径在一年或者更短的时间里面赶上他们。但是这显然是不行的。我能做的只能是脚踏实地,花更多的时间在学习上面,落后的就用时间来追赶吧。
在一年的工作中,也算是有了一些小小的经验,所以现在也能够明白自己需要努力的方向,这段时间我也按这个这个方向在走着。2016马上结束了,我也给自己的2017进行了一些规划,虽然一直说”计划赶不上变化“,但是仍然是需要计划的,也算是督促自己的一种手段吧。
写这些是想给自己一些动力,也可以给跟我一样有些焦虑的iOS小白一些参考,或许我的进阶计划,对你也能有所帮助。
有一句话我很喜欢:
种一棵树,最好的时间是十年前,其次是现在。
现在,我要开始种树了。
1.读书计划
人丑就该多读书。。网上很多关于iOS进阶的书籍推荐,根据我自己想读的,我列出了几本,有些我已经看过了,但是都是笼统的看了一遍,我需要的是精读,所以,今年我决定每读一本书就写一篇读书笔记来记录分享,而不是过目就忘。
编写高质量iOS与OS X代码的52个有效方法 (Effective Objective-C 2.0)
这本书介绍了一些OC的语法技巧,runtime,内存管理等方面的知识,确实很不错,陆陆续续算是看了一遍,但是都没有认真记录,所以趁着2016还没有结束,我打算再认真的看一遍这本书。非常推荐!
iOS与OS X多线程和内存管理(Pro Multithreading and Memory Management for iOS and OS X)
这本书详细介绍iOS的内存管理,不厚,200多页好像,之前也算读过一遍,不过是过目就忘,但是不妨碍我认为这本书绝对算是想要学习iOS内存管理,block的最好的书,没有之一。 重点推荐!
iOS.Animations.by.Tutorials.v2.0
这是 Raywenderlich 出版的一本关于iOS动画的书,Raywenderlich的书是真不错,基本上每一本都是精品。不管是入门的书或者是进阶的书,强烈推荐去Raywenderlich的网站里面找找你想要学的。今年花了不少时间在动画学习上面,但是如果有时间,这本书我想我应该要再认真读一遍。
iOS Core Animation: Advanced Techniques
这本书同样是介绍iOS动画,但是侧重于介绍CALayer等各种原理行的东西,Raywenderlich的书则侧重在实践上面,各取所需吧,但是如果想要深入了解iOS动画的实现,这一本看完,基本没问题,推荐!
HTTP权威指南
这本HTTP权威指南我一直都想找时间读一遍,可惜每次都是读了一点点就进行不下去了。但是就是这一点点我也认为对我帮助非常大。如果想弄懂iOS中的网络相关知识,强烈推荐先看一下这本书,绝对事半功倍!
iOS网络高级编程(Professional IOS Network Programming)
这本书我没看过,网上有人推荐,因为我也想深入了解一下iOS的网络知识,所以先列入清单。
Cocoa设计模式
设计模式平时在工作中用到的总是那两三种,单例,代理,我想这方面也是我的弱项,需要补一补了。
OS X与iOS内核编程
这本书同样是网上有人推荐的,如果我能把上面所有的书读完,我想我会更加深入的想要了解iOS背后的东西了,不过这本书优先级我应该会放在最低。
2.官方文档阅读
其实,最好的学习方法还是读官访文档,因为大部分的书里面的知识都是来自官方文档,之前我总结了一些我想要看的文档,有些已经看过了,不过列在这吧,有需要的可以看看。官方文档一般都不厚,几十页左右,看的也比较快,虽然列表这么长,不要怕。电脑上,手机上下个Dash(现在iOS版的Dash已经开源),没事的时候看看,挺好。
View Programming Guide for iOS
Scroll View Programming Guide for iOS
Table View Programming Guide for iOS
Collection View Programming Guide for iOS
View Controller Programming Guide for iOSCore Animation Programming Guide
Animation Types and Timing Programming Guide
Objective-C Runtime Programming Guide
Blocks Programming Topics
Memory Management Programming Guide for Core Foundation
Key-Value Observing Programming GuideException Programming Topics
Error Handling Programming Guide
String Programming Guide for Core Foundation
Attributed String Programming Guide
Collections Programming Topics for Core Foundation
Number and Value Programming Topics
Core Text Programming Guide Text Programming Guide for iOS
Archives and Serializations Programming Guide
Networking Concepts
Networking Programming Topics
URL Session Programming Guide
Threading Programming Guide
Apple URL Scheme Reference
WebKit DOM Programming Topics
Stream Programming Guide
Quartz 2D Programming Guide
Core Image Programming Guide
Image I/O Programming Guide
OpenGL ES Programming Guide for iOS
Photo Capture Programming Guide
AVFoundation Programming Guide
Audio Session Programming Guide
App Programming Guide for iOS
Core Data Programming Guide
Date and Time Programming Guide
App Search Programming Guide
Local and Remote Notification Programming Guide
File System Programming Guide
Resource Programming Guide
Bundle Programming Guide
Property List Programming Topics for Core Foundation
Document Picker Programming Guide
App Extension Programming Guide
Document-Based App Programming Guide for iOS
Document Interaction Programming Topics for iOS
Address Book Programming Guide for iOS
3.开源代码学习
从开始做iOS,就一直十分羡慕那些在github上面开源的大神,iOS也有很多大神开源了许多项目。我一直没搞懂大神开源一个项目的过程,也一直没有去认真研究过哪个大神的项目。所以我选了三个(暂时只想弄懂这三个)我非常想学习的项目,准备仔细的去研究一下他们的源码,去看看大神们写代码的思路和了解一些我不懂的知识。目标就是每个项目写一篇学习笔记。
AFNetworking
SDWebImage
YYKit
4.WWDC回顾
想要学一个知识点,其实还有一个非常好的方法,就是看WWDC的视频。不过由于有中文字幕的比较少,可能看起来也有些费劲,最近在地铁上空闲的时间也看了几部WWDC的视频,感觉非常不错,电脑上的话,可以到github上的这个开源项目WWDC for macOS去下一个软件,速度很快,看起来也不错,在空闲时间看一看,肯定能有所收获。争取把想学的几个知识点的WWDC的视频都补上来吧,以前都从来没看过。。是一个不合格的iOS开发者啊。
5.项目
作为一个iOS程序猿,肯定会经常冒出一些想法,想要自己做一个App。我也有好多想法,但是到现在一年了也没做出来一个真正属于我自己的App,也算是有些遗憾啊。明年准备买一个开发者证书,现在已经在做和有想法的有两个小的项目,都是我想做出来自己用的,如果感觉不错的话,应该会上架,这两个项目一定要完成!这也是一个非常重要的目标。
有目标才有动力,列了这么多计划,希望2017过一个充实的生活,也希望2017过完回头看的时候,我这些目标都能完成!