知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技  > 软件

如何自学编程ios?

发表时间:2022-03-25来源:网络

这个问题实在让我很有回答的欲望。


2年以前我和同事一起打算做个iOS app,我做设计同事编程,怎奈此同事工作太忙,进展很慢,项目眼看着就要搁浅。


我不是个做事有头没尾的人,于是打算亲自上阵,完全零基础。但我就是想把这个app弄上线。于是我买了一台macbook pro retina,开始了编程之旅。


一个字,烦。其实不会就去学,也没啥,但烦的是:


第一,有的教程十分系统,从变量讲起,十分深入,从对象一直讲到内存管理。对我这样一个零基础的门外汉,让我立即晕头转向。加上我的目的是上线app,这样系统的讲解只是讲知识点,和真正做一个app距离太远。


第二,有的教程十分零碎,教你做一个小效果,但是他用到的一些技术,知识,很可能就是一个零基础的门外汉所不理解,不具备的。所以极有可能完成不了最终的效果。


第三,资料鱼龙混杂,针对什么版本的都有,当时是iOS 4/5更新换代之际,各种一团乱麻


这里推荐几个还不错的资料:


苹果官方文档,英文,对于开发的最权威帮助,面向最新版本

https://developer.apple.com/library/ios/navigation/

斯坦福大学的iOS开发课程,英文,iOS 8(目前最新版本iOS 9)

https://itunes.apple.com/us/course/developing-ios-8-apps-swift/id961180099


这个课程讲师不可谓不专业,水平不可谓不高,有基础也有一些小项目实践,但是,针对我想做的app还是相差很远。我并不指望有一个教程能教我如何做我想做出的app,毕竟每个人想法不一样,又不可能为每个人定制一个教程。


后来,有了这样一个教程,完全面向零基础,教人如何做一个精致小巧的app。麻雀虽小,但五脏俱全,做一个app需要的基础知识一应俱全,包括页面样式,跳转页面,列表,输入框,自定义按钮,还不只是展示界面,还有存储和读取信息。虽然不是手把手教人如何实现自己的想法,但是这些基础功能学会了,想做自己的东西,也就有了些思路了。


更可贵的是课程虽然面向零基础,但是不光是对着案例教人如何实现,还讲到了编程的一些原则和方法论,不是教人做一个简单粗暴的豆腐渣工程,而是一个构架良好可以扩展的应用。


课程地址 原型课堂


为最新版 iOS10 设计了面向零基础的编程课程,选择了十分成熟和稳定的Objective-C,从一个很好的角度切入iOS编程,让人学起来完全无压力。


后续


还记得那天,我已经在家连吃了5天外卖终于解决所有问题把app提交审核。我想起了听过的一句话:“我回望一生遇到的所有的瓶颈,都来自于我为自己设下的愚蠢的界限。”我是学设计的出身的,在一家小公司刚刚做了几年交互设计师,觉得编程开发复杂高深,我有点畏难,但是我没有止步,我走出了自己舒适的圈子,去挑战自己没做过的事情。


也许你想问这个app后来怎么样了。其实并没有什么很好的结果,这只是一个面向小众需求的app,面向全球用户下载,每天只有100多人下载,打开一次可能就不再访问。无论从任何角度都是一个失败的app。但开始学编程为我打开了一扇门。


我开始有意无意的留意起公司开发的Web app的html代码,先从css看起,慢慢的我开始可以去调整公司项目开发过程中不符合我设计的按钮样式了,我在设计工作中开始有意识到哪些设计是容易实现的,哪些是比较难以实现的,所以我提交的设计都以更高的还原度得以最终出品。我开始不局限于交互设计,开始实践视觉设计,思考产品,思考精益创业,梦想有一天做自己的产品。


斜杠青年,我也做老师


