如何两个月零基础转本学开发,一个月做出被苹果推荐的App

我做了5年PPT来分享几个让我惊叹嘚PPT技巧。这些技巧可以为你打开了新世界的大门。如果觉得写的不错的各位知友们一定要点个赞哈,我还会再来补充的11月20日更新~

它嘚效果图,如下方所示: 其实它的数据原本是下图这样的 我们选中数据系列…

}

iOS 开发怎么入门

请问有设计模式、内存管理方面的资料吗?最好有除了官方文档之外的其它内容

543赞同反对,不会显示你的姓名
郝健宗曾经的注册会计师,如今鹅厂iOS工程师
刚开始做程序员的时候曾经把自己自学iOS开发的一点经验写在这里分享。不知不觉至今也获得了400多赞。后来陆陆续续有人私信我咨詢iOS学习的问题最近有一位大四的学生给我发私信,我觉得他遇到的问题比较典型下面我把他的问题和我的回复贴出来,供参考

我的計划大概是这样的:先看计算机导论课程,然后开始学习C语言编程后续大概通读一遍SICP、CASPP、算法导论,然后学C++ primer学到这里就开始学习object-c/swift,然后自己做一个app带着这个去找一份工作。 我的计划会不会太偏重原理了呢 我总是担心基础不好的话后续职业发展会受印象,却又怕┅年时间完成不了这么多到时候连工作都找不到。 请问我应该怎样平衡呢 或者我可以先学一部分基础,然后先尝试实践完成app开发以後再补回来? 您觉得在iOS开发过程中哪些基础是比较重要的呢

你好,我将我这两年的一点经验尽量说明白供你参考

先说我的看法,不客氣地说你的学习计划过于庞大,要学完这些知识不要说一年,三年可能都不够所以非常不建议看完你罗列的所有知识才开始进行app开發。

就我的经验来说我是用晚上和周末来学习的。我用业余时间看算法导论半年只学了1/5,后来还是放弃了去年花了足足半年学习Code Complete。紟年开始学习CSAPP花了半年时间学了差不多一半。

基础知识对于职业生涯确实非常重要所以我会在今后的职业生涯一直保持学习。但是如果不是已经在从事iOS开发工作我肯定不会看这些书。

所以对于你来说如果想从事这份职业,要先学习写一个iOS app最必需的技能通过解决问題驱动自己学习!学习这些技能,对于一个两个月零基础转本的人我想fulltime学习3、4个月应该足够了。这些知识包括:Objective-C或swift的基本语言知识、Cocoa框架的基本知识、xcode的基本用法在这个阶段,找编程的感觉跟网上课程编一些课后作业demo app是一个好选择。

在这个阶段你甚至可以不用学习C、算法、计算机系统等。

但是可以花时间想想自己用4个月时间从产品角度想想,可以做出一个什么样的app在纸上画一下app产品流程图,争取弄一个出来

遇到问题怎么办?自己查资料问人,解决

然后你会发觉需要解决的问题越来越多,需要了解的知识越来越多你之前羅列的资料自然就有动力每天学习下去了。

非常欣赏你学习基础知识的渴望但是要注意办法,不要尝试一口吃下整个大象

自己去年12月嘚时候说要更新一个详细的答案,结果就被我自己烂尾忘记了最初写这份答案的时候自己还是在摸索阶段,推荐了下面这些材料:
斯坦鍢大学的CS193p公开课:最新版是2013年winter课程不仅包括iOS入门基础知识,而且还会布置由该教授亲自设计、涵盖整个课程的作业
苹果官方文档:每┅份GUIDE都是一本迷你的教材,写得很精致而且每一份guide都会延伸到其他知识。可以从这篇开始:马上着手开发 iOS 应用程序
上面这三分资料,確实就是我刚开始学习iOS开发的时候用得最多的资料在着手开始iOS Code之前,需要学习相关Objective-C的知识
对我帮助最大的可以说是CS193p这个课程(免费的哦),我跟着这个课程一行一行代码完成布置的作业课程完成之后我就能够自己写一个简单的app出来,并且我也知道该在哪里问问题、怎樣找答案(很重要)
当我了解整个app的制作流程之后,我就给自己定计划1个月之内必须开发出一个app,从原型设计、界面设计、到CODE
最终峩做了几个实验性的app,虽然没有在app store上架但是能够在自己的ipad、iphone上运行展示,我就拿着这几个app去面试很幸运地找到现在的工作。
工作之后┅直在使用的材料:
苹果官方文档必须的参考书;
Github,搜索关键词iOS或者objective-c会发现很多高手已经把大部分基础性功能实现并且贡献出来了;
叧外teamtreehouse提供收费的在线教程,应该比较容易入手
所以我认为,其实用什么材料虽然也很重要但是市面上优质的材料呢,不外乎那么几份最重要的是自己有一个idea要落实下来把它完成、写成一个app,这个过程当中自己自然就会去找答案、找材料、解决答案啦
希望能帮助到跟峩一样初学入门的朋友。
编辑于 57 条评论 感谢
收藏 ? 没有帮助 ?
3736赞同反对不会显示你的姓名
李高伟、刘其润、CMmoo 等人赞同

我反对理由如下:鈈管是斯坦福大学的CS193p公开课、苹果官方文档、绝大多数市场上庞杂的教学书籍都不是很适合入门同学看,想入门的话应该选用学习成本最低的方法从最最基本开始讲起,并不是一味的讲解语法与知识而是一边实践一边学习知识才是最好的学习方法。

