前言
如何成为一名软件开发工程师
从大学毕业到如今,不知不觉敲代码已有十余载。从初期的“乱石穿空,惊涛拍岸,卷起千堆雪”,到如今的“道可道也,非恒道也。名可名也,非恒名也”,真可谓“谈笑间,樯橹灰飞烟灭”。少了份“浮躁”,多了份“平静与思考”。懂得了敲代码正如雕刻家雕刻作品一样,需要一点一点精雕细刻,才可能创造出“艺术品”;懂得了“道”存在于代码之间,正所谓“为学者日益,为道者日损,损之又损,以至于无为”。
对于软件开发这个殿堂,估计很多人会长久徘徊于门外,特别是那些想迈进这个大门的初学者或者爱好者。实际上,当初的我也是带着很多的困惑和很大的压力步入这个行业的。
大学期间留给我们的多是“一无所有”的四年。而吾等众生,面对毕业之后父母“断奶”之迫,需要自己靠双手来“自力更生”;而面对校园外的“招聘”,自己总是那么惶惶不安缺乏“自信”,特别是参加过几场人才招聘会之后,真可谓“欲哭无泪”呀!
引用普希金的诗《假如生活欺骗了你》:“假如生活欺骗了你,不要伤心,不要哭泣;这样的日子里,需要勇气;要相信快乐的日子总会来临。”只要你有梦想有激情,有强烈的学习欲望,有较强的逻辑思维能力和一定的英语基础,热爱软件开发工作,同时能做到持之以恒,相信你不但能成为一名职业的软件开发工程师,而且还能成为一名优秀的软件开发工程师。
这一行是靠能力说话的,同时,这又是一个充满激情的行业。不管你是否毕业,不管你是否是计算机专业,甚至不管你是否上过大学,只要肯努力,有上进心,都可以加入软件开发团队中。也许你就是中国未来的比尔·盖茨或者乔布斯,世界会因“你”而精彩(李开复很喜欢这个座右铭)!
这里我还想说两点,希望对即将毕业或者刚步入大学的你有用:
·对于高校在读的学生,不管将来要从事什么行业,建议早有规划,早做一些准备。以免毕业做“啃老族”。
·对于即将大学毕业或者已经毕业的学生,建议最好不要参加社会上的“软件开发培训”。一是需要一笔可观的培训费(如果经济条件好,参加也不错);二是不利于自学能力的培养。因为从事软件开发行业,需要保持一颗不断学习的心,否则很容易被淘汰。
为什么学习iPhone/iPad应用开发技术
1)基于iPhone/iPad的应用开发已成为当今移动智能设备两大主流应用开发之一。
最近几年国内外从事基于iPhone/iPad开发的人员增速一直位于前列,已经形成了一个庞大的开发队伍。无论是传统互联网还是移动互联网,iPhone/iPad应用设计理念一直引导着众多人模仿、推崇和跟随。iPhone/iPad已成为当今移动智能设备应用发展的里程碑。
2)支持iPhone/iPad的操作系统iOS是当今移动智能设备运行最稳定的操作系统。
当今市场上应用最广的两大主流智能移动设备操作系统分别是Android和iOS。前者系统的稳定性、开销性和安全性成为“三座大山”,难以“移动”。很多用过Android手机的用户都遇到过手机“死机”、“莫名重启”等问题,而iOS就很少发生这类情况。
3)iPhone/iPad框架的原生态语言是Objective-C。
选择Objective-C作为iPhone/iPad框架的原生态语言有许多方面的原因。
·首先,最主要的原因是,Objective-C是面向对象的语言。iPhone/iPad框架中的很多功能只能通过面向对象技术来呈现。iPhone/iPad SDK用的就是Objective-C。
·其次,Objective-C是标准C语言的一个超集,现存的C程序无须重新开发就能够使用iPhone/iPad软件框架,并且在Objective-C中可以使用C的所有特性。可以选择什么时候采用面向对象的编程方式(例如定义一个新的类),什么时候使用传统的面向过程的编程方式(定义数据结构和函数)。
·此外,Objective-C是一个简洁的语言,它的语法简单,没有歧义,易于学习。因为术语易于混淆以及抽象设计的重要性,对于初学者来说,面向对象编程的学习曲线比较陡峭。像Objective-C这种结构良好的语言使得成为一个面向对象程序员更为容易。介绍Objective-C的章节也如同其语言本身一样简洁。
·和其他基于标准C语言的面向对象语言相比,Objective-C对动态机制支持得更为彻底。编译器为运行环境保留了很多对象本身的数据信息,因此某些在编译时需要做出的选择就可以推迟到运行时来决定。这种特性使得基于Objective-C的程序非常灵活和强大。
4)基于iPhone/iPad的应用市场已经成为“成熟有价市场”。
苹果应用商店(App Store)是苹果公司为其iPhone、iPod touch、iPad、Mac等产品创建和维护的数字化应用发布平台,允许用户从iTunes Store浏览和下载一些由iOS SDK或者Mac SDK开发的应用程序。根据应用发布的不同情况,用户可以付费或者免费下载。
如果你有不错的优秀产品,可以发布到苹果商店,标上价格。如果有人下载你的应用就会很有信用地“付款”,达到一定的下载数量,也是一笔可观收入。国内有很多个人和小公司,通过发布的应用已经获得了很大的成功。
本书适合哪些读者
·对软件开发,特别是对iPhone/iPad开发有兴趣的人。
·想成为一名专职的软件开发人员。
·在校的学生可将本书作为学习计算机软件开发的教程。
·想了解有关iPhone/iPad软件开发方面知识的从业人员,本书能帮你很快“过渡”。
·开设相关专业课程的大专院校。
你将学到什么
本书是iPhone/iPad开发的入门级书,也是系统介绍支持iPhone/iPad应用开发框架的书。本书最大的作用就是引导你入门,只要你有梦想,有激情,通过本书你将会学到iPhone/iPad开发入门所需要掌握的基本知识。掌握本书知识,便可以迈进iPhone/iPad开发的门槛。
但是想成为一名优秀的iPhone/iPad软件开发人员,还需要很多方面的知识,所以希望阅读完本书的你,继续深造学习,使自己“更上一层楼”!
你该如何阅读本书
本书采取循序渐进的方式。对于有一定的软件开发经验,或者缺乏耐心的读者,可以根据“需求”选择不同的章节来阅读,这也是最有效的读书方式,也是我推崇的读书方式。
本书共20章,从内容上可以分四部分。
准备篇(第1~2章):首先介绍一些iOS、Objective-C和Xcode的入门知识,使读者了解这三者之间的关系,粗略了解它们的发展史;并且关注了iOS 7的新特性。然后介绍了大家熟悉的Objective-C应用开发环境的搭建,使读者初次感受iPhone开发过程。经过这部分的学习使读者对有关iPhone/iPad开发有一个大致的了解,为以后应用开发做准备。
语法篇(第3~8章):主要介绍Objective-C语法知识,这部分内容有些枯燥,但却是日后开发过程中必须掌握的基础知识。其中包括类、对象、消息和协议,以及内存管理。重点介绍了Foundation框架常用类的使用方法。
基础篇(第9~18章):重点介绍iOS应用开发的框架,使读者掌握实际应用开发所需要的基础知识,这一部分是本书的重点。通过本章的学习,读者应该掌握多状态和多任务、视图和视图控制器、事件和通知、音频和视频。
实战篇(第19~20章):由于篇幅有限,实战环节只列出两个案例,分别是基于iPad的应用程序和基于iPhone的小游戏。通过两个案例,把前面学到的知识应用到实践中,使读者真正体验和了解软件开发的全过程。
勘误和支持
除封面署名外,参加本书编写工作的还有:孙振江、陈连增、边伟、郭合苍、郑军、吴景峰、杨珍民、王文朝、崔少闯、韦闪雷、刘红娇、王洁、于雪龙、孔琴。由于作者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,特意在此公布我的博客地址http://blog.sina.com.cn/Beijingwolf。可以将书中的错误发布在Bug勘误表页面中,如果你遇到任何问题可以留言,我将尽量在线上提供最满意的解答。同时,我也会在博客上不定期发布一些实战示例,供读者下载学习,来不断强化所学知识。
该书定稿的时候,苹果陆续公布了大量有关iOS 7的技术文档和范例,且一直在进行着。我会通过博客(http://blog.sina.com.cn/Beijingwolf)不定期发表有关iOS 7的最新材料,紧跟iOS 7最新的技术进展,为各位读者提供完善的技术材料和指导。书中实例的源文件可以从华章网站。下载,如果你有更多的宝贵意见,欢迎发送邮件至邮箱yifeilang@aliyun.com,期待能够得到你们的真挚反馈。
致谢
我爱读书,往往不求甚解。中学时虽翻阅过《道德经》、《奇门遁甲》等书,但不得要领,转瞬间,烟消云散。2012年,到张瑞海先生的公司做事,有幸重温《道德经》。张先生是一位令我“醍醐灌顶”的人,“慧根不深”但“后天上进,悟性很高”,不但创造了庞大事业,还引导公司员工“禅悟”《道德经》。正是这个机会,使我悟到乔布斯在iPhone/iPad设计的“禅道”,在冥冥中明白了“0”和“1”,与“道生一,一生二,二生三,三生万物。万物负阴而抱阳,冲气以为和”相通。明白写代码“天下之至柔”才是代码“重构”之道,程序的设计最高境界在于“无为而无不为”。因有机会聆听先生之“布道”,使我掌握了iPhone/iPad设计之要领并写作本书。如今能与诸位同仁共享本书,真心感激张先生这种独特的“布道、禅道和悟道”之术。
高山之巅,白云之上,羽翔之光。我甚幸遇到机械工业出版社华章公司杨福川先生,他为我安排白宇女士作为本书的编辑。在编程行业,程序员都有一个过分的溺爱——容不得别人“批评”自己写的东西,正如母亲爱护自己的孩子一样。之前,与其他出版社合作出版过一本书,由于对方的编辑欠些“火候”,一本书将近一百个批注点,竟然只有三四个点“适得要领”,虽然该书已出版,但我总感觉缺些什么。而白宇女士,俨然一位“武林”高手,熟谙“点穴之法”,笔笔正中穴位之处,其批注使人心悦诚服,油然敬佩,为本书大增“光色”。
最后,感谢的就是你,我亲爱的读者,感谢你拿起这本书,你们的认可,就是我的最大的快乐。
刘一道