2015年总结

一年这么快就过去了,我还没怎么看书学习呢,本想接着2014年学习总结写写今年的呢,可惜今年学习少,郁闷多,标题不能再叫学习总结了,只能叫总结。其实只谈技术也挺无聊的,什么都掺杂一点才更贴近生活,更贴近人生。写点东西,给自己留个足迹,同时分享给别人,就像对朋友倾述一样,说不定还能产生共鸣。

谈起今年的感受,真可谓是五味杂陈。2015年可以说是我的iOS年,转行做iOS开发,从零开始学习iOS,这个过程其实相当痛苦,长期闷闷不乐,好几次都想放弃。我感觉客观原因是环境变化大,Mac, OSX, ObjectiveC, Cocoa, Xcode, Git… 也就是说,系统,语言,框架/库,IDE,VCS全变了,短时间内很难适应,(我有个真理:你对一套工具越熟悉,用得越熟练,在切换到你不熟悉的工具时就越痛苦)我也知道会有短期的不适应,我早有心理准备,但真正让我痛苦的不是工具的改变,而是工具的低效和愚蠢,其实2012年我从C语言转行做C#.NET时,也痛苦过,但那种痛苦是从 低效落后 向 高效先进 的过程中产生的,其实是幸福的,是充实的,然而这次不同,这次是从先进到落后,那种痛苦难以形容,就好像吃惯了山珍海味突然改吃草根树皮,就好像大都市的姑娘嫁到山旮旯,心理上甚至肢体上都难以接受。(也和既有代码庞大混乱,无注释有关)每当气得想砸电脑时,我都提醒自己 是爷们儿就不要轻言放弃,坚持到最后才是胜利,就这样抑郁了半年,差不多十一假期之后,我总算不那么难受了,或者说适应了。讽刺的是我曾在iOS博客中看过一句话,大意是『当你不再觉得奇葩,别扭,或者觉得正常甚至喜欢的时候,其实你已经不正常了。』《疯狂的程序员》也说:『愚蠢的语言会让人变的愚蠢。』哼哼,我也不知道我变蠢了没有,应该没有,我自以为我是已经看穿了的人,是过来人,应该不会轻易入套儿的。 

其实说一点儿影响也没有是假的,主要表现在我比以前麻木了很多,懒得争论技术的好坏优劣,只要能做到就行了, 换以前郁闷那会儿,我能列举出100条理由来证明语言和工具有多蠢,而现在早已没那心情和精力了。不过话说回来,也不一定是人家工具蠢,是我自己蠢也说不定,若有人说我蠢,我也绝不反驳,比我聪明的人实在太多太多了。但有一点能肯定,苹果在软件开发方面起码落后微软10年,无论是语言,框架还是IDE,都落后。我从使用感受和书中能看出苹果确实有在认真做工具和API,但它是埋着头搞,不去学习借鉴别人,连自己落后到什么程度都不知道,哀哉。 

不知道是不是同样受这个影响,我现在对新硬件和新技术也不怎么感兴趣了,满足需要就行了,大不了到时候再学喽,什么?堕落了? 没进取心了? 呵呵,老子转行不止一次了,大不了再转一次,老子不怕新技术(怕的是落后的,不成熟的,没必要的技术,浪费时间),不就是多看几本书,痛苦几个月嘛。


说到看书,回想了一下,我今年还是看过几本的,简短地总结一下(按时间前后),也算是自我安慰吧。