并且我想告诉题主伱问的是iOS 开发怎么入门,但是你补充说明里说道的设计模式、内存管理等内容暂时不用你关心等你真正iOS入门了以后在研究吧。也许我可鉯这么定义你的问题:

一个略懂编程的人并且完全没有接触过IOS开发的人想要学习IOS开发应如何学习

注:这个教程是英文原版,并且收费呮免费提供一个app的教程。如果看完了这个免费的教程觉得还挺想继续学的请参考 @王寒 老师的翻译教程(只有前3个app教程第4个教程刚出,国内應该还没有人翻译如果想看只能付费)。PS:(现在开发iOS应用基本都是用Objective-C,至于刚出来的Swift现阶段暂时不推荐学习如果想了解王寒老师也做了swift版本嘚The iOS 附上王寒老师教程下载地址:/
5、objc中国:/ (难度指数:※※※※※)
理由:他的swift的新书讲解的非常好,但不适合入门进阶的话这是很适合嘚一本书。其他关于OC的内容可以翻看喵神的博客
链接: iOS开发如何提高 (难度指数:※※※※※)
理由:据传说是iOS圈的刘德华。巧哥05年1月会出┅本进阶的书可以关注以下。
3、叶孤城的技术博客 :
链接:叶孤城带你读源码之RESideMenu (难度指数:※※※)
理由:叶孤城童鞋的风格就是讲解细膩通俗易懂。
链接: 旧博客:念茜的博客
理由: iOS圈里的女神级人物她写的iOS安全类的文章非常值得一看。
理由:90后iOS开发者技术同样非常强,目前似乎在百度知道任职
等等...iOS圈内值实力很强又懂得分享知识的开发者绝不止以上几位,我随时想到随时再补充

(二)swift语言开发iOS应鼡

这里推荐两个入门学习比较好的方法

这个网站可以看两方面:
(1)、随时更新的swift tips (有一定水平在看)
(2)、新手主要看以下这本书

喵神的这本书網上就有售卖,请支持正版绝对是不可多得的进价书籍,此书并非传统意义上的教程是以tip的方式呈献给大家的。


等我想到再补充以仩。
编辑于 191 条评论 感谢
收藏 ? 没有帮助 ?
106赞同反对不会显示你的姓名
aaaron7,人人都在内心深处期盼着世界末日的到来
楼上的各位大神,已經从技术层面说得足够多得了我来说点虚得把。

说白了就是一个学习方法的问题,这点不只iOS其实任何编程都是一样得。

很多人学编程主要就看书看视频,甚至跟着视频开发但也觉得没用。 为什么 因为在这个过程中并没有真正动脑,所以这其中得知识点也很容易過目就忘

这个逻辑,在背单词上也有运用同样都是看单词:
1. 看一眼英文,想一下是啥意思想不起来,再去看中文
2. 看一眼英文,看┅眼中文

重复看几遍1和2效果相差巨大。 按1看三遍你基本就记住了。按2看三遍你还是啥都记不住,连一点印象都没有


其实你去看任哬书,看任何视频都是没用得。
跟着书跟着视频敲代码,作用都是很小得

怎么办?其实很简单和上面背单词得例子一样。

你把你看书看视频想要学习得知识点列一个表,然后你YY一个AppApp得功能能够尽可能多得覆盖到你得想要学习得知识点。

然后建新工程开始写。遇到不懂不会的先思考想不出来再去查书查视频,不要随便问不要做伸手党,因为你得到知识得过程越容易这个知识就越不属于你


伱会说, 我刚开始学耶,怎么可能就独立做App

这是很多人最都犯得错误,我觉得最核心得还是中国得计算机教育得方法不对为什么很多人嘟会认为“独立做个App”很难? 是因为他们潜意识里学习编程得过程是这样得:

2. 我要开始做项目了,这个时候发现不管看啥东西好像都挺难做得,而且似乎自己学过得东西也没什么印象了,函数也不记得怎么用

简单的讲:逐一学习了每一块积木的形状与用法,然后别囚给你一座城堡你去思考如何造个一样得出来。(思维是逆向的解题式的,过程是漫长的成就感是没有的,挫败感是一直有的)

那囿没有更有效得方法呢 我觉得是有得。
分享一下我中学学VB的过程
1. 拿到谭浩强老师的书翻了两页,学会了InputBox(弹出一个输入框接受用户嘚输入,函数得返回值就是用户输入得字符串) 以及MsgBox(弹出消息框)得用法

2 灵机一动,貌似能做点东西了
(当时很流行一种网页,你进入後会不断弹框问你得好朋友名字,你的名字你暗恋的女生名字,最后生成一篇有意思得文章)


3. 没错我就山寨了一个这种应用得Windows Form版出来其实就靠这两个函数。这就是我第一个“独立App”

4. 之后又想到诶既然能接受用户输入,岂不是就能做计算器了于是为了实现计算器,叒间接学会了基本得数学库textbox, button等控件得用法

这种方法,简单的讲:学习了一些积木得用法就尝试用这些能搭出不同得东西,在这个过程Φ逐渐学会了其他积木得用法然后再尝试搭出更厉害的东西,以此循环(思维是正向的,创造性的过程是短暂的(拆解成了不同的階段),成就感是一直有的挫败感是暂时的)


编程本质是创造,创造本身是令人愉悦的所以其实找对方法,学编程是一件很快乐的事这一点比其他行业好很多,比如你学再难得编程都比考CPA要爽。
编辑于 27 条评论 感谢
收藏 ? 没有帮助 ?
738赞同反对不会显示你的姓名
苏菲,公众号:SophieinTokyo 见过四大洋和北极…
kaixian、阿滔、安逸羊 等人赞同
感谢这个问题下给予iOS初学者诸多帮助的答案以下是我从7月份开始学习iOS以来所做嘚事情的整理,供后来者参考答案中所推荐论坛和学习资源都是我自己用过的。

一台Mac Pro或其他苹果电脑
如果你是工作上进行iOS开发别忘记詢问你所需要的开发相关的账号,比如查看错误日志或者共享代码资源等

我的背景:编程经验为今年4月开始接触java三个月,无C语言经验無objective C经验。对开发完全没有概念但是需要快速掌握。看视频和循序渐进的方法都不适合我

1. 不知道先学什么,所以简单搜索发现国内比较權威的论坛一般来说国内比较大型的论坛都会有新手需要的整套资源。发现这个新手初学 iPhone 开发的路线图这个图建议没接触过C语言的人先去学C。因为我要快速学习所以放弃然后到zhihu本问题下阅览 @若虚行的答案,里面有提供很好的入门地图但过于复杂。这两个资源都比较適合长期学习的人制定计划

1. 简单的基础知识普及(0.5天)
强烈推荐这个链接:iOS开发新手专题
里面解说了很多很基础的概念和名词,对我这種完全无IT背景的人来说是救星还包括了objective C语言的快速入门,对于会一门以上编程语言的人来说节省了不必要的时间
2.找了一本简单易懂的漫画objective-C教程。因为通过java知道了基础的编程思想所以主要是熟悉这门新的语言。里面有些内存管理之类的光是看书很难有具体的理解,没關系读完。(2天)
2. 粗读iPhone App Programming Guide主要目的是了解这门语言的特点和能干什么,和我知道的java的区别知道有什么功能即可,实际编程时再翻开参栲(1天)
4. 把 iOS6实践指南 里面还没有涉及到的部分读懂做会。(我只是2天过了一下没详读所有部分,建议有时间的人用一周去熟悉每个部汾)
5. 利用公司的资源制作一个餐馆搜索App(3天)

经过STEP 1的学习,我大概对iOS开发有了一个极其极其粗略的认识包括它的MVC模型的构建方法与当姩用java写网站不同,包括它的内存管理比较麻烦包括它的.h 和.m文件以及里面的属性等设置时需要注意的。但是对这些认识我都还没有清楚的答案

编程在书本上往往是非常抽象的概念和讲解,在这门科目上我完全是个实践型的学生看书总是一头雾水,只有实际做东西才会有荿长所以带着这些极其粗略的认识我进入到了第二步。

学习方案STEP 2: 大量的代码阅读和一点点动手

带着这样粗浅的学习我就进入了iOS开发团隊。无论是leader还是我自己都觉得这个水平简直不能写代码但是leader还是给了我一些非常简单的工作,比如调整UI把AB TEST真正写入程序等等。在这个過程中我首先得把自己负责产品的代码读明白至少得知道修改哪里才行吧!在阅读前辈们写下的代码时,STEP 1里面的那些疑问就一点点清晰起来了

读书终究是泛泛而过,而当你有一个目的或者任务的时候才会去真正理解每一行代码的意义。对于没法在公司接触代码而是自學的朋友可以去这个问题GitHub 上都有哪些值得关注学习的 iOS 开源项目? 下用github下载开源代码阅读(到了这里,GitHub也应该是你列入学习计划的东西の一)
如果有一个精通iOS的人在你身边随时解说是最好的了。但我们都很难有这种机会所以善用google,善用Stack OverFlow(一个类似知乎的编程Q&A网站)大部汾问题都可以通过搜索解决。

往往我在写代码的时候都是边开google搜索边学习边写的。虽然不比专业的iOS编程者速度但至少超过了leader对我预想嘚开发速度。当然写代码仅仅是开搜索和copy-paste是不行的但在初期做非常简单的开发时,这样的方法可以让你快速上手又能品尝到编程的乐趣

对于自学的同学,我的建议是看过一些案例之后,你可以试着把案例中的各种功能重新排列组合教程很多是做一个带相机功能的app,戓者一个checklist做起来很是乏味。你要定下一个真正想做的东西并且好好地画出UI设计,不要想着只是练习代码这个过程会是乐趣无穷而且充满挑战的,认真的态度也可以让你坚持在遇到困难的时候也做下去


再往下我只能推荐你去继续写。因为我觉得学习编程最好的途径就昰 实践-遇到问题-解决问题但是一直到STEP 2我们都是在写各种各样简单的小程序,多少也腻了
1. 找一份可以允许现在的你进行iOS编程的实习或者笁作。(这也许较难因为大部分公司都希望直接找到生产力而不喜欢慢慢培养初学者)
2. 找几个有想法的筒子一起认真做个项目。(如果伱的团队里有编程厉害的人更好但你必须相应地提供自己的价值)这和自己练习是不同的。


再往后的学习就是反复的进行STEP 3的1和2啦。当嘫在这两个过程中与各种人的交流啊,搜索啊进一步的书本学习都是可能发生的。但我觉得贯彻1或2的行动是最重要的没有他们,你佷难保证持续的学习动力
编辑于 55 条评论 感谢
收藏 ? 没有帮助 ?
78赞同反对,不会显示你的姓名
因为这个问题很多人来问我iOS具体的学习路径戓者培训班的情况我在回答过一些同学的问题后,意识到你们最终目的是想学会iOS然后找到一份工作而培训班或者自学都是一个比较漫長的过程,至少3个月以上而且还会付出很多金钱和自己的时间,甚至中断一段时间自己的正常生活节奏承担的风险也太大,而像我这樣的经历我现在回想起来也觉得不是值得借鉴的,至少对于单纯想靠iOS学习找到一份工作的同学来说我觉得最多当个参考,有个具体的認识就好
今天回答一个同学关于培训的问题的时候,突然想到我转行后找到的第一家公司同样有个和我一样转行的同事,之前在一个尛城市当老师半年后果断辞职,来成都用了两周时间面试并被录用之后在公司先看一个月iOS开发的书,然后跟着别人做项目最开始写朂简单的界面,三个月时间就算iOS开发入门了2014年三月份去了深圳,现在也在一家比较好的公司
所以不管自学也好,培训也好最终目的都昰要去公司上班做项目而且培训和自学出来同样需要到公司去经历项目才能算真正成为iOS初级开发者。很多时候我们做选择的时候以终为始该怎么选就很清楚了我同事的方法就直接省去了自学和培训的时间,也不用脱产这是我现在想到的最快速和具备可操作性的方法了。
1.他之前C语言基础比较好面试的时候C语言的笔试题全对,所以老板才要的他所以你本身就要有一定的计算机理论基础和编程基础。
2.有嘚公司比如我之前那家外包公司会专门找还没毕业的相关专业实习生,一般一个月时间就可以上手跟项目了但是工资不会高,也不会轉正但是只是攒技能点去的话,努力学几个月等到自己技能点攒足了走就行了他想要廉价劳动力,我们想要技能点也不亏。但是这種公司我当然非常不建议去因为学到最基本的东西后剩下都是重复的体力劳动,非常辛苦不说还对个人成长不好只是作为转行来说算昰一个选择。
3.自己想要在三个月内就完成iOS语法学习到能参加项目需要个人非常努力。
这三点具备我觉得这条路才可行希望有同学看到後能带来一点启发和不同的视角。

我是一名iOS开发者自己从零完全跨行自学iOS开发。已经做了很多项目现在呆的公司马上独立完成第二个項目了,算一个中级iOS开发者了吧现在的待遇在同样工作经验的人中算中上的了,我为什么说这么多呢因为这个问题其实光一篇文章真嘚能起到的作用很少,我非常明白刚开始学的时候那种无头苍蝇一样的无力感我现在在成都,周末一般都有空所以可以当面聊一聊,問问你具体情况给出一些学习路径建议和一个对iOS技术大体全面的视角因为我当初自学时也受过很多人的帮助和鼓励,所以没有任何回报偠求吃饭钱我给都可以。
编辑于 65 条评论 感谢
收藏 ? 没有帮助 ?
618赞同反对不会显示你的姓名
知乎用户,少刷知乎多读书
在答题之前我偠先感谢知乎上关于iOS开发入门的所有提问和答案。没有这些提问我不会萌发自学iOS开发的念头;没有这些优秀的答案和答主们的励志经历,我也坚持不到最后在这里,尤其要感谢 @郝健宗 @苏菲 @王杰 @Judy Zhu @张中宝 @Wang Hailong 这几位前辈的答案对我帮助很大。

最近我找到了一份iOS开发的正式工作所以想把自己学习iOS开发过程中的经验和心得写出来,希望能够帮助那些努力但迷茫的初学者


首先介绍一下自己的背景,我大学学的是機械专业与计算机有关的课程只有一门C语言,在接触iOS开发之前我已经在一家机械制造行业的公司工作一年多,做的工作也与计算机毫無关系所以我属于两个月零基础转本转行。


2014年10月出于对机械行业的种种失望和对互联网行业的浓厚兴趣,我萌发了转行的念头于是開始利用下班时间自学计算机知识(Java、Python、数据结构与算法)。学了大概两个月基本的东西有了大致的了解,但是感觉要熟练掌握还是任偅道远由于时间安排上的原因,我就将重心转移到iOS开发上面


2015年1月,我开始开发我的第一个iOS应用这款APP从第一行代码到苹果App Store上架用了大概两个月的时间,但总的时间跨度有接近4个月(春节期间停滞了一个多月等待苹果审核10天)。APP上架后我就开始投简历,并拿着我的APP去媔试很幸运地拿到了几个还不错的Offer,然后就挑了一个去上班了


下面就是我自学iOS开发的一些经验和心得。

这些是做iOS开发必须要有的而苴是一大笔钱,但不要怕花钱因为这些都是值得的。如果能够学有所成一两个月的工资基本就回本了。就当是自己交的一笔“培训费”吧

如果你和我一样是两个月零基础转本转行iOS,那么一定要有破釜沉舟的勇气和决心并做好打持久战的心理准备。如果畏手畏脚、瞻湔顾后我劝你还是想好了再来,免得浪费时间和金钱我当初收入很低,是拿了3个月的工资买的Macbook还天天担心丢了或者弄坏;后来学习箌小有所成时毅然选择了裸辞,孤身一人来到陌生的上海经过2个月的待业状态才找到工作。这一路走来都承受着巨大的精神压力和物质壓力

1. 对编程的基本认识

如果你是完全的两个月零基础转本,我建议先要对编程有个基本的认识建议从C语言入手,因为C语言比较简洁易仩手并且和Objective-C很相似。


视频推荐网易云课堂的 “计算机专业体系”课程很适合入门。

当对C语言有个大致的了解后就可以开始学习Objective-C了。

紸:这两本内容都差不多但《Objective-C基础教程》写的更好、更经典,建议以这本为重点精读但是这本写的比较笼统,难度稍高所以如果遇箌不懂的地方就看看《Objective-C程序设计》,这一本写的简单、详细一些


需要掌握并熟练运用的地方:

1) 面向对象编程的基础知识。包括:面向对潒与面向过程的区别、为什么要面向对象编程类、对象、继承、方法、属性、接口等概念的理解与使用。

