根据以往在很多技术论坛上的经历,因为要搞懂某个技术点,而几乎翻遍了整个论坛的帖子,最新到最久远...,在这过程中,也发现了很多的同学,或多或少也都处在学习而不得入门这样挣扎的境界。
今天,我将结合平时学习的经验,来简单谈论一下个人认为正确的学习方法。首先,定基调:任何行业要想达到熟练掌握的程度,都需要至少一万小时以上认真的学习和训练。其次,学习方法很重要,对的学习方法事半功倍。
计算机中,当开始学习一种编程语言的时候,无非就是一个模式:语言 + 框架 + 运行环境
1. 比如Java语言, 你要掌握所有的基本语法,必须明语法的技术规范,同时也要掌握SDK提供的基础的framework, 还有掌握相应平台runtime的知识。
总结: Java 技术规范 + SDK + Runtime(Windows/Linux/Unix)
2. 接着说C语言,首先拿到几份c语言技术规范的标准,C89/C99/C11, 把所有的语法知识点吃透,同时掌握framework,是glibc,还是libc等等框架库,最后就是runtime的平台相关的知识了。
总结: C技术规范 + Framework(glibc/libc/...) + Runtime(Windows/Linux/Unix)
3.最后说Objective-c,这个语言的技术规范,就是去Apple 官网上看了,然后就是framework了,Cocoa & Cocoa touch,最后就是runtime了,即Unix系统的原理和使用要达到熟练,这是最低要求。
总结: Objective-c 技术规范 + Framework(Cocoa/Cocoa touch)+ Runtime(Unix)
但是,纵观现在市场上各种快餐式的学习书籍,都没有指出学习语言最基本和最系统的学习方法,要么是某一个或者某几个技术点凑在一块儿成为一本<<几个小时精通xxx语言>>,非常的零散,要么就是学习的入口太模糊不清,他们都没有强调,技术的标准和实现,有的图书都仅仅是简单点一点,有的图书甚至都不提标准,这让很多自学者,都摸不着头脑,明明照着书上源码写的,就是运行不了,他们不知道现在用的语法,是隶属于哪个标准的,是C89才有的,还是C99中的,他们也不知道使用的编译器是支持到哪个技术标的,他们甚至不知道所使用的平台,即操作系统上有没有这个技术标准对应的库的实现,这就直接导致他们花费大量时间在网上的技术论坛上去搜索那些个零散的知识点,而这是最浪费时间的了,收获却很小。
而且,任何一种技术都有文档,所以使用一种技术之前,先读其文档。一个完整的项目都会有一个描述生命周期和来龙去脉的README.TXT.
然后,你又发现,那全是英文,看不懂,那就下载一个翻译软件。只要有能帮助你实现目标和要求的方法,就要"不折手段"地去实施.
附录:
Java的技术规范,就在oracle官网上;
C语言技术规范,是由open-std来维护;
Objective-c技术规范,有apple来维护;
第一次写心得总结,希望对初学者有用,能更快从更高level来把握技术体系。