《OS X Mountain Lion高手进阶》
尝试过OSX的虚拟机,很卡很慢,年初终于狠狠了心,购买了一台MacBookPro,初用系统不知道怎么用,也不想花太多时间摸索,因为还有更重要事情(学习Mac开发)要做,所谓工欲善其事,必先利其器,去书店找书看。相比之下,这本书比其他同类书讲得更深入一些,包含一些系统原理知识,虽然后来没想象中有用,但至少比其他教老年人学电脑类型的强不少。书很厚,很重,全彩页,全面介绍了系统功能及设置,使用技巧,日常维护,常用软件等。生产力类软件占了很多篇幅,可惜对我帮助不大,其他的帮助虽有,但OSX更新太快了,山狮是10.8,我电脑自带的OSX已经是最新的10.10了,有些地方不一样了。
到现在,使用OSX差不多快一年了,老实说,我真的不觉得OSX比Windows好用,所有基础操作比如窗口控制及其快捷键都相当让人焦灼,很多该有的功能没有,即使有也没快捷键,即使有快捷键也跟Windows不一样,好不容易找到了插件(ExtraFinder,BetterSnapTool等)刚舒服了一会儿,系统一升级又不能用了,最让人焦灼的是糟糕的生态,能选择的软件很少,基本上没得选,Windows上有的软件OSX上要么没有,要么功能少Bug多,有几个下载破解版的网站还要购买VIP...以前我是软件的主人,见谁不爽就卸谁,现在变成了软件的奴隶,有苦说不出。现在的OSX就和Windows十几年前的情况很像,还处于软件开荒阶段。如果不是开发iOS必须用OSX,我早就逃回Windows了。


《Cocoa编程开发者手册》
《苹果开发之Cocoa编程(第4版)》 PDF

这两本书讲得是在OSX上开发软件用的知识 ,不是iOS用的。年初打算帮别人做个OSX上的小软件赚点小钱儿才看这两本书的(买MBP同因)。当时(现在也是)市面上绝大多数书是讲iOS的,很少有OSX的,即使有也是很旧的。这两本就是比较旧的,有些地方过时了,尤其是遇到API变化时,书上明明那样写的,硬是编译不过,提示找不到,很是头疼。与此同时,我换工作了,从事iOS开发,就没再看了。因为只看了前几章,也不好评论和总结:基本上开发者手册对历史变迁,结构及原理等讲得比较多,理论多实战少,更像词典,适合查阅,而后者相反,理论少,实战多,适合动手练习,我曾照书做了几个小Demo (点按钮文字变色之类),然并卵。 如果以后有机会开发OSX软件,它们还能用得上,只是,可能性不大。


《MacTalk:人生元编程》PDF
我在书店里看到这本书的纸质版了,纸质版内容要多一点。我认为对于人文类书籍,只要不是名著,就没必要买,当然,如果只卖三、五元的话可以。书里的Mac Tips很有用,列举了130条Mac使用技巧(有一些已经失效了)。科技与人文章节的文章都不错,推荐阅读。其中一篇叫『Mac上的软件付费』,说到我心坎了,应该拒绝盗版我非常认可,我曾买完Mac接着就购买了ParallelsDesktop和NTFS for Mac,记得后来还买过别的,记不清是哪款了......
但现在我的看法变化了,甚至有些后悔花钱购买了。首先是有些是系统本身就应该提供的,不应该再让用户购买,比如NTFS格式是最广泛的格式,Linux都支持,OSX凭什么不支持,还有大量的插件类软件,它们提供着很多便捷功能,其实这些功能是系统本来就应该提供的,可它就是不提供。再就是升级不考虑兼容,系统升级后很多软件不能用了,也就说你买的软件有保质期,说不定刚买完就不能用了。这算什么?这叫一不做为,二不负责,上游不做好表率,下游怎么建设生态嘛。(反观Windows,十几年前开发的软件在最新的Windows版本上依然能运行,微软1998年发布的VC6开发工具到现在依然很多人在用,且用得很好,也就是说用户购买一次,能用10年甚至20年......在兼容性和企业责任方面,苹果需要好好地向微软学习)


《Objective-C 编程全解(第3版)》
这本书比《Objective-C基础教程》更深入详细,厚度也是二倍。我看了大约三分之二,讲得很通俗易懂,插图也很到位,只是当时刚刚从事iOS开发工作,因之前没有任何经验,要学习的东西太多,压力很大,看书看得快,记住的和领会的不多。我打算春节假期里再仔仔细细地读一遍,工作一年之后再回头看,效果肯定不一样.我以前在书店里翻看过几本OC的书,觉得这本书是写得最好的。如果有人让我推荐一本OC的书,我会毫不犹豫地推荐这本。


