很多人喜爱争辩什么什么编程言语好,我以为这个论题假如不限制运用规模,就毫无意义。
每种编程言语必定有其长处和缺陷,这也决议了它有合适的运用场景和不合适的运用场景。现代软件职业,想一门编程言语包打天下是不现实的。这中现状也造成了一种现象,一个程序员往往要把握多种编程言语。
学习任何一门编程言语,都会面对的榜首个问题都是:怎么学习 XX 言语?
我不想说什么多看、多学、多写、多练之类的废话。世上事有难易乎?无他,唯手熟尔。谁不知道游刃有余的道理?
我觉得有必要谈谈的是:怎么由浅入深的学习一门编程言语?学习一切编程言语有没有一个相对一致的学习方法?
曾几何时,当我仍是一名小菜鸟时,总是叹服那些大神把握多门编程言语。后来,在多年编程工作和学习中,我陆陆续续也触摸过不少编程言语:C、C++、Java、C#、Javascript、shell 等等。每次学习一门新的编程言语,把握程度或深或浅,可是学习的曲线却大略相似。
下面,我依照个人的学习经验总结一下,学习编程言语的根本过程。
学习编程言语的过程
根本语法
首要当然是了解言语的最根本语法。
操控台输出,如 C 的 printf,Java 的 System.out.println 等。
一般程序员的榜首行代码一般都是输出 “Hello World” 吧。
• 根本数据类型
不同编程言语的根本数据类型不同。根本数据类型是的请求内存空间变得便利、规范化。
• 变量
不同编程言语的声明变量方法有很大不同。有的如 Java 、C++ 需求清晰指定变量数据类型,这种叫强类型界说言语。有的言语(主要是脚本言语),如 Javascript、Shell 等,不需求清晰指定数据类型,这种叫若类型界说言语。
还需求留意的一点是变量的效果域规模和生命周期。不同言语变量的效果域规模和生命周期不必定相同,这个需求在代码中细细体会,有时会为此埋雷。
• 逻辑操控句子
编程言语都会有逻辑操控句子,哪怕是汇编言语。
把握条件句子、循环句子、中止循环句子(break、conTInue)、挑选句子。一般差异仅仅在于关键字、语法格局略有不同。
• 运算符
把握根本运算符,如算术运算符、联系运算符、逻辑运算符、赋值运算符等。
有些言语还供给位运算符、特别运算符,视情节把握。
• 注释(没啥好说的)
• 函数
编程言语根本都有函数。留意语法格局:是否支撑出参;支撑哪些数据作为入参,有些言语答应将函数作为参数传入另一个参数(即回调);返回值;怎么退出函数(如 Java、C++的 return,)。
数组、枚举、调集
枚举只要部分编程言语有,如 Java、C++、C#。
可是数组和调集(有些言语叫容器)一般编程言语都有,仅仅有的编程言语供给的调集比较丰富。运用方法根本相似。
常用类
比较常用的类(当然有些言语中不叫类,叫目标或许其他什么,这个不重要,体会精力)请了解其 API 用法,如:字符串、日期、数学核算等等。
言语特性
言语特性这个特字反映的便是各个编程言语本身的"共同特性",这触及的点比较多,简略罗列一些。
• 编程形式
比较盛行的编程形式大概有:
面向目标编程,主要是封装、承继、多态;函数式编程,主要是运用 Lambda;过程式编程,能够理解为实现需求功用的特定过程。
每种编程形式都有必定的道理,我从不以为只要面向目标编程才是王道。
Java 是面向目标言语,从 Java8 开端也支撑函数编程(引进 Lambda 表达式);C++ 能够算是半面向目标,半面向过程式言语。
• 言语本身特性
每个言语本身都有一些重要特性需求了解。例如,学习 C、C++,你有必要了解内存的请求和开释,了解指针、引证。而学习 Java,你需求了解 JVM,废物收回机制。学习 Javascript,你需求了解 DOM 操作等。
代码安排、模块加载、库办理
一个程序一般都有很多个源代码文件。这就会引进这些问题:怎么将代码文件安排起来?怎么依据事务需求,挑选将部分模块启动时进行加载,部分模块运用懒加载(或许热加载)?
最根本的引证文件就不提了,如C、C++的#include,Java 的 import 等。
针对代码安排、模块加载、库办理这些问题,不同言语会有不同的解决方案。