编程语言零基础,该如何入手
很多人喜欢争论什么什么编程语言好,我认为这个话题如果不限定应用范围,就毫无意义。
每种编程语言必然有其优点和缺点,这也决定了它有适合的应用场景和不适合的应用场景。现代软件行业,想一门编程语言包打天下是不现实的。这中现状也造成了一种现象,一个程序员往往要掌握多种编程语言。
学习任何一门编程语言,都会面临的第一个问题都是:如何学习这门语言?
今天我们不聊什么多看、多学、多写、多练之类的。世上事有难易乎?无他,唯手熟尔。
有必要谈谈的是:
如何由浅入深的学习一门编程语言?
学习所有编程语言有没有一个相对统一的学习方法?
曾几何时,当我还是一名小菜鸟时,总是叹服那些大神掌握多门编程语言。后来,在多年编程工作和学习中,我陆陆续续也接触过不少编程语言: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 等。
针对代码组织、模块加载、库管理这些问题,不同语言会有不同的解决方案。
如 Java 可以用 maven、gradle 管理项目依赖、组织代码结构;Javascript (包括 Nodejs、jquery、react 等等库)可以用 npm、yarn 管理依赖,用 webpack 等工具管理模块加载。
大连男科医院哪家好 http://mobile.lnbohaink.com
大连男科医院哪家好 http://mobile.0411nk.cn
阅读更多- 论编程语言如何入手
- 论编程语言如何入手
- 有一定基础,如何快速学习编程语言
- 如何用各种编程语言杀死一条龙
- 如何用各种编程语言杀死一条龙
- 【web基础1】你是如何打开百度的?
- 【编程语言】java--IO类基础知识
- 如何在STM32F10x_StdPeriph_Template基础上建立自己的MDK工程
- [C++基础]031_如何正确获取用户的输入
- 如何查看知道某一个网站是由哪种编程语言写的?绝对准确全面!(精)
- python 9-1 如何使用函数装饰器,定义函数装饰器,用来生成一个原函数基础添加新功能的函数,替代原函数
- Java 会比 Go 长寿?编程语言的生命周期要如何判断
- OC基础学习——如何解析plist文件和数据的归档和解档与json数据的解析
- 零基础如何自学Python
- 《如何使用UML》培训 01.基础知识(1)UML语言构成
- 如何选择大数据的编程语言
- jquery傻瓜基础教程之教你如何制作jquery插架一
- 股票基础入门知识12:如何平衡股票投资组合
- Spring Boot基础知识(一)----如何构建spring boot的web项目
- 如何创建一个基础jQuery插件