《精通iOS开发(第6版)》
我早就知道人民邮电出版社最没良心,但当时是刚开始学iOS开发,分辨能力差,再加上此书销量第一,且没有电子版,就轻易上当了。 为什么说上当呢,首先是排版混乱:字体和间距(尤其是加粗后的代码和删除线)看起来很不舒服,纸张偏灰,还能透出背后的字迹,人民邮电出的书很多都这样.其次是内容质量差:大量介绍界面操作的篇幅,比如在什么面板中,点什么文件夹,然后File>New,然后设置什么...接着按住Ctrl键,拖动鼠标至哪里,会出现一个什么颜色的什么标志,松开...... 看得我都想骂人了,『你录个视频不就行了,这么啰嗦,你不嫌累我嫌累啊』, 还嵌入了大量的截图,占据着宝贵的页面空间,真正让我啼笑皆非的是它的操作步骤和截图是基于Xcode5的,而Xcode6界面变了,不适用。再说仅靠点点按钮,动动鼠标之类的内容怎能配得上(书名中的)”精通”二字。还有就是很多知识避重就轻,核心知识寥寥几句,不重要的废话连篇。(后来发现书的英文原名是Beginning iOS 7 Development,把入门翻译成精通,真是醉了,刚刚出的第7版基于Xcode6,但现在大家都在用Xcode7了)。每种技术都有一本经典书,讲iOS开发的经典书是《iOS Programming - the big nerd ranch guide》,中文版由华中科大出版 ,译名《iOS编程》(真普通)。可惜当我知道时,我已经不需要了。hmm...也不是所有人民邮电出的书都不好,只是不好的占多数,选择时要多小心.


《Ruby元编程》
OC的语法及CocoaTouchAPI的用法让我很难受,再加上现有代码数量庞大且无注释,心情很郁闷,也看不下去OC和iOS的书,想看看别的书换换心情.这本书也确实很有意思,里面穿插了一条故事线,就像讲故事一样,在故事里做为新手的你和经验老道的Bill遇到了很多实际问题,Bill带你解决那些问题,且不断改进解决办法,寓教于乐,引人入胜.很多Ruby的新概念,新用法被自然而然地引入,我当时很着迷,接连看了一周,看完后仍意犹未尽,回味着Ruby语言的灵活与优雅,也佩服作者能把书写得如此生动有趣,言简意赅.如果所有的书都能这样写,又何来厌学和跷课呢. 可惜工作中用不到,淡忘了,等以后iOS这边差不多时,我还会再去享受一遍的.


《The Well-Grounded Rubyist》 PDF
看这本书同样是因为OC和iOS让我郁闷,这本书是公认的Ruby的进阶,知识点剖析得很深入,这本是英文书,我看得不快,只看了第一部分(前6章). 因为有工作方面的压力,且工作中也用不到(其实也是能用上的,只是很少用,比如用它写过简化Git操作的脚本,以后还可能用它写代码生成器) ,看的多忘的也多,就没再继续看。 敢肯定的是要想学好Ruby,这本书是必须要好好看的,只能等iOS这边差不多时再去看.


《图解HTTP》
去年只看了前半本,还差后半本,书中插画多,就像漫画书一样,不费脑袋,很适合休闲时看,年中去周庄旅游时我带上它在路上看,回来后又看了两天看完的,理解了几个重要的名词和概念.之所以看它是感觉对以后从事Web开发会有帮助,前文提到的Ruby书也是为了给未来的Rails打基础.虽然我不知道以后会不会从事Web开发,但早做准备至少是无害的.


