ios猿课

长空老师对开发者说的话

如果你真的很想学iOS开发,那么请认真花5分钟时间看看我给你的建议

生涯履历

Hi,我是长空老师,目前在一家移动互联网创业公司担任副总经理,兼任新技术研发负责人,主导公司发展方向与技术创新。

跟大多数普通程序员一样,我并没有光鲜亮丽的背景:普通的大学,非计算机相关专业毕业,如BAT、华为中兴等等这些顶级互联网、软件公司,也都没机会进去一睹芳容。我的职业生涯一直在中小企业里打拼,一直在做两件事情:1、独自一人开发项目;2、带领小团队开创项目。
曾经有个机会摆在我面前
我13岁开始学编程,很幸运遇到一位好老师。当时参加的是学校的计算机奥赛班,在50人的竞争中留下2人,代表学校参加了一次信息学奥赛,很遗憾没有获得奖项,而后为升学放弃训练,结果两头空。
艰难的现实
高中时我的理科成绩不好,最终考大学选择了文科专业。这段时间凭着兴趣我还一直学习零碎的计算机知识,但都没有成体系,也没有想过认真的去完成一个完整的作品,这导致我做了许多无用功。大学毕业后虽然希望踏入自己喜欢的IT领域,无奈专业不对口,又没有能证明实力的东西,自然是四处碰壁。为了维持生计,只能先到一家西餐厅里当服务员。

为了获得一块敲门砖,报名参加了Java培训班,1万多的学费只为一纸证书。
起步
2008年,从培训班毕业以后,进入某大型软件公司,每月只有2400元。刚开始所做的事情非常简单,因此我获得了大量的时间去学习,与以往不同,我开始系统的去学习一套技术。这一年里我自学了ExtJS与C#、数据库的基础理论、Oracle的SQL和存储过程。

2009年,我利用空余时间再次学习C++,这大概是第n次了,这一次我从以往的练习升级到一个完整的项目,为我后续的工作奠定了强大的基础。在后来部门项目最需要的时候,毅然挺身而出,一个项目组里工资最低的人,完成了最重要的开荒工作。
成长
2010年,适逢移动互联网兴起,我经朋友介绍进了一家房产类互联网公司。因当时技术部门只有我有C、C++语言基础,研发iOS的任务交给了我。在2年的时间里,为公司建立起全面的移动app产品线,我所带的新人,大多都是独立负责1-2个app的所有开发工作,更重要的是,极少时候需要通过加班来完成工作。
继续成长
2013年,我加入一家小创业公司,担任移动开发主管,在项目紧急的情况下带领新人团队完成移动端建设。

2014年,我独自一人为公司建设新项目(因为需要保密),完成从后端至iOS前端所有开发工作,期间自学了php开发。项目完成后,我升职为副总经理

2015年是突破的一年,我做了什么?

获取我的私人微信

学习建议

一、先动笔,再动手
很多人会想:“动笔干什么?浪费时间,还不如多敲两行代码。”

别说新人了,很多现役中级程序员也会有这样的想法。这里说的动笔,是指的去分析某个功能、某个页面,甚至是整个项目。很多人会是这样的:简单的不屑于分析,难的觉得分不分析都一样,写起来再说。要知道你建摩天大楼也好,简易小屋也罢,事先设计好都是必须的,即便玩泥沙,脑海里也应该有一个画面。除非同样的东西已经做过n遍了,闭着眼睛都能敲出来,不然先动笔,绝对会事半功倍。
二、培养创造力
这里说的创造力,不是头脑风暴异想天开那种~我们都玩过积木,几种不同的基础物件,通过不同的组合,可以搭出很多不一样的东西来。同样一张白纸,不同的折叠方式,可以折出不同的动物啦等等。那iOS开发人员的创造力是什么呢?举个简单的例子,如果给你一个画点的函数,你肯定会画线、画方、画圆;如果给你一个显示文本的函数,是不是也可以用UIView来做一个UILabel?任何复杂的UI,都可以分解成基本的元素,只是组合方式不同,计算的规则不同罢了。我们站在普通用户的角度看一下手机屏幕,不过就是文字+图片。

当然,这里谈的只是思路,要真想做到挥洒自如,是需要配合一定训练的,具体怎么做,请继续往下看。
三、融合知识点
高手和新手的区别在哪里?

高手和善于学习的人,他们的知识结构是有很强的关联性的,从中寻找一个解决方案非常快速准确。而新手的技能树相对高手就不是很丰满,知识点相对比较零散,当要用到某个技能点的时候搜索起来很困难,可能会在别人告知的时候:哦!这个我知道的,一时没想起来!这一点理解起来应该不难,不过怎么才能做到呢?举个例子:假设你现在刚学会用UIButton,那跟UIButton相关联的是啥呢?有很多,1:它的父类UIControl,那你就开始去了解,哪些东西其实是从UIControl继承来的,以后如果只用到这部分的功能,是不是可以只用UIControl;2:UIButton里有图片,有文本,他们是怎么存的?进入UIButton头文件你会发现,是用了几个变量来保存。那在视图上是什么关系?推测一下,就是一个UIControl里AddSubview了几个元素。and so on。

观察、提问、推测、证实,在学习过程中养成这样的习惯,将为你构筑稳健的知识结构。那对于开发人员来说,该怎么去观察,提出怎样的问题,其实也是有一定的套路的,我会在课程里锻炼你的思考和解决问题的能力,让你在碰到新的问题时更加应对自如。
四、大胆尝试
经常有新人会来问:我这个代码这样写行不行?如果我说行,他会继续问:可是我觉得会怎样怎样。如果我说不行,他也会问:为什么?我觉得怎样怎样。好吧。。其实很多时候也就几句代码的事情,如果你花10分钟去思考和询问该不该做的问题,那不如花2分钟去尝试一下,保证不会怀孕啦。
五、给自己找事
在没有图形界面的DOS年代(如果看不懂。。请百度DOS),我们学编程可比现在枯燥多了,怎么办?自己找乐趣。那个时候有一个练打字的游戏,英文单词从屏幕上方往下掉,在掉出屏幕下方前要输入正确才能消除,我们就照着模仿,枯中作乐。现在学iOS开发,有趣的事情简直不能再多了,无论你处于哪个阶段,技能到什么水平,这世界只有不想写的程序,没有想不出来的。

曾经面试过一个小伙子,他说自己项目经验少,希望在实际项目中学到更多东西,我这么回他:我们工作的项目不是给你练手学习用的。大项目经验无法取得,小练习拿不出手,这是很多新人要面对的一个难关,想让自己更有竞争力,必需在学习过程中去模仿、去创造更多。

最后,一句话总结来说,我的这套课程不只是让你学习iOS开发的各种技能和技巧,更重要的是在项目中的思维能力,拥有一个系统化、纵观全局的思维能力要比在某一项开发能力突出更重要。我在猿课·iOS课程里配合了基础知识课程及实操课程,让你在学习了基础功能知识的同时,结合自己的动手能力,创造出属于自己的项目。

每个人都不同,这5点建议不一定适用于每一个人

获取一对一专业建议