从零开始学 iOS 开发的15条建议

事情困难是事实,再困难的事还是要每天努力去做是更大的事实。

因为我是一路自学过来的,并且公认没什么天赋的前提下,进步得不算太慢,所以有很多打算从零开始的朋友会问我,该怎么学iOS开发。跟粉丝群的朋友交流了一下,决定把之前的《18条建议》修改一下,这里统一回答一次。

分三部分:

第一部分:态度和电脑

1、不要关注别人的学习经历,不要关注别人加薪经历。

因为人各不同,别人的经历极有可能并不适合你。而因为每一天的市场状况都不一样,企业的用人需求每天都在变,别人的加薪经历再传奇或惨淡,你都无法复制。别人的故事再精彩,也只能当电视剧来看而已。

有人可能1个月就可以负责APP开发,有人可能学2年都做不了事。有人可能1年就拿30K,有人可能3年经验都拿不了10K。

所以,下面,我只能告诉你,我认为你该学什么,却永远都无法告诉你,你能不能学会,你什么时候能学会。

2、买预算内最贵的苹果电脑,最好是笔记本电脑。不要自己折腾配件,对一般人来说,实在是太费时间,根本不划算。

3、配件升级顺序:内存(8G起步) -> 存储(SSD 256G起步) -> CPU -> 显卡

4、买不了Mac,就自己黑一个(过程中有任何问题,自己搜索解决,粉丝群不讨论任何盗版、越狱、逆向、破解、培训问题):

http://wang9262.github.io/blog/2014/06/06/install-mac-os-x-10-dot-10-by-vmare/

第二部分:直面代码

5、如果你能写APP,现在就动手写自己的APP。参与书籍:周楷雯Kevin的《Producter》http://producter.io

6、如果你还写不了,可以读(抄)些优秀源码:

完整APP项目源码:

  • Objective-C https://github.com/singro/v2ex

  • Swift https://github.com/YANGReal/JokeClient-Swift

源码网站:

  • https://github.com/search?o=desc&q=iOS&s=stars&type=Repositories&utf8=?

  • http://code4app.com

  • http://www.oschina.net/code/list?lang=Objective_C&catalog=&show=time

第三部分:疯狂学习

7、如果你读源码费劲,可以读些书:

iOS

  • http://item.jd.com/11620753.html

进阶

  • http://item.jd.com/11543678.html

  • http://item.jd.com/11258970.html

Objective-C

  • http://item.jd.com/11611045.html

Swift

  • https://github.com/numbbbbb/the-swift-programming-language-in-chinese

  • http://item.jd.com/11685611.html

8、如果读书费劲,可以读些博客:

  • http://objcio.cn

  • http://nshipster.cn

  • http://www.raywenderlich.com

  • http://www.objc.io

9、如果读博客费劲,可以读些苹果官方文档:

  • http://developer.apple.com/library/ios/navigation/

10、如果读文档费劲,可以看些视频:

WWDC

  • https://developer.apple.com/videos/

  • http://open.163.com/special/opencourse/ios7.html

  • http://open.163.com/special/opencourse/ios8.html

11、如果看视频费劲,可以去开发社区逛逛:

  • https://www.v2ex.com/go/idev

  • http://www.cocoachina.com/bbs/thread.php?fid-21.html

  • http://stackoverflow.com/questions/tagged/ios

  • http://www.reddit.com/r/iOSProgramming/

12、如果逛社区费劲,就随便搜索,搜到什么看什么

能用Google就用Google,不行就百度。不要只搜一次,阅读了解部分信息后,增加或修改关键词继续搜。

多用专业网站的站内搜索,或者Google/百度时加”site:”。

13、如果搜索费劲,可以加Q群聊聊

  • 130283564/118623167/232099237/147043528

  • Swift:337176674/373274632

  • 逆向:251453531

实时请教是最低效的,请教之前尽量多看源码多看书多看博客多看问答社区多搜索。