《Ubuntu Linux从入门到精通》 PDF
虽然书是基于旧的Ubuntu 8.10的,但命令是不变的,我也只是草草地看,很多常用的命令我都知道,但网络和用户管理的命令我直接跳过,因为我把linux当桌面用(不是linux的专长),买椟还珠了对吧,呵呵,背景使然。从去年就设置默认启动linux,能用linux解决的一般不进Windows,因为Windows用久了会慢,虽然重装也很快,但多长些见识总归是好的。我是linux高手?错,我很菜,因为回到家一般是看看电影,听听歌,看看电子书,最像样的也仅是演示文稿(PPT),前阵子关于设计模式的演讲稿就是用LibreOffice做的,其中的截图和UML图也是在linux上完成的。看吧,基本上都是这种非专业的简单任务,哦,还有一部分Web开发工具用linux做试验很合适(尤其是开源的东东)。
关于发行版,我发现Ubuntu桌面环境不稳定,升级组件时涉及到桌面组件,下次启动时桌面就无法启动了,需要进入命令模式重新安装显卡驱动,后来重装驱动也白搭,就换成Mint Mate了,Mint的界面很合我口味,包含很多便捷操作,一些在Ubuntu中需敲命令的在Mint上点点鼠标就可以了,半年多来没出过问题,摄像头,无线网卡,蓝牙也都能正常工作(摄像头用于QQ视频,QQ运行在Windows虚拟机中)。重视稳定性的,我推荐Mint mate ,国外Distrowatch网站公布的2015年linux发行版排名,Mint第一(2014年也是),第二第三是Debian和Ubuntu。 对了,咱国产的deepin做得也蛮不错的(对国产一词请不要太较真),桌面很炫,如果你是玩桌面的,绝不可错过,如果你是玩命令行的,你也不会损失什么,因为底层都差不多(deepin基于Debian)。好吧,我确实是在为deepin做广告,中国确实需要一个活跃的非政府背景的且符合国人习惯的linux发行版,而这需要大家对他们有宽容心,有信心。试用一下吧,你的使用就是对他们最大的鼓励,你的鼓励将成为他们创造更符合国人习惯的系统的动力,振兴国软需要大家的共同努力。即使你不想用,也请为别人鼓掌,切莫嘲讽抵毁。祝愿deepin能越做越好。


《Pro Git 中文版》PDF
《Git版本控制管理(第2版)》

这两本我都只看了前几章,不好评论,上学时老师教VSS,实习时用SVN,换正式工作后改用Perforce,再换工作后TFS,SVN轮番换,现在再改Git,好不热闹。之前的改变都只看看菜单项就会用了,而这次不同,Git太特殊了,太复杂了,必须专门学。区区一个VCS工具,一个本应很普通的软件,竟让我花大把时间理解和记忆,太不可思议了。尤其当我发现iTerm/zsh自带的常用命令别名竟多达108个时,瞬间觉得C++算什么,连一个软件都可以如此复杂,做为一门语言,那点儿复杂性又算得了啥。每遇问题,心中就暗骂『如果换做svn,怎么可能出现这种奇葩问题』,然后问Leader,Leader让我快点学,我说明年才能学会,他疑惑中夹杂着不满:『有那么复杂吗?』
当时的问题出在优先级上。在系统、语言、框架/库、IDE(还包括大量遗留代码)全都很陌生的情况下要学习的东西太多太多了,按优先级排,绝对轮不到VCS,即使排,也得到明年才能轮到。
之所以又看,是因为查看特定文件的修改记录是个很有效的学习方式,然而Git恰恰没提供查看单个文件修改记录的直接方式(这是svn的专长,Git需要绕个圈子,对此我还写了个脚本),我当时以为是自己没系统学,就去看书了,看了一阵子也没找到,再加上框架/库和遗留代码压得很紧,而且仅靠常用的几条Git命令也能勉强度日,就先搁置了。
其实我确实嫌它复杂,难记。即使以后系统学习,我也不打算去记命令,我打算理论结合界面工具,比如SourceTree,中文界面,多个子窗口让我一眼能看到很多不同方面的信息,能用鼠标点的就不记命令了,我要留着脑袋记更重要的东西,再就是像命令参数这种死记硬背的东西,如果长期不用(比如新公司用SVN)就会忘光光,而图形界面,没有忘不忘,它就在那儿,等着用鼠标点。(写这篇短文时我已经在用SourceTree了,但命令行执行速度快,我选择两者共用,各取所长)
我觉得程序员给人印象呆、傻、不谙世事,其中一部分原因是脑袋里装了太多技术概念和术语,以至把它们和现实生活混淆了。 强烈呼吁能简单的就简单,能少记的就少记,逻辑也好,工具也罢,都尽量Keep it Simple and Stupid,把省下来的时间和精力多陪陪亲人,多参加社会活动。(其实我没资格说,我比谁都宅)
说到这里,我还想再多说几句和本节无关的话:IT知识虽多虽广,但也杂,有很多知识不合理,不成熟,甚至是鼓吹炒作。程序员要冷静分析,发现不合理时要敢于大声说不,你越不说,那些不合理不成熟的东西就越肆无忌惮的传播。任何东西,如果有人只说优点不说缺点,那他肯定不熟悉那个东西。东西的优点越大,缺点往往也越大。『恨十条』一文我很喜欢(我转载了),因为他大声说出了自己的真实感受,不人云亦云,让人看到事物的另外一面,避免盲目,至少让人即使身不由己,也能扬长避短,有的放矢。


