计算机基础
《程序是怎样跑起来的》
推荐理由:类似深入理解计算机的图解版本,如果第一次看深入理解计算机看不进去,可以先看看,了解个大概,再看深入理解计算机这本就容易很多。
《深入理解计算机系统》
推荐理由:了解一个程序的编译、链接、执行过程,以及虚拟内存是如何分配等。
通用编程
《算法(第四版)》
推荐理由:难度不及算法导论,但是更适合工程领域,导论恐高症患者的福音。
《编程珠玑》
推荐理由:编程珠玑这本书推荐给有代码基础的小伙伴,推荐理由是书里会有一些优化和算法基础的思想,适合入门之后的进阶,对优化和算法能够有一些基础的认识。对程序员写出优质而高效的代码比较有帮助,至少我个人阅后感受如此。
《设计模式之禅》
推荐理由:读完,通俗易懂,更深刻理解面向对象和面向接口。
注:设计模式这几本书难以取舍,选一本读即可。
《大话设计模式》,《大话数据结构》
推荐理由:都是菜鸟和大牛的对话模式,看着不枯燥,内容也很全。
推荐理由2:推荐初级程序员看<大话设计模式>,这本书有个好处是他是演进式的,虽然内容很简单,看完也没办法直接指导到开发上。但是会有一种恍然大悟的感觉,原来这就是设计模式。比起四人组的设计模式,太过于专业的说明和定义,对于初级开发人员来说,往往无法消化甚至抵触。回到大话设计模式,将实践和故事相结合,即让设计模式接了地气,又引发自己的思考,我怎么可以改造既有的项目。同时作为入门书籍,看完后你会更渴望更专业的设计模式的内容也算是这本书的一个意义。总结就是,一本非常入门接地气的设计模式书籍。
《Head first 设计模式》
推荐理由:漫画形式的以对话为主,都是从生活中的小例子入手,更理解一句话了:万物皆对象。
《构建之法》
推荐理由:一本有趣的软件工程书,新手哪知道什么是软件工程。书里描述了作者在的团队遇到了哪些问题,如何正视,怎样改善,不断改进。理论和实践相结合。面向实战。讲述软件工程中不同角色的作用。看完后可以帮助新手更好地理解软件开发是怎么个回事,更快地走向成熟。
《代码大全》
推荐理由:代码大全全面讲述了工程实践的要点,深入每个细节。可以帮助新手拓展视野,熟悉规范,也可以在学习一些概念或技术时当做字典查。总之代码大全的英文名code complete很能说明问题:帮助你完成整个编码活动的全过程。
《代码整洁之道》
推荐理由:这几天在看,讲解详细,有提供示例,可以提高自己编码素质。
《图解http》
推荐理由:做网络编程必须要懂的基础书,看这本书对做网络缓存和网络性能优化都有不小的帮助,最主要是书内容深入浅出 图文并茂,通俗易懂。
《单元测试的艺术》
推荐理由:由浅入深地介绍了单元测试的各方面知识,告诉我们如何写好单元测试,如何写易于测试的代码,如何处理遗留代码等问题,有理论有案例。
《修改代码的艺术》
推荐理由:详细讲解重构技巧的书,教你怎么处理各种遗留的烂代码,非常详实的重构操作手册。
iOS开发
《Effective Objective-C 2.0》
推荐理由:这本书很适合初学者,能帮助初学者一开始就打下比较规范的基础,里面讲了很多规范。读了这本书能让初学者少走很多弯路。
推荐理由2:精炼,针对性强,对一些生僻容易懵圈的知识点讲得比较细。
《iOS编程实战》
推荐理由:尤其推荐小公司的没有系统学习过iOS的同学看,实战和自己闭门造车完全两码事,这书不是教人这个api怎么用,而是应该这样用。
《Objective-C高级编程 iOS与OS X多线程和内存管理》
推荐理由:这本书给我带来的最大价值是:要让自己对一项技术有全面的认识,光从官方文档、开源代码中寻找答案并不够,还要会用各种工具来验证自己的想法。可以看出作者对技术非常严谨的态度,虽然偶尔有些翻译并不容易让人理解,但真的是一本进阶型的书。
《iOS编程(第4版)》
推荐理由:作者之一Aaron Hillegass曾就职于NeXT公司和Apple公司。 书涵盖了初级到中级的,书中在讲到第一次出现的知识点的时候,通常会简要的解释一下,所以初学者很容易上手。缺点是这书有点老,但OC的基础知识讲解的很扎实。
《Swift Apprentice》
推荐理由:这本书的优势就是从浅入深,抽死剥茧,从最基础的知识带领你到函数编程奥义的天堂,充分的实例,全英文,免去你被中文版带沟里的风险,相信这本书能告诉初学者swift2为什是大势所趋,为什么swift2即是面向对象编程语言又是函数编程语言。
《Swifter – 100 个 Swift 必备 tips》
推荐理由:比较偏帮助手册类的tips,虽然没有讲Swift比较深入的,但对前期学习Swift梳理与Objective-C及混编有很大帮助。
《iOS应用逆向工程 第2版》推荐理由:iOS应用逆向最有价值参考书籍,内容涵盖多个实例,阐述class-dump、Theos、Cycript、Reveal、IDA、LLDB等常用工具的使用,通俗易懂;总结提炼出一套从UI观察切入代码分析的iOS应用逆向工程方法论,激发iOS开发人员对应用安全的思考,把主动防御的思想渗透到项目开发中。