有了Objective-C基础就可以开始边看斯坦福公开课边做APP了(个人觉得没有OC基础直接看这个会很吃力)。视频如下:


推荐书籍:《精通iOS开发》

苹果官方有个做iOS应用的教程——《马仩着手开发iOS应用程序(Start Developing iOS Apps Today)》强烈建议以这个Demo作为你的第一个iOS应用,因为这个教程能让你对一个iOS应用的搭建有个非常全面、细致的认识完成叻这个Demo后,就可以结合斯坦福公开课学到的东西创建属于你自己的APP了

1) MVC设计模式。只有理解了iOS的MVC架构才能把一个应用解剖成一个个单独嘚部分,这样你在开始做一个项目的时候才不会茫无头绪

2)UIKit的各种控件。特别是UITableView和UICollectionView一定要掌握因为大部分的iOS应用都是由这两种视图搭建,吃透了它们那可玩的花样就很多了其乐无穷。

4) 场景切换的实现——Segue熟练使用Segue很重要,因为一个应用一般都是各个界面轮流出现的兩个界面之间怎样实现跳转、怎样将一个界面的数据传递到下个界面,这都是实际开发中会遇到的问题

5) Storyboard和AutoLayout的使用。这两者是一个应用的UI堺面设计不可或缺的部分

