学习经历: 1 知乎上所有iOS入门的答案看了两遍 2 在www.fenby.com网把丢了几年的C敲了一遍,在Codecademy上把OC敲了两遍,觉得不理解,买了big nerd ranch的OC编程,配合2013白胡子老头的CS193P前面几节课把OC基本看懂代码没问题 3 学了知乎王寒的四个入门教程前两个,官网Todolist入门,死记硬背记住全过程,简单过了一遍big nerd ranch的iOS编程第四版,很多所以然才渐渐明白,但感觉章节跳动知识点又没有体系,10章以后硬着头皮敲完没有一点印象。官网文档略读了一遍,名词概念知道是什么东西了。
目前自我感觉UIKit了解多一点,动画 多线程和网络部分很陌生。自己学习方式,不弄懂一个概念,跳过去就学不进去;Git上学代码,不知道哪些好的又可入门;项目实战没有机会,目前下一些APP想模仿一个做Demo,但不知道从什么地方入手,原型设计,图标素材,交互设计,性能优化... 求指导
大神们见笑了,完全是小白啊,自己学得很慢,闷头学很容易心里没底。虽然照着敲代码,但是不看懂就完全没印象,不开自动补全敲代码,感觉很浪费时间。看源码很没耐心,喜欢钻牛角尖,一个概念打阻了就没心思暂时放下,去学习后面的东西。Github注册几个月还不会用,Apple Watch更是心里没底。
最好是弄个知识屏蔽,你不是计算机专业,很多基础知识,例如 变量 值类型 引用类型 深挖的话 涉及到编译原理 你都要去纠结,那不是几天能搞定的,学到东西以够用为原则,然后标记为key,需要深挖,立马找书
另外读下深入计算机体系,当介绍的书籍看,就当了解
我高中的时候,读c语言 指针那一章我纠结了半天,但是你通读计算机结构体系那本书就会了解指针其实蛮有用,但是也仅在特定领域,例如对效率要求高 ,现在很多高级语言尽量通过改善语言自身来屏蔽指针,因为指针确实操蛋,而且现代计算机性能已经不缺了,远不比刚诞生计算机那时,空间计算性能非常缺的时代
那就直接找工作吧。我也是自学的。各种投简历还是能有公司要的。另外,在面试的过程中也能知道自己哪个技术点不会。比如,我之前面试的时候面试官会问各种我不会的问题,然后这些问题我回去自己查就学到了新的技能。
9楼 @Alfred1003 网上很多自学资源的,Google搜就可以。什么千锋iOS开发视频、无线互联之类的,还有很多牛人的博客,另外,推荐两个比较好的网站http://code4app.com/和http://ui4app.com/ 可以照着上面的小实例做做~加油!因为自己也是自学,所以,更明白自学的艰辛,共勉!艰辛一段时间,之后就会好了。
12楼 @nycoder 谢谢!自己还算是挺能坐得住,业余时间每天到12点,但是可能不适合学习曲线太陡的方法,当初刚开始看斯坦福视频,看OC语法完全是天书一般,讲对象和消息的那几页就停停放放看了一个星期,差点放弃。以前也不是做技术,很久才养成随时静下心来的习惯,其中的挫折感很难想象。最有帮助的是王寒的入门教程,和@清醒疯子 推荐的http://item.jd.com/11620753.html这本书,看完之后才有点顿悟的感觉,开始看得懂官网,学着查Xcode帮助。一个人学没有个参照,有时候真觉得自己进度啊智商有问题,感觉自己是不是太依赖被动式学习,太依赖参考教程了。目前的iOS行情来看,不知道大龄零经验找工作前景,时间上也有紧迫感,真怕两三个月以后或者九月份以后都转Swift了。
9楼 @Alfred1003 不用找项目呀,自己想做什么 App 就搞起就可以了。 我是去年 6 月开始学 Mac 开发,也是从 OC 学起的,边学边做,今年 1 月初就弄出来了一个自己想用的 Mac App。然后现在已经是两个 Mac App 了。然后 付费那个 Mac App 已经更新了好多个版本。你看看我之前发过的帖子就知道了 http://ourcoders.com/user/show/23791/otis/。学 iOS 比 Mac 好的地方是资料够多,比如说我想找 Mac 的视频是没有的,就只好参考 iOS 7 那个视频了。然后初学者建议不用考虑 Swift,因为它还很年轻,靠谱的项目大部分人都不敢用的,然后我现在就是没考虑它 :D。
20楼 @citykook 我自己也是才了解点皮毛,提供不了什么经验。只是学个东西一遍不懂,就找其他入门资料相关知识点再看一遍,一是人的注意力一次性吸收肯定会有遗漏,二是大脑会排斥有挫折记忆又没有新鲜感的东西。一遍一遍的机械记忆,才会有顿悟,这种效率很低,但我不彻底理解就看不进去记不住,比如当时学OC语法看消息、对象、类、实例这些概念就花了一个星期才理解,敲了无数遍把UIAlertView的方法代码记熟。我自己感受是,自学过程中最大的难点是把概念吸收到自己的框架里面,第二是知道功能实现到知道为什么要这么实现。我是零基础,只是大学学了点C,很多概念名词没有办法类比,一遍一遍百度了又忘,一遍一遍的例子里面去加深印象,编程的术语很多,新手不理解不类比根本记不住,比如学UIKit,首先耐着头皮把所有的控件过了两三遍,然后自己从最基本的属性元素(文字、图色)去总结一个分类表,来源(name、tag、identifier、path、URL等等)、外观(文字,图片,大小,位置、背景、状态等等)、动画(尺寸、比例、旋转等等)、事件响应(手势、通知、键盘、感应等等),里面还有很多一层层分下去,然后把控件分个类,相似功能的比对一下,比如控制器切换的(导航、tab、page等)、视图容器的(picker、tableView、imageView等)、动作选择(Alert、Tool)、其他选择的(stepper、segment等)、进度提醒(progress、indicator等)、响应类型、基本类型等等,然后每个控件会用到哪些属性,自己做的分类很多不标准,再一步步去优化。脑力的东西很需要状态,凌晨想东西会很有灵感,白天凭记忆写的这些很模糊,写上来希望大牛们给个指正,现在应该还没到可以写项目的阶段,看官网Guide还是吃力地看(一个词组一个词组,不能像看中文一样一目一段),看代码很多不懂,特别是modal业务逻辑。而且看了@清醒疯子 的知乎专栏所有,感觉自己效率实在太低,好在自己虽然笨,也是个容易沉迷的人,现在下班每天顶着挫折感到半夜一点,状态最近低迷,脸上全是痘。
你这种硬啃的方式,会有它的好处。
我用的是完全不同的方法,我尽量快速过一遍。
这样很好,可以在一两年后看看不同的方向有什么样的效果。
我赌,你的方法可能会更靠谱一点:)也比较适合主流大众的期待。
23楼 @清醒疯子 看过你的经历,不知道我和你性格像不像,小时候喜欢看各种书看电视想东西一整天,但是抽不出来,碰上什么迷什么。好奇心很强,各种杂学都知道皮毛,但是很受状态影响,太陡的路线大脑会反抗。我也是先快速过几遍,一遍根本不知道在做什么。我知道这种搞本质的方法会基础牢固,但自己不适合死记硬背,比如高中学物理总是做题的方式学得很烂,高三寒假两天自己把课本力热光电推导浓缩成牛顿三定律,后来感觉通关了,次次满分,直到七八年后教弟弟妹妹做题我还能慢慢磨出来。年龄压力大,想快速入行不知道还有没有机会,适不适合这个快速的行业。
你应该跟我有本质上不同,我最大的问题是很难沉得下来。我一般要多个东西一起在脑子里各种乱跳,然后错这些碰撞出来的奇怪灵感抄近路跟别人打。
我最近最大的收获是要尊重个体差异,只强化不纠正。
因为每个人适用的方法可能会有极大的差异。
现代教育最大的问题是企图让所有人都用同一个方法做事。
那些成绩特差的同学,我怀疑,只要换个适合他们的方法,分分钟都可以秒我十万八千里。
所以呢,什么是正确的方法,什么是错误的方法,也许就不重要了。
唯一重要的应该只有:什么样的方法能让你开心?
对我而言,把手上的信息尽快推送到尽可能广泛的地方,收取尽可能多的反馈,也就是尽力让全世界和我一起思考,是我最快乐的事。
我对成就没有兴趣,我对好处没有兴趣,我唯一有兴趣的是推动思考。所以,如果没有出现足够的反面思考,我特别喜欢自己代入反面,用尽一切力量去进行反向思考,然后让全世界伟光正的人都来反对我,即使我最后被打败,我也会非常开心地为有足够多的人参与思考而鼓掌。
这与对错无关,每个人都有自己异于别人的,希望收获的东西。
如果我的智力能达到你的水平,能完成你所做的推导,我可能最大的感受就是:这个世界太无聊了。对期货交易,我就是这个态度,自从2012年想明白应该怎么加仓后,我就再也没碰过交易。不需要思考或者没有全面推翻可能性的东西,对我来说,毫无吸引力。
所以,我建议,你还是应该按你自己感到开心的方式去完成iOS的学习和成长。
如果以自己不开心的方式进行,我最担心的是,极有可能,会在不久的将来因为不够开心而再也不做这事了,即使你能靠它活得不错。
我觉得,强化自己的欲望和开心,应该是每个人都应该考虑一下的选择:)
看知乎学 iOS 编程?这个略搞笑,还是多混 stackoverflow.com 吧。
官网文档略读了一遍?真读了?
OC就看官方的 Guide:Programming with Objective-C,印象里PDF就200多页,再看一个 Concepts in Objective-C Programming,就不用再看别的乱七八糟的了。
iOS的总纲 App Programming Guide for iOS, 基础的 View Controller Programming Guide for iOS/ View Controller Catalog for iOS/View Programming Guide for iOS/ UIKit UI Catalog / Quartz 2D Programming Guide / Core Animation Programming Guide 看过来,该有的概念就差不多。
真要上手干活,Auto Layout Guide,Table View Programming Guide,Collection View Programming Guide for iOS,Event Handling Guide 还是要看的。
这些要都看明白了,概念肯定都有了。至于真能做东西,还得上手多练。
15楼 @Alfred1003 我觉得你可以两方面的内容结合起来看,
1 是补基础,你看看《深入理解计算机系统》,虽然不能让你直接做出东西来,但是会让你对编程有更深的领悟。
2 是做项目,项目需要什么东西就去学什么东西,比如需要做一个控件,你就去查资料看看怎么做出这个东西来。
两者会互相促进的。前者是修内功,后者让你有成就感。
32楼 @Alfred1003 我觉得跟楼主好像,同样是一个人自学iOS开发,相关的书籍看得好多,但是代码敲的少,不知道要做什么项目,也想模仿过git 上开源的app, 但是感觉 现在的知识水平完全不够用, 设计到的点太多,理解不了。 不知道楼主现在学的如何了。