一年又一年,在刚刚为一家投资教育做了设计咨询之后,积累了一些设计经验的我开始有了分享的想法。2014年,我开始在douban发帖收集设计经验分享的目标用户,其中一位提到了在淘宝上购买了Axure视频教程,他传给我听了一下,一听之下什么鬼,把Axure各种神棍的功能都介绍的清清楚楚,而实际的产品设计中根本不会用到这么多,Axure本身只是一个工具而已啊。我想起了我自学iOS的痛苦经历,为什么不能去做一个真正“好”的课程呢?为什么不用做产品的思路来设计课程呢?为什么不能做一个基于短小精悍的案例介绍一些真正常用的功能,顺带介绍产品设计的思路和方法的课程呢?于是我飞速的设计了Axure的教学案例,不仅包含软件操作,更内涵了设计思路,并录制了6小时的教学视频。后面怎么办?我打算做付费学习,不管收费多低也要付费,毕竟好的内容是值得用户付费的。


那么如何实现付费呢?是不是要做一个网站接入微信支付淘宝支付呢?我虽然学过了一次iOS开发,但是我还不会网站开发啊喂。而且最重要的一点,精益创业!我还没有验证我的教学视频是不是能切中用户需求,用户是不是有意愿付费啊,不能一次性做这么大工程,3个月之后上线,然后无人问津不是很伤心?


于是我选择了优酷视频+淘宝店。淘宝店铺不需要开发,只需要起个名字去申请开店就好,就叫原型课堂吧!优酷视频怎么玩呢?当年优酷视频也提供一些最基本的视频观看权限的管理功能,其中一种观看权限就是“只有我关注的人才能观看”。这就好办了~我在youku放几个可以所有人观看的试听课程,然后引导用户去淘宝店购买,淘宝店购买之后,我要求用户注册优酷,我再关注一下他,他就获得了观看的资格。无需复杂的开发技能,就可以走通整个用户价值实现的流程,我开始了自己做“产品”验证用户需求的道路。


成果喜人,上线第一天就有人购买,第一个月的营收就有千余。不仅有用户感兴趣,而且得到了付费用户,也的到了用户的好评。贴一个当年的视频专辑

Axure RP 6.5视频教程第1课 课程介绍和成果演示 组件 培训 案例 产品经理 交互设计


在经历了3个月的用户验证之后,我不断调整了一些细节,更新了一些课程章节,也逐渐坚信在线学习这条路值得去做。下一步要做什么?在线教育无疑最重要的就是内容,我把我的精力持续投入到了内容创作,但youku也并不是一个好的播放载体,经常会有播放的问题,经常会有用户表示为什么我付了钱还是会看到广告?所以我选择了外包开发。一方面是我的收入还足以负担,另一方面更重要的则是每月都会有比较稳定的课程售卖收入,几个月的营收就足以负担外包开发的费用。


一个月之后,原型课堂的网站1.0终于上线。贴几张当时的网站界面:


设计简单有效,甚至没有首页的概念,进了网站就要登陆,主要是实现用户可以在我的网站观看的功能,可以对用户的体验完整的负责,用户可以不再观看广告,可以专注在学习上了。网站使用某云计算的服务,包括存储和数据库都是采用了云的方式。云计算的优势在于按需付费,其实是很大程度上节省了开支。


在《Axure视频教程之手机应用设计和表达》课程之后,又陆续创作了《Photoshop视频教程之手机应用视觉设计和表达》以及《手机应用交互设计精髓》这两门课程,获得了更多的关注,也进一步验证了需求。我又一次,想起了我学习iOS的痛苦经历。


挑战!技术类课程:《零基础网站开发教程》


要说Axure这类软件的课程,真的是多如牛毛。因为Axure软件实在是简单,像Word一样简单,毫无门槛可言,任何教书匠都可以来教。但要说技术类课程,多少有了些门槛,会编程的人本就不多,更何谈敢开堂授课。另外一个角度是,正因为Axure软件比较简单,所以无论怎么讲无非是软件操作,所以对于教学水平要求不高,基本怎么讲,用户都能听懂。但我心里清楚,到了技术教程,绝对就不是这么回事了。