7) 第三方库的使用。参考:GitHub 上都有哪些值得关注学习的 iOS 开源项目 - 编程


4. 坚持写代码、查文档、读技术博客

学习编程,一定要勤于动手看再多的书、再多的视频,如果不动手敲代码都是白搭哪怕书上和视频上的代码你一行都看不懂,也要亲手把代碼敲一遍、把Demo亲自实现一遍这很重要。编程是手敲会的不是眼睛看会的。


学习iOS开发的过程中有遇到不懂是正常的,别害怕不懂Cocoa的內容细节本来就多,每年的WWDC还会发布一些新技术所以遇到不懂的知识一定要学会查苹果官方API文档:iOS Dev Center


做APP时,如果一个地方不会实现或者遇到解决不了的问题,一定要学会使用Google搜索一般来说,初学iOS遇到的问题Stack Overflow上都有类似的提问,基本一搜一个准

如果你能按照以上所述莋出一个APP上架并找到工作,那也基本算是入门了但这并不是终点,这只是一个新的起点iOS开发,乃至整个计算机/互联网行业后面的路還很漫长。苹果的整个Cocoa框架可谓是博大精深,里面可以深挖的东西太多了;而且一个程序、一段代码可以进行的优化是没有止境的作為开发者,只会一门语言是不够的网络编程、数据库、算法、设计、交互等等东西都是需要掌握的,而语言只是实现这些的工具语言其实是最简单的。


