提升自身的iOS编程水平 (转载)
阅读博客
在现在这个碎片化阅读流行的年代,博客的风头早已被微博盖过。而我却坚持写作博客,并且大量地阅读同行的iOS开发博客。博客的文章长度通常在3000字左右,许多iOS开发知识都至少需要这样的篇幅才能完整地讲解清楚。并且博客相对于书籍来说,并没有较长的出版发行时间,所以阅读博客对于获取最新的iOS开发知识有着非常良好的效果。
我自己精心整理了国内40多位iOS开发博主的博客地址列表:https://github.com/tangqiaoboy/iOSBlogCN,希望大家都能培养起阅读博客的习惯。
国外也有很多优秀的iOS开发博客,他们整体质量比中文的博客更高,以下是一些推荐的博客地址列表:
博客名 博客地址
objc.io http://www.objc.io/
Ray Wenderlich http://www.raywenderlich.com
iOS Developer Tips http://iosdevelopertips.com/
iOS Dev Weekly http://iosdevweekly.com/
NSHipster http://nshipster.com/
Bartosz Ciechanowski http://ciechanowski.me
Big Nerd Ranch Blog http://blog.bignerdranch.com
Nils Hayat http://nilsou.com/
另外,使用博客RSS聚合工具(例如Feedly:http://www.feedly.com/)可以获得更好的博客阅读体验。手机上也有很多优秀的博客阅读工具(我使用的是Newsify)。合理地使用这些工具也可以将你在地铁上、睡觉前等碎片时间充分利用上。
读书
博客的内容通常只能详细讲解一个知识点,而书籍则能成体系地介绍整个知识树。相比国外,中国的书籍售价相当便宜,所以这其实是一个非常划算的提高的方式。建议大家每年至少坚持读完1本高质量的iOS开发书籍。
去年出版的《iOS 7 Programming Pushing the Limits》 以及 《Objective-C高级编程:iOS与OS X多线程和内存管理》 都算是不错的进阶方面的读物。顺便打个广告,我自己也在写一本iOS进阶方面的图书,年底前应该能上市。
看WWDC视频
由于iOS开发在快速发展,每年苹果都会给我们带来很多新的知识。而对于这些知识,第一手的资料就是WWDC的视频。
通常情况下,一个iOS开发的新知识首先会在WWDC上被苹果公开,然后3个月左右,会有国内外的博客介绍这些知识,再过半年左右,会有国外的图书介绍这些知识。所以如果想尽早地了解这些知识,那么只有通过WWDC的视频。
现在每年的WWDC视频都会在会议过程中逐步放出,重要的视频会带有英文字幕。坚持阅读这些视频不但可以获得最新的iOS开发知识,还可以提高英文听力水平。
看苹果的官方文档
苹果的官方文档相当详尽,对于不熟悉的API,阅读官方文档也是最直接有效地方式。
苹果的文档比较海量,适合选一些重点来阅读,比如人机交互指南就是必读的,而其它的内容可以遇到的时候作为重点资源来查阅。
看开源项目的代码
大家一定有这样的感受,很多时候用文字讲解半天,还不如写几行代码来得直观。阅读优秀的开源项目代码,不但可以学习到iOS开发本身的基本知识,还能学习到设计模式等软件架构上的知识。
如果读者能够参与到开源项目的开发中,则能进一步提高自己的能力。
多写代码,多思考
知识的积累离不开实践和总结,我认为iOS代码量如果没有超过10万行,是不能称得上熟悉iOS开发的。某些在校的学生,仅仅做了几个C++的大作业,就在求职简历里面写上“精通C++”,则真是让人哭笑不得。
在多写代码的同时,我们也要注意不要”重复造轮子”,尽量保证每次写的代码都能具有复用性。在代码结构因为业务需求需要变更时,及时重构,在不要留下技术债的同时,我们也要多思考如何设计应用架构,能够保证满足灵活多变的产品需求。
在多次重构和思考的过程中,我们就会慢慢积累出一类问题的“最佳实践”方式,成为自己宝贵的经验。
多和同行交流
有些时候遇到一些难解的技术问题,和同行的几句交流就可能让你茅塞顿开。。另外常见的技术问题通常都有人以前遇到过,简单指导几句就能让你一下子找到正确的解决方向。
国内开发者之间的交流,可以通过论坛,微博,QQ群等方式来进行。另外各大公司有时候会办技术沙龙,这也是一个认识同行的好机会。
需要特别提醒的是,和国内开发者之前交流要注意讨论质量,有一些论坛和QQ群讨论质量相当低下,提的问题都是能通过简单Google获得的,这种社区一定要远离,以提高自己的沟通效率。
除了在国内的技术社区交流,建议读者可以去国外的stackoverflow:http://www.stackoverflow.com上提问或回答问题。
分享
值得尝试的分享方式有:发起一个开源项目、写技术博客、在技术会议上做报告。这几种方式都比较有挑战,但是如果能大胆尝试,肯定会有巨大的收获。
Posted by 唐巧 Jul 27th, 2014 iOS
提升自身的iOS编程水平 (转载)的更多相关文章
- 提高C#编程水平的50个要点
下面的文章转载于 提高C#编程水平的50个要点 1.总是用属性 (Property) 来代替可访问的数据成员 2.在 readonly 和 const 之间,优先使用 readonly 3.在 as ...
- paip.提升性能---并行多核编程哈的数据结构list,set,map
paip.提升性能---并行多核编程哈的数据结构list,set,map vector/copyonwritearraylist 都是线程安全的. 或者经过包装的list ::: collection ...
- [译] 二、开始iOS编程之前,你还需要做什么?
声明:本文翻译自AppCoda网站的文章:What You Need to Begin iOS Programming?,作者是创建者Simon Ng.如有异议,请联系博主. 更新:帖子已经重新被 ...
- 27个提升效率的iOS开源库推荐
DZNEmptyDataSet(UI,空表格视图解算器) PDTSimpleCalendar(UI,drop-in日历组件) MagicalRecord(实施活跃记录模式的Core Data助手) C ...
- IOS编程User Interface基础
IOS编程之User Interface基础 目录 概述 相关概念 常见问题 状态栏的隐藏 应用图标的设置 概述 IOS用户界面是APP呈现给用户最直观.最常用的方式,因此学会用户界面的编程是学习IO ...
- IOS编程之多线程
IOS编程之多线程 目录 概述——对多线程的理解 IOS中实现多线程的三种方式 NSThread 线程创建 线程的同步与锁 线程间的交互 线程的操作方法 NSOperation and NSOpera ...
- iOS编程——经过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(OC版)
iOS编程——通过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(OC版) 很多的应用都需要用到手机的唯一标示,而且要求这个唯一标示不能因为应用app的卸载或者改变而变化. 在iO ...
- 提高C#编程水平不可不读的50个要诀
提高C#编程水平的50个要点 1.总是用属性 (Property) 来代替可访问的数据成员 2.在 readonly 和 const 之间,优先使用 readonly 3.在 as 和 强制类型转换之 ...
- IOS编程教程(八):在你的应用程序添加启动画面
IOS编程教程(八):在你的应用程序添加启动画面 虽然你可能认为你需要编写闪屏的代码,苹果已经可以非常轻松地把它做在Xcode中.不需要任何编码.你只需要做的是设置一些配置. 什么是闪屏 对于那些 ...
随机推荐
- poj 1031 多边形对点(向周围发射光线)的覆盖
Fence Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 3018 Accepted: 1010 Description ...
- 小Z的袜子(bzoj 2038)
Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜 ...
- 动态AdvStringGrid完美示例 (AdvStringGrid使用技巧/Cells)
http://www.cnblogs.com/JackSun/archive/2010/12/16/1908104.html 此窗体,只需要简单准备如下,即可运行: 1,添加一个TAdvStri ...
- 接阿里云oss有感
看API,从头细看到尾,在这个过程中一定会找到你要找的东西.
- ubuntu下安装翻译软件
原文: http://sixipiaoyang.blog.163.com/blog/static/6232358820144146386437/ Ubuntu下常用的翻译软件有StarDict,Gol ...
- IntelliJ IDEA常用统一设置(Linux/Mac/Windows)
前言:如果说VS是宇宙超级无敌第一大开发工具,那么IDEA是当之无愧的第二大开发工具,将来有机会把VS干掉. 说明:除了以下说明的配置地方外,其它尽量保持默认,这样有利于团队代码风格的统一. 运行VM ...
- org.apache.catalina.connector.ClientAbortException: java.io.IOException: APR error:-32
org.apache.catalina.connector.ClientAbortException: java.io.IOException: APR error:-32 Most likely, ...
- 异常来自 HRESULT:0x800A01A8
Windows 10 Enterprise Microsoft Office 2013 – Excel Oracle BI Publisher Desktop 11.1.1.7 异常来自 HRESUL ...
- iOS10你掉坑了吗?
坑1: 系统导航栏上按键消失问题 坑2: canOpenURL 调用返回NO问题 坑3: iOS10 权限崩溃问题 坑4: xib不好用了?别怕看这里! 坑5: command +/注释失效 坑6: ...
- 【leetcode】 26. Remove Duplicates from Sorted Array
@requires_authorization @author johnsondu @create_time 2015.7.22 18:58 @url [remove dublicates from ...