《Objective-C高级编程 – iOS与OSX多线程和内存管理》
这本书是我从朋友那里借来看的,当时草草地做了些笔记就还她了。本书三个部分:ARC,Block,GCD.主要是通过挖出内部代码,解释原理,ARC部分大多说的是未启用ARC时的内部实现,现在都是启用ARC的,意义不大,Block部分很值得看,涉及的存储域(全局数据区,堆区,栈区)介绍得很详细,让人知其所以然。GCD部分没挖代码,只介绍了几种常见场合下的用法。整体上只有GCD部分能直接用,其他都是介绍『为什么』的,不适合初学者(我也是初学者),基本没有看第二遍的必要,好在书很薄,没花太多时间。如果你想出几道面试题,装装逼,这本书绝对能帮上忙。


《Effective Objective-C 2.0》
很多年前看过《Effective C++》, 当时自己的C++知识几乎被重塑了,它是C++程序员必看的书。我之前以为这本也是必看的书,后来发现它之于OC的份量远不如前者之于C++的份量。 书共列了52条,其中有些很重要,有些很冷门,一半和语言相关,一半和系统框架相关,有原理的,有建议的,有陷阱的,至少有三分之一的内容对大多数人来说是陌生的或疏忽的,还是很值得看的。(有Effective的一般说明语言不好学,然而OC却不是,它虽然语法诡异,但内容不多,此书仅有一半和语言相关 就是证明)我觉得一个不错的方法是把自己陌生的条目在目录中标注下来,等以后有时间时回头复习,可以只复习目录,当工作中遇到相关问题时,立刻想起书中相关的目录,然后定位到内容。 我当时标注了24条,可惜没复习这些目录,把这篇短文写完后我就去复习。


《iOS开发进阶》
初来乍到,对工具和技巧知之甚少,此书正是用来弥补工具和技巧的短板的。很多工具和技巧是即开即用,立竿见影的,因为涵盖的方面多,有些地方说得不详细,但能提供个方向也不错。这是我看的第一本也是唯一一本国人写的iOS开发书,符合国人的特点:最求短期成效最大化,虽不治本,但能临时增强人的自信心。偶尔支持下国产也不错,尤其是一些和国外的书差异化明显的,比如这本就是,完全是从另一方向切入,就像以前的《电脑报》。就冲着作者的商业眼光,咱也得支持一下。


《iOS核心开发手册(第5版)》
十一之前我觉得一切都很蠢,心理上很排斥,很难沉下心认真地看书。十一之后,总算没以前那么难受那么煎熬了,这本书可以说是第一本我沉下心认真看的书,我发现这本书的内容相当好,附书源码也主次分明,重点突出,作者真是好人,比《精通iOS开发》那个S...(咳,不说脏话) 我对作者很有好感,想多看几本他写的书(下文提到的AutoLayout和iOS Drawing就是)。此书内容很实用,对我帮助很大,解决过几个实际问题,虽然只看了三分之二,但我能明显感觉到自己有提升,现在有些地方已经淡忘了,有时间我得再复习一遍。对于想要更进一步的iOS初级开发者,我强烈推荐此书。 (听起来很像无良推荐序,但我是发自内心的)