此外如果你和我一样是非科班出身,还需要把计算机基础课程补回来即:数据结构、算法、操作系统、数据库、计算机网络、编译原理等。因为这些知识是你的“内功”这些基础直接决定了你在这个领域的天花板所在的位置。


当然基础差一点也问題不大,最重要的是你对计算机、互联网的热爱和热情你需要有很强的自学能力,不断地去学习新知识才不会被这个日新月异的行业淘汰;你需要保持一颗好奇心,不断地尝试和接受新事物不断地创新,守旧的人在这个行业无法生存在我找工作的过程中,那些知名嘚大公司都是直接在简历关就将我刷掉了而那些给我Offer的公司,无一例外都表示之所以选择我是因为欣赏的我的热情、看重我的自学能仂。


所以如果你和我一样对iOS开发充满热情,敢于接受挑战那么就从现在开始努力吧,我在前方的路上等你!

——————————————————————————

iOS开发QQ交流群:加群请注明知乎。

——————————————————————————

编辑于 76 条評论 感谢
收藏 ? 没有帮助 ?
98赞同反对不会显示你的姓名
1.更新了推荐书籍以及书本出处。

入门呢先多了解下iOS开发的知识树。树上有什么夶枝大叶心里有个数最好。平时多看看书多和前辈讨论技术,就get很多经验的选对了位置,再逐步突破不懂的点之后开始研究一些囿深度的领域,一万小时定理你懂的


接着,大概罗列下一些技术划分

这部分内容研究,建议拿一些开源企业级框架进行学习本人当時是哪BeeFramework上手,Bee框架算是很好的MVC模式学习框架了XML UI + Signal的View构建方式也挺优秀的。不过可惜的是现在Bee已经不再维护了所以就拿来学习吧。


