初级篇-做iOS开发你需要知道的

写在前面的话:

此blog为自己鞭策自己用,大概会从编程零基础一直写到开发一个iOS的完整项目吧,也来凑热闹记录记录自己的编程之路。Whatever,若有人看到此blog,恰好此blog中的内容对你有用,那就是美事一件了。

自己不是什么大牛,但总有人没有我牛,也总有人比我牛,而我也一直在去往大牛的路上,所以,永远不要停止学习的脚步。

这篇就当给初学者一个guide吧:


1.如果你是一个编程小白,请你从头到尾去了解(学习)一门编程语言,C、C++、Java,Whatever,不建议直接从OC开始学,建议C语言一定要学滴,或者C++,目的是为了让你掌握编程语言是怎样子滴,还为了让你去储备一些必备的知识,数据结构不可少,链表二叉树各种查找排序算法学到最后一定是要信手拈来滴。一门语言学下来,多少能体会到一些编程的门道。


2.有了这么个意识之后,再去学OC,再去上手体验XCode开发环境,写此blog时,XCode6是最新版本,都去下最新的版本用吧,切记苹果有更新时立马更,但更新也要处理好旧版本与新版本的兼容问题,这个有经验的开发者肯定经历过iOS6到iOS7的变化,从拟物到扁平的转变,XCode4到XCode5的转变,那简直...麻烦,这个不赘述,随着经验的积累这些问题迟早遇见,但是不要怕,问题都是可以解决滴。苹果新推出的Swift语言是以后的开发趋势,也是要学滴,但是首先把OC学扎实,因为从OC过渡到Swift还需要一定时间。就像从XCode里面的nib(xib)到storyboard的使用也是趋势一样,我想新书应该会推荐使用storyboard来控制界面吧,仁者见仁智者见智啦,其实都挺好用,storyboard倾向整体,nib(xib)倾向具体,nib和xib是一个东西,只是人们习惯叫它nib而已,至于我说的整体具体的问题,用着用着自然就会明白,不赘述。


3.这是一篇非常初级的帖子,所以废话比较多。做iOS开发你需要哪些东西,必备的硬件软件我就不说了,猪都知道要Mac本和XCode,不要用MacBookAir,也不要用MacMini,要么MacBookPro要么直接iMac台机,否则做开发做到最后你会后悔的,博主我 的老师被Air坑过,而我被Mini坑过,都是血的教训。既然决定搞iOS,装备还是好一点。还有开发者证书也不可少,做iOS开发嘛,怎么样都去AppStore上线一个项目过把瘾吧,哪怕不盈利,这都是宝贵的经验。


4.重点在这里,分类列出来需要的知识,有些是面试必备,有些是开发必备,供参考,个人之见,欢迎大家批评指正~


<数据结构知识>

基本排序算法,冒泡、插入、堆排、快排,尤其快速排序,时间复杂度O(nlogn),快啊; 二叉树、平衡二叉树、二叉排序树;顺序表就地逆序、链表遍历以及逆序(基本吃一个透链表就ok了);各种查找,二分查找等。

数据结构是面试必备啊,牛逼的公司面试题就是各种算法,当然,掌握数据结构,对开发来说是有很大好处的,稍微成熟点的程序员,我指的是了解一些计算机底层的,都会在开发过程中综合考虑代码的时间空间效率。建议初学者就要建立起这个意识,虽然以后你肯定会遇到,因时间紧迫,顾不上效率得先完成功能的时候,但,愿望是美好的,如若可以,请怀揣一颗写优秀代码的心去学习~


<数据库知识>

MySQL、CoreData、SQLServer,别被数据库吓到,数据库的用处就是用来存数据,读数据的,所以要学的只是怎么配置数据库,怎么存数据,怎么读数据,网上翻翻教程就会了,so easy。要注意的是,使用时要处理好数据库对象的生命周期,否则可能导致重复写入数据库,本地数据库越来越大之类的错误...嘛,这个我就顺便一提,具体问题在实际开发中遇见了就知道了,看不懂的可以略过我的话。我说的so easy是指数据库的最基本用法,至于那些专门的数据库人员,他们用Oracle都用的出神入化了,我们不需要到他们那么高大上的境界。


<网络知识>

ASIHttpRequest这个框架是一定要掌握滴,否则别说你学过iOS,还有Socket GET POST请求这些个字眼,你一定要明白他们是干什么的,实际用用就好,http://www.oschina.net/question/54100_36184 这是一个非常好的网页,上面总结了ASIHttpRequest的所有用法,简单粗暴实用。


<bug调试知识>

对于初学者,我只想说,掌握两个,最实用也是最常用,一是断点跟踪,二是NSLog。断点跟踪,看看程序崩溃问题在哪,NSLog控制台打印出信息看看是否正确,比如数组里面内容是不是预想的结果,当你遇见null之类的bug,NSLog乃是一大杀找错手锏,简单粗暴实用。


<代码风格问题>

都说牛逼的代码代码本身就是注释,但是在你还没有到那么牛逼的境界前,乖乖写注释。遵循两个原则,一是在类开始处注明它的功能,二是在函数前面注明它是干什么用的,在复杂语句后注明它的作用。然后代码缩进对齐之类的问题就不赘述了,只要记住代码好坏体现人品好坏,你就会认真写代码啦~开发过程中总会有n个头文件,父类子类各种类的,所以除了建逻辑目录group时功能层次要清晰,在创建文件时,命名也是如此,而代码加注释也是为了自己,80%朋友自己写的代码一个月以后再看像是看别人的代码一样,真的会忘记的。


<一些牛逼的网址>

在想不出功能如何实现,设计找不到思路,就去这些网站逛逛学习学习取取经,没搬运过代码的程序员不是好孩子~

UI4app 主要是一些优秀的UI设计,好的效果  http://ui4app.com/

code4app 优秀功能实现的代码  http://code4app.com/

GitHub 开源中国  https://github.com/oschina

 

<有关游戏>

cocos2d,做游戏,这个名字应该是如雷贯耳,一个开源框架,有c和c++版的,cocos2d-iPhone底层是C语言写的,开发时用OC和C,cocos2d-x底层是C++写的,开发时用OC和C++。大多数手游都是cocos2d-x框架,因为它的可移植性好,除了专门做iPhone市场的公司可能只用cocos2d-iPhone,一般iOS和安卓市场都做的公司都是使用cocos2d-x。博主游戏开发经验有限,就不在这里卖弄了。

 

写在最后的话:

想来我这个伪程序员也写了一年代码了,从大学对Java恨之入骨到现在自己从事软件开发,简直不可思议,由此可见困难都是可以克服的。感触就不在这里废话了,想说的是,若是自己开发一款软件,需求必须i明确,可以由简到繁,切不可囫囵吞枣做了再说,不然后期需求有变,变的可能就是整个架构!那样你会疯。博主就被需求不明确的boss坑过,简直丧心病狂,他自己都不知道要做什么,做了一版又各种不满意各种改,改到最后原来的框架完全不能用了...所以也希望大家能遇上头脑清晰需求明确的好boss。

 

编程之路漫漫,路途上若有良师益友相伴会是事半功倍的,若没有,一个人去寻找风景也是美事一件。

也许有一天我会从一个伪程序员变成一个真正的程序员吧。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值