《iOS Auto Layout 开发秘籍(第2版)》
双十一我买了5本书,这本就是其中一本,它是讲界面布局的,什么?仅布局就能写一本书?是的,我也觉得不可思议,更不可思议的是即使全看完了,全掌握了,跟(.NET十年前推出的)WPF仍然有着十万八千里的差距,没办法,苹果软件团队就是一群饭桶,不信不行。我若不看的话,就得天天做数学题(计算绝对坐标),看比不看强。所幸之前看的《iOS核心开发手册》有一章是布局,为我打下了基础,我看得很顺利,也很快,作者写的工具已在现有代码中大量使用,比之前做数学题高效多了,强烈建议还没用过的赶快去看。 虽然有些地方仍然很蠢,但整体上还算皇恩浩荡,草民先谢主隆恩,待草民日后再行细研,定能温故知新,熟能生巧。


《CoffeeScript 应用开发》
双十一5本中唯独这本和iOS无关,只看iOS的书会不耐烦,工作这边压力也没那么大了,就顺手翻翻,书很薄,以一个简陋的宠物商店为背景,循循善诱地讲coffee。我只看了前半本--语法部分,语法确实比JS简洁很多,更易读,且还引入类和继承等。语法会影响人的兴致(比如OC让我消沉了好久),早就知道JS缺陷很多,兴致不高,幸好有这个改良的替代品,如果以后遇JS相关的,我直接上coffee. 之所以看它是因为以前看过Rails书,它默认采用coffee,我当时被阻碍了,也难怪它用coffee,不只是因为简洁,还因为coffee语法和Ruby很像。 再就是JS貌似最近很火,摆出一副要统一全平台的架势,我这也算稍微防御一点点吧。
环境搭建小贴士:1. for linux的Node包不是deb,也不是tarball,是编译好的文件组,直接复制到/usr/local即可。复制不了?sudo caja /usr/local ,再Ctrl+V. (mint用caja,ubuntu用nautilus). 2. windows上用npm安装coffee时,命令行需要管理员权限打开,否则装不上。


《iOS编程实战》
此书英文名是《iOS 7 Programming Pushing the Limits》,应该翻译成『超越极限』(实战是in Action),正如书名,书中很多内容入门上很少提及(我之前也不知道),属于进阶类,另我印象深刻的是其自定义绘制和CoreAnimation两个章节,正如《iOS核心开发手册》为继续看AutoLayout书打下基础一样,这两节为继续看iOS Drawing和Core Animation书打下了基础。这本书我只看了三分之一,之前的核心开发手册也只看了三分之二,都半途而废,是因为其余的知识点(在当前App中)用不到,看了也只有忘的份儿,等以后用到时,再回头看。


《The Swift Programming Language》 PDF