开发技術之外的还包括:
3.调试各种小技巧比如断点(条件、全局)、lldb调试基本指令、NSZombieEnabled、
4.一些基本概念的理解,比如进程、线程、同步、异步、隊列、串行、并发

在这个阶段呢,我们应该更多关注性能和业务方面的优化

VLC组件使用频率较高,但其中部分不需要的解码库可以适当嘚剥除以降低库大小SDWebImage可以细致的去研究他的加载策略缓存策略。CoreAudio、COreGraphics能够调度硬件进行编解码提升效率多半是Android一时半会达不到的。

1.设计模式熟悉MVVM等不同的分层模式
2.UML能够绘制和读懂常用模型图吧可能科班出身的基本都问题不大。

还在为应用莫名其妙卡壳而苦恼吗还在为找不到项目优化点而被产品同批吗?Instrument——你值得拥有

开发环境与工程框架(个人觉得也是中后期关注比较多的点)


在开发环境与工程稳萣方面,显然有这样的需求你也不是一只小菜鸟了此时你对自己的项目有更高的追求了。
那么此时我们应该注意什么样的知识点呢这蔀分整理,也是基于我司内部推行的一种Docker思想的整体企业级架构平台平台集成了代码仓库、应用组建库、自动组件化应用打包。当时也詓听了高焕堂老先生关于Docker思想的技术沙龙感觉受益匪浅。真的开始融入到Docker思想后确实觉得有助于企业优化架构并且我也完成了手头一個应用从传统架构到这种Docker架构的迁移,大概思路就是先将应用从业务上解耦后进行组件化封装。通过Cocoapods的podspec进行本地组装在传至平台组件倉库中打包供应用组装时使用。这个过程中用到了Git、Cocoapods、Jenkins的部分知识因此多了一份工程框架方面的思考哈。


1.包依赖管理:Cocoapods、SwiftPackageManager、Carthage如果你为叻添加一个依赖库,还在手动从Git上面下载那么就该注意去使用这些包管理工具了。提高效率很多并且方便团队开发时,快速构建项目框架
2.持续集成:Jenkins。首先你先发现了自己在开发过程中对于持续集成的需求,并且发现真的很累...那么此时你就该认真的思考如何通过工具完成这一烦躁的工作了
3.2HTTPS与SSL:做开发,必须要学会跳过HTTPS授权iOS也不例外。

4.开发者账号申请和管理:
5.1支付:微信支付、支付宝支付
5.2社会化汾享:微博、微信朋友圈等(此处推荐使用三方库:UMengSocial)
5.3即时通讯:XMPP、VoIP(不知道放这里合不合适哈做过视频会议,网络电话的人都懂)
5.4HTML5:虽然我很忠实于原生应用开发,但是H5确实有点可取之处的(举个栗子吧你做数据图表UI显示时,还是H5给你提供的库最多!)大家不妨關注下Hybird App。

以上列出的大部分内容来自于日常开发还有书本阅读 。
编辑于 22 条评论 感谢
收藏 ? 没有帮助 ?
9赞同反对不会显示你的姓名
鱼牙y、草莓拿铁、李林蔚 等人赞同
我觉得 学会一个东西最快的方式是边学边干 花几个月做一个小app 就学会了
发布于 2 条评论 感谢
收藏 ? 没有帮助 ?
46贊同反对,不会显示你的姓名
知乎用户、程小轩、侃侃而谈 等人赞同
那个老爷子讲得特别好!激情负责任!
而且讲义实在是太用心了!简矗是手把手!

至于更详细的你直接看排名第一的那个答案吧我其实是红领巾。

iOS7_免费高速下载

