学习编程语言时需要注意的内容
一. 方向
1. 了解语言背后的“哲学”
我在初次学习Java时,觉得它即冗长又存在不必要的复杂。那时,我还不是个经验的程序员,并且习惯使用C来编码。Java是一门伟大的语言,但我并不能体会其中的精华——甚至是它的用途,因为我无法理解Java的面向对象原理。
后来,我理解了面向对象方法,并采用它进行编程。这对我更好地理解Java的核心思想以及编程方法起了非常大作用。
如今已有成千上万个编程语言,不同的编程语言解决和优化不同类型的编程问题,并且在计算机系统中处于不同的级别。而你需要做的是了解你所学语言是什么、目标。理解是至关重要的,然后运用它来解决实际问题。
2. 亲自输入所有的代码实例
话说,实践是检验真理的唯一标准。学习一门语言,除了知道其中的原理外,最快的学习方法莫过于实践,编写代码,远远大于读书或看视频所产生的效果。输入代码并且让它们运行起来是学习一门语言至关重要的一步。即使你对该们语言是完全陌生的,在编写的时候你也会发现它们的语法结构,渐渐明白其中的含义。
在编写的过程中,你肯定会犯错,发现错误并纠正它,这个过程也是不可忽视的,错误越多,你就会花更多的心思研究,这样理解就会越加深刻。
3. 更进一步
无论是做实验还是练习,都尝试着更进一步地了解与学习。经常这样做将会给你带来无穷的收获,驱使你不断查阅所学语言相关资料。这样做有两大优势:第一,学习该语言的文档结构并熟悉它;第二,加深概念,帮你解决一些细小问题。
例如,你正在听一堂学习如何使用HTML5和JavaScript制作音频的课,那么你应该进一步问问自己:“该如何控制音量呢?”解决这个问题后,你就可以更加深入的掌握代码。
4. 通过许多小例子学习——而不是大项目
开发很多实用的小例子,最后把这些例子组合成一个项目。在早期常会犯这样的错误,没有进行相互隔离。
其实,采用隔离的方式学习各种语言技能是很重要的。比起学习个人技能,集成是个更复杂的过程。在你对一门语言有了坚实的基础后,集成确实是最好的学习方式,否则很有可能会混淆概念。
5. 让程序运行
一定要让程序跑起来。即使出现多个bug,也要认真调试,直到能够正确运行。想要打开一扇门,则必须要关闭一扇门。当你学习一门新的语言技能时,肯定希望以后能有较高的技能水平。有时,你很容易放弃或者跳过某个小缺陷,使该问题一直处于悬而未决的状态——这样做很危险。
除此之外,没有比这个更兴奋的事情了——第一次看到自己编写的应用程序跑起来。
二. 注意点与方法
1. 基本数据类型,如整型、字符串、静态数组、动态数组
2. 集合(如队列、列表、Map、Set)
3. 文件操作
4. 网络(尤其是socket)
5. 多进程
6. 多协程(例如Go语言的goroutine,Java语言的Akka),可能你会奇怪我为什么没有提及多线程,那是为了强调协程的重要性,^_^
7. 反射(如果该编程语言支持反射的话)
8. 序列化,反序列化
9. 数据库
10. 主流的日志库
11. 配置文件解析(普通键值对配置文件和 XML 格式的配置文件)
12. 版本控制工具,如 GIT
13. 编程规范,例如该编程语言约定俗成的注释风格
14. 详细设计的层次最好不要超过 7 层,接口参数最好不要超过 7 个,单个模块的内部层次最好不要超过 3 层
15. 学习一门函数式编程语言,例如 Lisp
16. 学习一些脚本语言,例如 shell, javascript
17. 学习主流的数据保存格式,如 JSON, XML
18. 使用主流的工程组织结构来进行开发,如 Java 的 Maven 工程模板
19. 一般,我们都会有一些工程开发必备的单例,Config:定义、保存工程编译后可变属性;Define:定义、保存工程编译后不可变属性;ErrorCode:定义开发所需的错误编码;GuiElemText:图形用户界面上控件的文本定义(例如 Button 上的文本);GuiPromptMessage:保存图形用户界面上的提示信息;Status:定义系统状态。
20. 使用该编程语言的主流框架,并探究其设计思想和源码