今天看了 Udacity 的 iOS 学习路线介绍,作者的看法是,最好先学习 Swift,而不是 Objective-C,原因一方面是 Swift 要简单一些,另一方面是因为 Apple 打算用 Swift 作为将来的官方语言取代 OC。
大学里,编程语言课程就是 C 和 C++。我不知道这是谁定的,也许他们有足够充分的理由。但是对于大多数人来说,这两个语言——一个太底层,一个太复杂)其实不见得那么重要。还不如学学 Ruby 和 Python 这样的抽象度更高的解释性语言,易于使用,而且内置了强大的工具,让人更容易有成就感,同时也不影响掌握编程的方法,只不过牺牲一点底层知识而已——可以从计算机体系结构课程中补回来。
学了两个月的 Objective-C 之后,我觉得它实在是太麻烦了。Swift 倒是简单一些,但是只限定于 Apple 的平台,不适合作为自己的核心基础。核心基础无非两类:底层的 C,高层的 Python 和 Ruby 等。我相信从底层学起知识会更牢固,但是,从高层学起更符合人的认知规律。所以我决定从 Python 开始,从高层直觉逐步分解到机器层指令。
我实在是不知道该选择哪些书作为教材,不过因为不想用盗版书,同时又希望用 iPad 搞定一切,所以干脆就只买 Kindle 商店和多看商店里的书了。也就有了这本《Python 学习手册》。
作者一开始就讲了一堆 Python 的好处,仿佛知乎上的语言大战上演。不知道是不是老了,我开始想“这句话这个词到底特么什么意思呢?”,什么叫开发效率高?怎么衡量开发效率?Python 的程序质量高?程序质量你怎么量化?程序崩了怎么知道是 OS 的问题,用户的问题,硬件的问题,还是程序员的问题?…………
你看,好多事情本来很复杂,好多人把它往简单了说,下几个痛快的结论,然后这些事情看起来好像就简单了。就好像朱清时说物理学家登上山顶,发现佛学已经在那儿等着了……我去,谁找个佛学大师来讲讲量子力学,算算暗物质在太阳系的分布呗?反正您已经在山顶上等着了嘛……
说实话,我很讨厌定义模糊的概念——除了点和直线这样实在是没法儿定义的东西……
读这本书的第一章,我的脑子就自动生成了一堆问题,不信你看:
- 注重可读性(可读的标准或者模板是什么?)、一致性(这是什么意思?)、软件质量(如何衡量软件的质量?)、重用(如何重用?)
- 开发效率(相当于 C++/Java 的0.2~0.3)
- 可移植性(直接复制就可以?您确定?)
- 标准库(NumPy)
- 组件集成(与 C/C++互相调用,与 Java 集成)
- 乐趣(”易用“是什么意思?用来干啥?,”强大内置工具“,干什么很强大?)
我没救了。
不过作者的一句话倒是挺应景的:”20世纪90年代中后期互联网带来的信息爆炸,使有限的程序员难以应付繁多的软件开发项目,往往要求开发者以互联网演变一样的速度去开发系统。“
我的同学在 BAT 每天累得不行了都……