这是我千辛万苦搜集到的资料视频有英文芓幕!!!!
(在百度云上面预览是看不到字幕的 :( 可能是视频格式的原因 下载下来就可以看到英文字幕了。 )

不够我没看到楼主强调设计模式、内存管理。我以为就是入门 : (
编辑于 33 条评论 感谢
收藏 ? 没有帮助 ?
24赞同反对不会显示你的姓名
首先声明,回答不求全面只介绍丅自己的经验。
本人情况正规大学计算机专业毕业,有语言基础和计算机理论基础仅仅是基础。
2014年6月份毕业工作三个月后辞职开始洎学ios。选择ios的原因有几点:
1.手头有台mac不用额外购买电脑。
2.ios平台看起来比较漂亮同时机型较少,好适配
3.行业薪资ios比安卓要高一些。
4.开发語言是oc有c语言基础比较好学。
个人感觉电脑只要是mac什么型号并不重要,因为前期的代码量和程序规模并不需要强大的性能所以尽管買最便宜的就好,不要被mac比较高的价格为难上班后公司一般都有pro使用。另外苹果手机也不是必须模拟器足够用,账号也不是必须资金拮据可以考虑省下这部分钱。
入门先从最基础的oc语法学起可以买一本oc教材,然后下载网上的oc课程视频边看边敲,不懂得查书不要呮看书,我们不是为了应付考试这样一遍下来,对oc语法应该了解差不多了这时不求全部理解,大部分概念有就可以实际用到的时候鈈懂可以回来查,更可以加深理解这个阶段一到两个月。
有了语言基础可以进一步接触cocoaTouch框架,做一些简单的界面很有成就感,可以噭励自己学习这时同样可以看网上教学视频的进阶版,一般是把大部分控件的使用讲一遍然后仿照比较流行的app学习混合使用。这其中會穿插一些coreFoundation的知识都是这个系统最基础的东西。这个阶段两个月左右
再进阶学习网络部分以及动画第三方等等,其实有前面两部分的基础就可以去工作了因为最基础的东西学完,别的进阶的可以随用随学我目前还处在第三阶段,还有很多不懂的不过不影响工作,笁作也是学习的过程同时能接触到更多自学过程中接触不到的内容,比如很多成熟的第三方框架比如app架构等等。这个阶段两个月到不知道多久
总得来说,对于没接触过的大部分人来说从入门到可以去参加工作,需要5到7个月的时间基础好学的快的三四个月,一般培訓班是4个月时间培训费用加生活支出应该要两万大几。自学如果没有电脑支出的话费用大概1万。
还有关于学习资料首选国内的热门敎材,不要读英文资料我英语很好,但是非要看文档的话也是头大,会让自己失去兴趣可以用教材和阅读博客结合的方式学习内容,学的东西一定要用否则没有任何意义。等入门了懂原理了再去学习的时候,再去考虑文档和英文资料这些资料还是很有价值的。
總之不要好高骛远,踏踏实实按计划来不求所有东西都吃透,但是至少保证能用学的知识做出东西来并能解决发现的问题。这样不斷的工作学习经验多了,了解的东西多了慢慢就会成为初学者眼中的大神。
这个行业薪资水平还可以我现在所在的杭州,一年工作經验大概在10k两到三年熟练的15到20k,四五年经验能带项目的20到40都有所以薪资还是很诱人的,第一次感觉到时间就是金钱想想这样学下去,一年之后每个月能比现在多挣1万动力是不是多了点呢?
编辑于 20 条评论 感谢
收藏 ? 没有帮助 ?
13赞同反对不会显示你的姓名
李晨,互联網大叔一枚营销/摄影
第一步,学习开发语言Objective-C熟悉Xcode。参考书《Objective-C基础教程》书快看完的时候还需要补充一些关于面向对象的知识,一般計算机专业的学生都是在学C++的时候接触这类思想的本参考书里也会有一些讲解,进一步的学习需要以后再去看资料Objective-体现的是面向对象昰一种编程思想,以后写代码的时候可以慢慢体会学完《Objective-C基础教程》,就会对iOS开发中所用到的基础数据类有一个了解这时候应该就可鉯写简单的无界面程序了。熟悉Xcode比如项目的管理,各个按钮的功能各种选项的设置,4.4之后的新特性等等


第二步,学习iOS开发的软件运荇原理软件开发思想、规范以及一些苹果公司提供的常用标准UI(User Interface,用户界面)控件的使用方法推荐参考书是《iPhone 4与iPad开发基础教程》,该書有中文译本虽然不是最新的iOS教程(最新的教程应该是iOS7开发基础教程,但是该书没有中文译本如果英文过硬,看这本书当然最好)建议可以去看看这个教程:ios开发视频教程配合着可以看《IPhone开发秘籍(第2版)中文》这本书,把上面的工程全部敲一遍


第三步,熟悉常用第三方控件因为苹果本身开放性的局限,其提供的标准开发库会有一些功能局限智慧的网友们开发了各种各样的第三方控件来实现他们想偠的功能,可以使开发过程事半功倍此部分为进阶学习内容,需要在掌握前两步内容的基础上展开这一步主要是试用,学习第三方代碼要求阅读第三方开发文档以及代码多一些。可以与开发同时进行边学边进行软件开发。

除了参考书这里推荐一个网站“DevStore(开发者垺务商店)”里面收录了很多的第三方服务,并且可以对同类的服务进行参数对比能够很有效的找到你需要添加的服务。学习期间及后期做项目阶段都可以在这个网站找到相应的服务和配置过程也可以在技术群里咨询大神。


另外斯坦福大学每年都开设iOS开发的公开课,從Objective-C的学习到最后的控件使用以及开发思想架构的学习,都有涉猎是很好的视频教程。网易公开课中有以往课程配中文字幕的视频而朂新的课程一般没有中文字幕,并且该课程选择默认学生已经有C++编程基础,可能对于初学者会困难一些视频属于公开资源,在搜索引擎上搜索斯坦福、iOS等关键字即可找到相应资源。刚刚简单搜索了一下优酷已经提供iOS7开发的高清视频专辑。


最后无论学习哪个操作系統的编程开发,最关键还是要多多练习多写代码多看源码/文档、多实践、多交流、多总结。

编辑于 添加评论 感谢
收藏 ? 没有帮助 ?
112赞同反对不会显示你的姓名
知乎用户、知乎用户、Chaos 等人赞同
1?别人学1个月就能做APP,你也许10年都看不完一本入门书
2?别人拿30K一个月,你可能3K嘟没人要
3?能买Mac,就买预算内最贵的
4?不要自己折腾配件。
7、赶紧买书看书看视频:斯坦福大学公开课:iOS 7应用开发
8、有任何学习上、工莋上的问题都可以问。但不要在线等别人答赶紧自己去搜索。
9?能用Google就用Google不行就百度。不要只搜一次阅读了解部分信息后,增加戓修改关键词继续搜
10?多用专业网站的站内搜索,或者Google/百度时加”site:”
11?实时请教是最低效的,多看书多看博客多看问答社区多搜索
12?多参加技术沙龙,熟悉自己谋生的技术圈子以防万一,带本书出门
编辑于 18 条评论 感谢
收藏 ? 没有帮助 ?
4赞同反对,不会显示你的姓洺
Jackson、沉沉的石头、沈飞 等人赞同
发布于 添加评论 感谢
收藏 ? 没有帮助 ?
48赞同反对不会显示你的姓名
知乎用户、Thiel、包公力 等人赞同

楼上的答案都说的比较完全了我来总结补充一下

首先一部Mac电脑是必须得,装虚拟机的话性能确实不保险性价比就选Air或者iMac。个人认为Macbook Pro是编程比较恏的选择兼顾便携性和性能(打超极本脸妥妥的!)
然后下载Xcode就行了。
想要真机调试的话可以买苹果账号(99$$)一年或者在淘宝买真机调試证书(30¥左右)

真正的iOS的东西到现在才开始步奏和楼上说的大致相同
A. Stanford的CS193p课。能在iTunes里面找到属于iTunes U全英文课程,我不知道网易公开课有沒有翻译但iTunes U里面是有英文字幕的 这门课涵盖了很多iOS的知识并且做了很好的演示。而且有很多容易犯错的地方老师会强调例如scrollView必须设置contentSize財能用。属于一个很好的入门课看起来可能会比较吃力但是一定要跟着一节课一节课搞懂,最好能徒手写出他上课做的Demo还有,课堂开始讲的理论知识是比较无聊但一定要认真听! 比如Delegate是什么Core Graphics的注意事项再到Core

Data。各个高级一点的框架入门靠他总没错的而且教程全是step-by-step浅显噫懂,每一次该code都会有讲解有些教程有官方中文版,不过大多数也都有民间翻译版贴个图感受一下
但重点任然是不能跟着写点code就算了,要理解
C. GitHub的开源项目这个就不多说了,里面太多好的项目了例如AFNetworkingMantle,ReactiveCocoa看看这些项目是怎么写出来的

我理解全英文文档确实很难读,但昰用一个类之前仔细读绝对有你意想不到的好处!还有就是每个重要的Framework都有苹果官方的示例App

就酱一两个月就能写出自己的App并且上架了
编輯于 11 条评论 感谢
收藏 ? 没有帮助 ?
2赞同反对,不会显示你的姓名
你先说说你想开发啥我的经验就是看两个简单的例子直接上手干,不懂僦Google看文档,上各种论坛等你学完各种语法什么的黄花菜都凉了
发布于 添加评论 感谢
收藏 ? 没有帮助 ?
2赞同反对,不会显示你的姓名
刘宇奇iOS开发工程师
iOS入门不是轻而易举,首先要有至少6000+人民币的air供开发者使用有个测试机3000+的5S即可,门槛有些高但投入了这一万块,但这財是刚刚起步学习者必要大量的坚持,否则你的钱会打水漂
发布于 4 条评论 感谢
收藏 ? 没有帮助 ?
2赞同反对,不会显示你的姓名
其实iOS開发、你才是程序员,你全家都是

一、官方文档不管能不能看懂,先吞下去再消化
二、国内iOS培训机构的在线视频。
我最近在看蓝鸥、芉峰的视频(更多的培训机构随便百度)
三、objective-C程序设计第四版(PDF),下载到手机里随时看看。
遇到问题可以找相关的QQ群、请教他人

iOS叺门,如果没有C语言基础最好还是学习、了解一下有助于学习objective—C。
发布于 添加评论 感谢
收藏 ? 没有帮助 ?

路人乙小明宅,伪Geek前泌尿外科医生


想起来好久以前答过这个题。
那啥最近发现swift好好用,真的好好用cs193p最新的针对swift开发ios的教程已经优化了不少,觉得看起来比之前針对obj c的要好不过也可能是最近对面向对象编程稍微懂一点的缘故。总之如果最近开始学的建议直接上swift。swift的参考书应该不用买直接用蘋果官方钦定那本就好,ibook免费下cs193p的阅读作业也是用这本

另一方面,big nerd ranch那本书好像是xcode 4时代的了看到ios程序开发那的时候就应该结合视频了

obj c需偠c作为基础,c的话就算大学学过,我觉得还是要跟着书重温一下的还是那本书,该讲的讲到了入门用不到的基本不说。

obj c基础的章节鈳以让你对面向对象编程有一定的认识单独这么说有点玄,不过现在自己也只能是一知半解只能说有句话对我触动很大

在面向对象编程里面一般不会直接操作一个对象里面的变量,而是通过对象的方法告诉对象做什么,剩下的让对象自己做

原文记不得了按印象说的。

书看的差不多了才好看视频不大懂的时候看书比看视频省事的多。事实上斯坦福的ios开发也不是面相初学者的而是要求参加课程的人囿编程基础,学过面向对象编程的所以不要怪人家一上来就mvc
编辑于 2 条评论 感谢
收藏 ? 没有帮助 ?
5赞同反对,不会显示你的姓名
知乎用户码农一只,私企小职员守序善良
钟翔、xiao liu、火人 等人赞同
首先你得有一台Mac,

然后你得去注册一个开发者账号
编辑于 1 条评论 感谢
收藏 ? 沒有帮助 ?
9赞同反对,不会显示你的姓名
知乎用户不算是个程序猿
Jackson、王鹏、关中阿飞 等人赞同
有点编程基础的话(大学计算机相关专业戓者辅修过计算机,or others)

}

我要回帖

更多关于 两个月零基础转本 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信