一些积极的人把苹果官方文档翻译成了中文,翻译得挺好,要是字体和排版再优化一下就完美了。我粗略地看了一遍,相比OC,它确实是先进很多(OC太落后,太反人类),但相比C#和Ruby,它就不先进了,只能算普通。对有经验的人来说,学习它很容易,因为它的语法和思路符合『主流』(OC非主流)。 我对它倒不是特别感兴趣,一个原因是我认为语言不是最重要的(可能是我以前经历过多种语言的原因),更重要的是系统与平台的知识。学语言,看一本书,练一个月就差不多了,而系统与平台即使看五本书,练十个月,也不见得多熟悉。以前的C#之于.NET,现在的OC之于iOS,我都深有体会。另一个原因是Swift给我一种重复发明轮子的感觉,一些语法已经有流行的形式了,它偏要再造出一种形式来,是怕人适应得快么?再就是在它推出之前,Xamarin和RubyMotion分别使用C#和Ruby调用原生API编译为原生应用(最近又冒出一个用JS的ReactNative),用同一种语言开发iOS,安卓,WP等多平台应用,还能做到部分复用,省时省力,多好的方案,可惜它们的关注度不高,不知道是不是被Swift搅的。软件开发世界里,最不缺的就是编程语言,强烈怀疑Swift是苹果的营销手段,制造热点,吸引开发者注意力,给初学者一种特别容易的假象,而学习需要购买硬件,这就变相带动了硬件的销售,高招儿不服不行。 第三个原因是API不配套,API是C和OC风格的,和Swift的风格和使用习惯不一样,多么简洁高效的语言碰上冗长繁琐的API,也简洁高效不起来,穿新鞋走老路,效率提升有限,据说下个版本(3.0)会拟个符合Swift风格的API规范,让API用起来更符合Swift的简约风格,我还是再等等3.0吧。总之最根本的还是系统与平台,不论使用哪种语言,系统与平台的知识及API总是躲不过的,认真学系统与平台是错不了的。(语言也就一个月的事儿,先放一边)


后期补充:1.单从语言本身的设计来讲,我认为C#是静态语言中设计得最好的,Ruby是动态语言中设计得最好的.我很早就这么认为,Xamarin和RubyMotion让我更确信了,它俩是比较早适配多平台的,JS是后来才兴起的,除了它三个,还没有第四种语言被选择.2.苹果推Swift是在防御,如果它啥都不做,OC会遭到C#/Ruby/JS的碾压,导致苹果的主导权被削弱,这是苹果非常不想看到的,对苹果来说,Swift再不成熟它也得推,而且一定要高调.3.一门语言从诞生到成熟差不多要5年时间,少说也得3年,在这期间会修改很多次,这对主导语言的公司或团体没什么,然而对使用此语言的程序猿可就苦逼了.国家之间的战争,无论谁胜谁败,遭殃的永远是老百姓.


《iOS Drawing – Practical UIKit Solutions》PDF 英文
这本书虽然是英文的,但读起来很容易,因为单词都很简单,很少有生僻词,这本书专门讲绘图,从基本的绘图上下文信息开始(比如设置线条色,填充色,线宽,矩形,椭圆,上下文状态的切换和恢复,变换,裁切等),讲到图像处理(比如等比缩放,截取,灰度图,水印,平铺等),再讲到路径(比如贝塞尔线,路径变换,字符串路径,虚线样式,交叉样式,线帽,阴影等),再讲到渐变(线性和径向,渐变函数,透明层,拼合多种炫酷效果等),再讲到遮罩,模糊,动画(比如羽化,镜面反射效果,蚂蚁线等),最后讲文本,展示多种字体效果和段落样式。知识相当丰富,简直就像Photoshop教程。 很多用法和我以前接触过的Win32 GDI相关函数以及.NET的DrawingContext相关方法非常相似,以前顶多一两个章节的知识,这次被写成了一本书。(篇幅多也和iOS的API分散和低级有关(高级的UIKit和低级的Quartz/Core Graphics))。

《iOS Core Animation Advanced Techniques》 PDF 英文

这本书虽也是英文,但也不难读,书分三部分:图层,动画,性能优化,可以说是专门讲图层和动画,讲得很深入。我只看了前两部分,Core Animation名字起得不好,给人感觉好像只是动画,其实它还包括很多图层方面的内容,且这部分图层内容在实际开发中很常用(比如锚点,Z轴,图层坐标转换、点击检测和布局,圆角及裁剪,阴影,遮罩,缩放模式,透明,仿射变换,3D变换,还介绍了多种预置的经过优化的专用图层)。动画部分介绍了动画的底层机制(比如隐式动画相关的事务,默认动作及自定义动作,模型层及展示层等,显式动画相关的属性动画【基本动画、关键帧动画和动画编组】,转换【内置转换,自定义转换,应用到图层】和中途取消,时间线及时间的相对和继承,速度,默认及自定义渐变函数等),可总结为一句话:如何更细粒度地控制动画过程.其中很多概念和我以前接触的WPF动画很相似,以前的动画章节也有厚厚的几十页。第三部分是性能分析及优化,还没来及看。