14、多参加技术沙龙,熟悉自己谋生的技术圈子。以防万一,带本书出门。

15、iOS学习资料汇总 https://github.com/Aufree/trip-to-iOS

 

转载:

http://www.cocoachina.com/ios/20150826/13151.html

转载于:https://www.cnblogs.com/wcLT/p/4759405.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/374579.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

垂直居中-父元素高度确定的多行文本(方法二)

除了上一节讲到的插入table标签,可以使父元素高度确定的多行文本垂直居中之外,本节介绍另外一种实现这种效果的方法。但这种方法兼容性比较差,只是提供大家学习参考。 在 chrome、firefox 及 IE8 以上的浏览器下可以设置块级元素的 display 为…

13. 罗马数字转整数

罗马数字转整数 class Solution {public int romanToInt(String s) {Map<Character,Integer> map new HashMap<Character,Integer>(){{put(I,1);put(V,5);put(X,10);put(L,50);put(C,100);put(D,500);put(M,1000);}};int res 0;for(int i 0;i<s.length();i)…

互联网金融P2P主业务场景自动化测试

互联网金融P2P行业&#xff0c;近三年来发展迅速&#xff0c;如火如荼。据不完全统计&#xff0c;全国有3000的企业。“互联网”企业&#xff0c;几乎每天都会碰到一些奇奇怪怪的bug&#xff0c;作为在互联网企业工作的测试人员&#xff0c;风险和压力都巨大。那么我们如何降低…

OSGi将Maven与Equinox结合使用

很长时间以来&#xff0c;我一直在努力理解OSGi的真正含义。 它已经存在很长时间了&#xff0c;但是没有多少人意识到这一点。 人们已经大肆宣传它是一种非常复杂的技术。 这是我为所有Java开发人员简化的尝试。 简而言之&#xff0c; OSGi是一组规范&#xff0c;这些规范允许对…

note05-计算机网络

5.网络安全 被动攻击(UDP报文被截获 被 进行流量分析) 主动攻击 1.篡改(更改报文流 伪报文) 2.恶意程序(病毒、木马、蠕虫、炸弹) 3.拒绝服务Dos 密码体制 1.对称密钥密码体制(DES IDEA) 即加密和解密的密钥K相同 2.公钥密码体制(RSA) A加密使用PKB公钥 B解密使用对应的私钥SK…

825. 适龄的朋友

适龄的朋友 在社交媒体网站上有 n 个用户。给你一个整数数组 ages &#xff0c;其中 ages[i] 是第 i 个用户的年龄。 如果下述任意一个条件为真&#xff0c;那么用户 x 将不会向用户 y&#xff08;x ! y&#xff09;发送好友请求&#xff1a; age[y] < 0.5 * age[x] 7 ag…

struts2设置文件上传大小

利用struts2想要设置或者限制上传文件的大小,可以在struts.xml配置文件里面进行如下配置: <constant name"struts.multipart.maxSize" value"10000000" /> 上面这句话的意思是设置文件上传大小&#xff0c;最大不超过9.8M。计算方式如下&#xff1a;…

Java命名约定

我想写这篇简短的文章来帮助某些难以记住Java API类和方法名称的人。 如您所知&#xff0c;Java是区分大小写的语言&#xff0c;要构建Java程序&#xff0c;您需要使用许多内置API类和方法。 而且&#xff0c;初学者发现很难准确地记住方法名称和类名称而不改变大小写。 但是实…

smarty引擎之练习

关于smarty最直观的感受就是分离了页面中html和php的代码&#xff0c;页面不再混乱&#xff0c;很清晰了…… smarty->assign();//注册 smarty->display();//加载模板 除了老师给的表&#xff0c;kemu,nandu,type都建了表格&#xff0c;便于使用 main.php <?phpinclu…

Heron 论文翻译及理解

Heron 论文翻译及理解 背景介绍&#xff1a; Heron是号称Twitter流数据处理的新一代实现&#xff0c;是StormV2。我们首先回顾一下Storm系统的问题 worker日志混乱&#xff0c;如果一个bolt日志过大&#xff0c;会冲掉其他bolt的日志worker之间因为没有资源隔离&#xff0c;因此…

1688比赛中的配对次数

给你一个整数 n &#xff0c;表示比赛中的队伍数。比赛遵循一种独特的赛制&#xff1a; 如果当前队伍数是 偶数 &#xff0c;那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛&#xff0c;且产生 n / 2 支队伍进入下一轮。 如果当前队伍数为 奇数 &#xff0c;那么将…

Hadoop:简单介绍

什么是Hadoop&#xff1a; Hadoop是一种用Java编写的框架&#xff0c;用于在大型商品硬件集群上运行应用程序&#xff0c;并具有类似于Google File System和MapReduce的功能 。 HDFS是高度容错的分布式文件系统&#xff0c;与Hadoop一样&#xff0c;旨在部署在低成本硬件上。 它…

PHP中__get()和__set()的用法实例详

刚刚看到一个对我有用的文章&#xff0c;我就把它摘抄下来了。 php面向对象_get(),_set()的用法 一般来说&#xff0c;总是把类的属性定义为private&#xff0c;这更符合现实的逻辑。但是&#xff0c;对属性的读取和赋值操作是非常频繁的&#xff0c;因此在PHP5中&#xff0…

Javascript 异步编程的4种方法

你可能知道&#xff0c;Javascript语言的执行环境是"单线程"&#xff08;single thread&#xff09;。 所谓"单线程"&#xff0c;就是指一次只能完成一件任务。如果有多个任务&#xff0c;就必须排队&#xff0c;前面一个任务完成&#xff0c;再执行后面一…

力扣奇偶链表

给定单链表的头节点 head &#xff0c;将所有索引为奇数的节点和索引为偶数的节点分别组合在一起&#xff0c;然后返回重新排序的列表。 第一个节点的索引被认为是 奇数 &#xff0c; 第二个节点的索引为 偶数 &#xff0c;以此类推。 请注意&#xff0c;偶数组和奇数组内部的…

JAVA入门之方法

所谓方法&#xff0c;就是用来解决一类问题的代码的有序组合&#xff0c;是一个功能模块。 一般情况下&#xff0c;定义一个方法的语法是&#xff1a; 其中&#xff1a; 1、 访问修饰符&#xff1a;方法允许被访问的权限范围&#xff0c; 可以是 public、protected、private 甚…

使用Netbeans开发App Engine Java

如果您刚开始进行App引擎开发&#xff0c;那么您可能会感觉Eclipse是首选的IDE。 而且&#xff0c;Google还单独提供了它的Eclipse IDE 官方插件 。 但是不使用Eclipse的人呢&#xff1f; 当然&#xff0c;您始终可以进行命令行开发&#xff0c;但是现在这些人是谁&#xff01;…

JAVA基本类库介绍

我们曾经讲过&#xff0c;Java已经为编程者编制了许多类&#xff0c;这些类已经经过测试&#xff0c;基本上不存在错误&#xff0c;这些类都是我们编程的基础。如果不利用这些已存在的类&#xff0c;我们的 编程工作将变得异常复杂&#xff0c;所以我们应尽可能多的掌握Java基本…

力扣回文链表

给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 class Solution {public boolean isPalindrome(ListNode head) {List<Integer> res new ArrayList<Integer>()…

JAVA运算符和优先级

1、算术运算符&#xff1a; 和 -- 既可以出现在操作数的左边&#xff0c;也可以出现在右边&#xff0c;但结果是不同&#xff0c;如&#xff1a; ①int a5&#xff1b;int ba&#xff1b; #先把a赋给b&#xff0c;a再自增 ②int a5&#xff1b;int ba&#xff1b;   #a先…