学习编程语言的步骤
浮道.h 2022-01-06

如何学编程语言?
很多人喜欢争论什么什么编程语言好,我认为这个话题如果不限定应用范围,就毫无意义。


每种编程语言必然有其优点和缺点,这也决定了它有适合的应用场景和不适合的应用场景。


现代软件行业,想一门编程语言包打天下是不现实的。


这中现状也造成了一种现象,一个程序员往往要掌握多种编程语言。

学习任何一门编程语言,都会面临的第一个问题都是:如何学习 XX 语言?


我不想说什么多看、多学、多写、多练之类的废话。


世上事有难易乎?


无他,唯手熟尔。


谁不知道熟能生巧的道理?


我觉得有必要谈谈的是:如何由浅入深的学习一门编程语言?学习所有编程语言有没有一个相对统一的学习方法?
  
曾几何时,当我还是一名小菜鸟时,总是叹服那些大神掌握多门编程语言。


后来,在多年编程工作和学习中,我陆陆续续也接触过不少编程语言:C、C++、Java、C#、Javascript、shell 等等。


每次学习一门新的编程语言,掌握程度或深或浅,但是学习的曲线却大抵相似。
  
学习编程语言的步骤
1:基本语法
首先当然是了解语言的最基本语法。控制台输出,如 C 的 printf,Java 的 System.out.println 等。


普通程序员的第一行代码一般都是输出 “Hello World” 吧。 


• 基本数据类型
不同编程语言的基本数据类型不同。基本数据类型是的申请内存空间变得方便、规范化。 

• 变量
不同编程语言的声明变量方式有很大不同。


有的如 Java 、C++ 需要明确指定变量数据类型,这种叫强类型定义语言。


有的语言(主要是脚本语言),如 Javascript、Shell 等,不需要明确指定数据类型,这种叫若类型定义语言。
  
还需要注意的一点是变量的作用域范围和生命周期。


不同语言变量的作用域范围和生命周期不一定一样,这个需要在代码中细细体会,有时会为此埋雷。
  
• 逻辑控制语句
编程语言都会有逻辑控制语句,哪怕是汇编语言。


掌握条件语句、循环语句、中断循环语句(break、conTInue)、选择语句。


一般区别仅仅在于关键字、语法格式略有不同。
  
• 逻辑控制语句
掌握基本运算符,如算术运算符、关系运算符、逻辑运算符、赋值运算符等。


有些语言还提供位运算符、特殊运算符,视情节掌握。
  
• 注释
没啥好说的
  
• 函数
编程语言基本都有函数。


注意语法格式:是否支持出参;支持哪些数据作为入参,有些语言允许将函数作为参数传入另一个参数(即回调);返回值;如何退出函数。


2:数组、枚举、集合
枚举只有部分编程语言有,如 Java、C++、C#。


但是数组和集合(有些语言叫容器)一般编程语言都有,只是有的编程语言提供的集合比较丰富。使用方法基本类似。

3:常用类
比较常用的类(当然有些语言中不叫类,叫对象或者其他什么,这个不重要,领会精神)请了解其 API 用法,如:字符串、日期、数学计算等等。
  
4:语言特性
语言特性这个特字反映的就是各个编程语言自身的"独特个性",这涉及的点比较多,简单列举一些。

  
• 编程模式
比较流行的编程模式大概有:面向对象编程,主要是封装、继承、多态;


函数式编程,主要是应用 Lambda;过程式编程,可以理解为实现需求功能的特定步骤。
  
每种编程模式都有一定的道理,我从不认为只有面向对象编程才是王道。


Java 是面向对象语言,从 Java8 开始也支持函数编程(引入 Lambda 表达式);


C++ 可以算是半面向对象,半面向过程式语言。
  
•  语言自身特性
每个语言自身都有一些重要特性需要了解。


例如,学习 C、C++,你必须了解内存的申请和释放,了解指针、引用。


而学习 Java,你需要了解 JVM,垃圾回收机制。


学习 Javascript,你需要了解 DOM 操作等。
  
5:代码组织、模块加载、库管理
一个程序一般都有很多个源代码文件。


这就会引入这些问题:如何将代码文件组织起来?


如何根据业务需要,选择将部分模块启动时进行加载,部分模块使用懒加载(或者热加载)?
  
最基本的引用文件就不提了,如C、C++的#include,Java 的 import 等。
  
针对代码组织、模块加载、库管理这些问题,不同语言会有不同的解决方案。


声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
热门推荐
  • 相关技术文库
  • C语言
  • 编程
  • 软件开发
  • 程序
  • 你所写的程序有多大?该怎么看?

    程序写好并编译后生成hex文件,这个hex文件就是要下载到单片机里的文件,这个文件的大小不能超过单片机的FLASH大小,否则就要优化程序或者选用更大FLASH的

    前天
  • 浮点数与IEEE格式转换

    1. 问题的提出笔者在系统开发中采用RS485实现单片机与外围设备的通信,通信采用通用串行接口协议(USS),按照串行总线的主从通讯原理来确定访问的方法。USS

    01-19
  • SYS/BIOS的一种实时软件组件技术

    XDCtools 是SYS/BIOS引用的一种实时的软件组件技术(RTSC),它包括一些有用的工具,标准的API函数,静态配置文件和打包(packaging)操

    01-19
  • C常用的循环语句

    [导读]单片机延时程序分析应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单

    01-18
  • C51中延时子程序设计时要注意的问题

    [导读]标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。在keil C5

    01-18
  • Linux lseek函数详解

    Linux应用编程之lseek详解1、lseek函数介绍(1)、文件指针:当我们要对一个文件进行读写时,一定要先打开这个文件,所以我们读写的所有文件都是动态文件

    01-17
  • C51怎样实现混合编程?

    [导读]在C51中,怎样嵌入汇编语言程序?怎样进行处理实现混合编程?答:其方法是用编译控制指令“#pragma src”、“#pragma asm”和“#pra

    01-17
  • 汇编语言文件中对于函数的调用方法

    [导读]如何在C51文件和汇编语言文件中相互调用对方文件中的函数?答:汇编语言文件中对于函数的调用方法,与调用汇编语言中的函数一样,如:LCALL DISPLA

    01-17
  • C51函数代码编写两条

    [导读]1.编写一C51函数,把从键盘输入的5位十进制数数转换成一个无符号整型数(假设未超出整型数范围)。设从键盘输入的数存放在一无符号数组中,低位数为低下标元

    01-17
  • 入门基础之单片机C代码

    [导读]1.某单片机系统的P2口接一数模转换器DAC0832输出模拟量,现在要求从DAC0832输出连续的三角波,实现的方法是从P2口连续输出按照三角波变化的数

    01-17
  • 17条嵌入式C语言的小技巧

    1.流水线被指令填满时才能发挥最大效能,即每时钟周期完成一条指令的执行(仅指单周期指令)。 如果程序发生跳转,流水线会被清空,这将需要几个时钟才能使流水线再次填满。 因此,尽量少的使用跳转指令可以提高程序执行效率,解决发案就是尽量使用指令的“条件

    01-06
  • 12条C51编程经验

    1、头文件:#include  2、预定义:sbit LED = P1^0 // 定义 P1 口的 0 位为 LED    注1:“P1^0”这个写法,与 A51 不同(A51 是 P1.0),P1 是一组端口,端口号范围 0~7。 注2:sbit 用于定义 SFR(特殊功能寄存器)的位变量,上例中 LED 作为“全局变量”进行

    01-06
下载排行榜
更多
广告
X
广告