期间老婆带孩子找我玩,小孩子常吵闹,最近又咳嗽得厉害,呕吐,每夜咳呕三四次,医院去了三次也不见好转,别说看书了,连白天工作的精神都受影响,动画部分也没仔细看,等以后有时间再回头看。



差不多就这些,很多书都没看完,接下来我会把它们看完。下载我们公司的旅游App【出发吧】试用一下吧,真的蛮不错的(里面包括很多我的成果哦~,嘿嘿)。 看过App后是不是觉得我的iOS学得很好? 非也,对一般性的或者常见的任务够用了,但要更全面更熟练,还需要看更多的书,做更多的练习,话虽如此,很多时候也是无能为力的,最典型的就是负责的产品或项目中用不到那方面知识,即使看了,长期不用也会忘掉,需要勤复习才行.有人说用到什么学什么,用到的时候再学,这话也对,也不对,不对的原因有二:一是用到时再学往往太迟,公司不是学校,不会给你时间学习,即使给 也短得可怜,学不学得完,学得质量如何,只有自己知道.二是很多时候你不知道让你犯愁的那个问题其实有个简单便捷的方法,或者你不知道这样做之后会有冲突或副作用,那么问题来了,你都不知道它的存在,又如何知道要学它呢.

不止一人疑惑地问我:"你为什么要买书看呢,直接上网查或直接看官方文档不就行了?"首先跟我背景有关,在我参加工作之前及参加工作的前两年我都不能上网,受很多年不连网的影响,习惯了.其次 这里要区分是学习还是解决问题,如果只是解决问题,特别是具体问题,那一定是上网查或官方文档最方便,如果是学习,我认为看书更好一些,网上的信息太散太碎,不利于形成整体认识,而官方文档当字典用很合适,对入门和理解概念都不太合适.根据我看书的经验,书可划分三类:入门,进阶,精通.不同的人在不同阶段总能找到最适合自己的那类,负责任的作者一般都会在前言或序中说明,比如本书假定读者已经熟练使用xx,有一定xx经验等,就是典型的进阶书,(说适合所有人看的书大多是垃圾书)精通类的书指的是专项书,专讲某个知识点或某一方面,内容质量往往很高,每个专项都是这方面的专家或大师写的,详尽且有深度,能给人建立起系统的全面的知识体系(上文最后两本就是专项书,你回头再读一遍会更明白专项书).想成专家,想成大牛就得多看专项书.

刚才我说还需要看更多的书,不是客套,我知道还有专门讲数据操作的(Core Data),还有专门讲网络的,还有专门讲理念和模式的等等一些专项书,我都还没看(我希望以后能精通,能成专家)。任何技术都有很多方面,像UI,存储,通信,模式等,(UI又可细分为控件,布局,底层绘制,动画,特效等,存储又可分为配置,缓存,数据库,同步等)一个不起眼的小应用可能涉及到很多方面的知识.要精通一门技术是很难的,要看很多,练很多.(看本文的你千万别像我这样,朝三暮四,最后什么都没精通.)
说到精通,如何才算精通,一百个人有一百种看法,我认为精通至少要这样:在听完需求或看完设计稿后,能毫不犹豫的做出以下几种回答:a. 只需五分钟 b.需要两天 c.内存或性能影响太大,要换方案 d.做不了,...不可能. 我相信不远的将来我也能做到.

写这段文字时,我接触iOS快十个月了,虽不算长,但大多数常见的App我都能做,如果之前没有郁闷那么长时间(那段时间看了太多连续剧),我应该能学到更多,浪费了很多时间很可惜,接下来的几个月,我要把之前浪费的全都补回来.

不充实的2015只能用更充实的2016来弥补了,新的一年,大家和我一起加油吧.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值