还是先从简单的挑战开始,我首先打算试水网页技术的教程。喂,可是原型课堂的网站都还是外包的啊!你到底行不行啊?2015年春节,我完全重写了原型课堂的网站,包括前端和后端。在请教了无数前端大神的指点和审校之后,我用自己基于案例,循序渐进的教学方式,创作了《零基础网站教程》,完全针对零基础,教大家从下载编辑器开始做自己的网站,走一遍完整流程,直到购买域名,利用github的免费服务发布自己的个人站点。反馈良好。大家反应比一般一上来就讲语法的课程强太多,对于一些比较复杂的概念也能比较容易理解。我更坚定了自己的信念。


挑战!技术类课程:《零基础iOS开发教程》


嗯,这篇回答是广告来的。上面提到的课程就是我结合自己从一个零基础的初学者一路走来的经验写就的iOS开发教程。其实这个想法贯穿了我做原型课堂的始终,我写教案的笔也拿起放下、拿起放下了很多次。终于,时机成熟了。也是在厚着脸皮请教了无数iOS开发大牛之后,2015年8月,正式开始写作。


写作课程是个累人的活,iOS这个课程就是要加个“更”字。主要做了几件事:

先期提纲的写作案例项目的设计和开发正式的课程录制剪辑,修改和一系列收尾工作

说说最难的事情——就是入门课程的设计和写作。其实iOS的开发是很有逻辑性的一件事,里面的概念并不复杂——对象、方法、属性,无非是这几件。但如何用一个不枯燥的、有来由的方式将这个逻辑性思维讲解出来就成了大问题。


我深知第一堂课树立印象的重要性。我心目中一个理想的教学方式应该是自然而然的,由一个问题引发另一个问题,环环相扣、逐渐展开、娓娓道来。最终选择了这样的方式:


新建项目,发现项目运行一片空白
那么为了给页面增加背景颜色。所以写下两行代码。写在哪里和为什么写在这个位置先略去不解释,先讲解代码,从而自然的引出了对象,方法,属性这些概念。

从开发一个app的实际出发(总要换个页面背景颜色吧),穿插必须的基础概念。同时因为有一个实际可以看得到的界面改变(从白色变成灰色),概念变得并不枯燥了。很多朋友反馈说,看了课程之后,觉得没那么难了!


之后再为页面增加标题栏,再之后再增加新的页面,因为不断增加的新内容引发了新问题,也就不断增加了新的教学内容,不仅是教大家实现app,也教大家如何用健康、可扩展的方式写好代码,也就是教大家程序设计思想的初步内容。


去做大家都不看好的事


在开始写课程之前,所有认识的工程师对此都不看好。事实上整个过程确实非常痛苦艰难,在录制了两课之后,因为觉得之前的讲解思路不够明确,又推翻重新录制了一遍。这个过程很痛苦、折磨,但我相信一切都很值得。


一直看到别人有用直播的形式,但我还不敢尝试。因为我希望保证课程的过程尽善尽美。录制课程的时候,每一段最多录制10分钟,更长会有口误,口误就要重新来过。每录一段,都会重新听一遍,讲解是否简单易懂,是否拆的够细。所以整个iOS课程长达14小时,每一段都是10分钟甚至更短,最后的剪辑工作也变得异常繁琐。


虽然听起来比直播费力许多,但是优点也很明显:既保证了课程质量,又节省了时间、降低了成本,平价地将课程传播给更多的用户。


曾经得到一个反馈说“太啰嗦”,之后另一个反馈则说“说啰嗦的,麻烦看清标题是什么, 零基础好吗?”。最近,我跟一位资深工程师讨论我们的iOS课程,他看过课程之后表示惊奇,有很多零基础用户可能不懂、需要听的东西,他之前都没想到过,“居然这个也要讲?”——事实上,正是这些被认为啰嗦,被忽略的内容,才让大家的学习变的困难重重。这也是我努力开发课程的目的——“听得懂、学得会、用得上”。


努力都没白费,《零基础iOS开发教程》是目前最受关注的移动开发课程之一。


最后说一句我很喜欢的话:

做自己的产品,才是产品精神的最好实践。大家共勉。

希望原型课堂对你有帮助。

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