不知不觉,作 iOS 开发也有一年多时间了,算是经历了从入门到初级的过程,最近也感到些许迷茫,不知道之后的路怎么走。下周立刻就要加入一家新公司去独立开发一个项目了,但愿接下来这一年能有不错的收获,交得出一份拿得出手的成绩单。趁这两天有空,找了些业内前辈们的经验分享,看看他们怎么说的,但愿本身能静下心来,一步一个脚印走下去吧!html
“无论完成度如何,我在两个月后东拼西凑都给他弄出来了。”ios
本身摸索,独立解决问题,学会举一反三,触类旁通git
多读源码程序员
**多看国外的 iOS 开发网站和 blog **github
“第一手的开发资料永远都是英文的,并且以英语为母语的开发者学起新技术来有自然的优点。”面试
有句话叫技多不压身,编程原本就是一个更新换代很是快的工做.每一年都有新的技术出现,我认为要成为一个出色的程序员只掌握一门语言确定是不行的。数据库
做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个个人iOS交流群:761407670 进群密码‘博客’,无论你是小白仍是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 你们一块儿交流学习成长!编程
- 从开始学习 iOS 开发半年后,就开始独立负责 iOS 端的开发工做。
从 2013 年 1 月建立「iOS 开发」微信公众账号,而后每周坚持更新,如今有超过 3 万 5 千的订阅量。设计模式
从 2013 年末开始撰写《iOS 开发进阶》,2014 年末完成。另外我还写了一年多 「iOS 开发周报」。安全
将公司的网络库,Key-Value 存储库开源,GitHub 上 Star 数上千。
坚持写 iOS 技术博客,如今完成了超过 100 篇原创文章,不少发表在 InfoQ 和 《程序员》杂志上。
入门:斯坦福的 iOS 开发视频课程
寻找志同道合的朋友,一块儿交流、讨论、分享
提升:
看 WWDC 视频
作笔记
读优秀 iOS 博客
写做
心得:
利用好碎片时间
“在我看来,当你作很差某一件事情时,时间一般是最大的借口。”
“不止是我的,组织的协做也应该培养习惯。”
“把大目标拆分红小的阶段性目标这一点很重要,它使得总体的时间安排是适当的,不会刚开始过紧或过松。另外一方面,很一次完成小任务的知足感,能够适当让咱们的大脑产生喜悦,最终使得任务更容易被搞定。”
“总会有一些事情,你不那么容易找到目标和成就感。”
“在软件开发书籍中,涉及上帝模式的图书也有不少,例如《设计模式》和《重构》,可是好的架构都是没法脱离实际业务的,因此大多数程序员都没法经过简单地看书就提升本身的上帝模式的能力,更多的提升方式是工做一段时间,有一些实际体会以后再看书,就可以理解书中的道理。”
农民模式的技巧
提高上帝模式能力
提高农民模式效率
番茄工做法
时间记录
平时多学习一些最新的 iOS 开发知识,减小知识盲区
专一于本身的精力是否集中,若是以为太累,就活动一下或者适当休息,不该该强迫本身 Coding
警戒混搭模式
“其实不管是 Objective-C 仍是 Swift,如今的目的都是写 iOS 和 OSX 的 app,那么其实对于绝大可能是状况来讲,语言自己并非很是重要,使用语言去和 Cocoa 以及 CocoaTouch 交互才是咱们平常开发中最经常使用到的技能。Cocoa 的编程思想并无随着语言的变化发生什么大改变,因此仍是应该把对于框架的学习放在首位。”
“如今可能在工做中使用 Objective-C 的开发者仍是占大多数,个人建议是在使用 Objective-C 的时候,也顺即可以“想象”一下如何用 Swift 更好地实现一样的事情。若是不是特别赶进度的话,甚至能够再用 Swift 真实地实现一遍。由于两种语言最大的区别就是 Swift 拥有更强的类型检查和安全性,因此若是可以特别关注这点的话,以后快速切换到新的语言去就不会有什么问题。”
“能够尽快开始动手实践开发一些 app。给本身定一个目标,好比花上几天时间或者一周的时间用 Swift 作一个能上架的简单 app 之类的。这个 app 不须要有特别复杂的功能,可能就是一个简单的天气查询提醒,或者是展现附近好吃又便宜的餐饮店面。与简单地写个 demo 相比,实际作一个真正的 app 对能力的提高所在的层次是彻底不一样的,后者须要更多的全局考虑和综合能力。很多问题只有在实践中才会遇到,才会被解决,而对应的能力也才能被提高。因此入门以后进一步提高的最好的路子就是实践,而后在实践中再去学习没有掌握的剩下的东西。
另外要注意的是,由于如今 Swift 还很新,不少东西并无现成的方案或者所谓的最佳实践。在遇到这样的状况时,最好询问下你身边的资深 iOS 或者 Objective-C 的开发者。由于 Swift 和 Objective-C 实际上是共通的,不少经验是能够参照借鉴的。”
“从我本身的体验来看,参与开源项目对于程序员来说是一种高效、快速学习成长的方法,不只如此,若是你是一个技术爱好者,参与开源项目你有可能找到本身的兴趣、本身的优点等等,进而从事本身喜欢的工做,那种感受真的太爽了。”
“另外参与开源在提高团队协做能力上有着比较明显的做用,一个有用的Issue反馈、有效的交流以及热情的帮助都会让咱们成长,从而运用到团队协做中去,那这个收获可见而知,不但让你在团队中突出,还能让你认识不少大神。”
“另外对于一些工做繁忙的程序员,平时忙于公司的项目,空余时间经过侧面的形式(参与开源),也是提高本身总体能力一个很不错的方式。”
“参与开源的乐趣就是能把本身的优点或缺陷分享出去,而且会有人欣赏你、纠正你、谴责你。”
“一个成功的开源项目,仅有本身一我的每每是不够的,经过多人合做的模式,把各自优势发挥出来,共同去维护一个有价值的、可持续发展的开源项目,最后获得收获将远远大于付出。”
成长之路:基础->入门->进阶->高级
“我以为不管学习什么,「速成」的心态是最要不得的,这只会让本身变得浮躁,只知其一;不知其二,整个过程也很难让本身的元学习能力获得提高。慢慢来,攻占一个城后,再去打下一个,这时心态也会平和许多。”
“这个问题问得很好。我工做快有10年了。而iOS职业开发也就刚作满3年,呵呵。其实我以为若是你们想往技术方向发展,那么首先要作的仍是把基础打好。把基础打好以后,能应付各类新的编程语言,各类处理器、各类操做系统平台。因此我建议你们在业余时间里把传统的大学里所学的科目再巩固好,好比操做系统、数据结构、数理逻辑、计算机体系结构、汇编语言、C语言、网络通讯、数据库。此外,你们也能够再熟悉一下HTML5相关技术,毕竟iOS所涉及的大多数都是移动互联网领域,因此有点HTML5知识的话会更好些。若是本身感受C语言学得还不咋样能够再巩固它。C语言就是计算机编程领域里的数学,是全部类C编程语言的鼻祖语言,并且从TIOBE排名上你们也能看到,它目前一直处于第一位。另外,Objective-C完美无缝地兼容C语言,就从这点上来讲,C语言仍然是十分重要的。
C、Objective-C与Swift的关系是:Swift是对Objective-C的封装,尽管这封装得改动很大,以致于你确实看不出它仍然是类C 语言;而Objective-C则是对C语言的封装,在C语言的基础上又添加了面向对象以及反射动态特性。因此,学好了C对于iOS开发来讲很是有帮助。
上述主要是讲iOS职业技术开发者如何能进一步提高技术能力。其实归根结底,就是把基础打好,而后能够尝试去专某一更专业的领域,好比通讯领域、3D图形领域、图像识别领域等。由于大凡作iOS的基本都是在应用层上捣鼓,应用层老实说作个一年两年能基本掌握,再继续下去对技术提高不大。
有些iOS开发者想要提高本身在公司的地位,我以为很大程度上取决于本身对所在公司的核心业务的了解状况。对于中小企业,产品设计人员以及策划不可能把产品描述得很细,有很多地方须要开发者对设计意图作思惟扩展。若是你对本身公司的企业文化、工做流程、核心业务逻辑都能很好把握的话,就可以作出超出指望的产品,再加上好好处理人际关系,要提高地位也不会是很困难的事情。
固然,我碰到比较多的仍是不少年轻的开发者对将来感到迷茫,不知道从此的路该怎么走。因此,我认为对于那些开发者本身先把心沉静下来,而后把基础打好,而后思考本身从此的技术走向。毕竟,iOS开发在很长一段时间之内都将是热门的技术岗位。
要想向更高的职位发展,除了技术以外,我认为还要有对产品的把控、甚至市场新动向的嗅觉。既然已经在这个行业了就必须学会如何不断学习,快速应变市场的新热 点。目前app开发处于快速发展变化的移动互联网的中心,开发者有机会作出引领潮流甚至改变世界的做品,这些经历自己就是宝贵的财富,只要打好基础,作足 准备,抓住机遇,将来的前途必定是光明的。”
11.学习的圈子特别重要!!
做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个个人iOS交流群:761407670 进群密码‘博客’,无论你是小白仍是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 你们一块儿交流学习成长!