前言
工欲善其事必先利其器,编程语言就是程序员手中的“器”,用来实现软件编程的工具。学习和掌握编程语言的能力是基本功,也是技术进阶的先决条件。
计算机现代编程语言基本从上世纪50年代就开始成型,起初的目的就是为了代替汇编,方便编写和移植软件程序,发展至今,已经相当成熟,
C、C++、Java、C#、Python、JavaScript、PHP等语言常年霸占各类语言排行榜和职位招聘要求。即使这样,随着云计算、移动互联网的兴起,新的编程语言
同样层出不穷,go、swift、kotlin等更是越来越流行。
因此语言是发展的,一是新的需求产生新的语言;二是传统的语言不断更新,增加新的特性。快速学习和掌握编程语言的能力是至关重要的。
学习方法
学习和掌握一门新的编程语言,基本有以下的步骤:
1.了解这门编程语言的简介,至少了解它是什么样的语言,到底是干什么,例如是编译型语言还是解释性脚本、是服务器端编程还是Web前端编程;
2.确定自己的学习的目的,是纯粹的兴趣了解,还是现在工作项目急需用;
3.寻找资料,建立学习内容框架和计划,资料肯定已官方网站的文档为主,另外可以看看一些写的好博客,这样更快的了解和入门。一门语言,
有众多的知识点,必须分清主次,有计划的学习,因此确定学习框架很重要。
4.实践编程,通过编写一些小程序和例程,实现常用功能,这样才能真正掌握该门编程语言。
5.优秀的编程语言一定会不断发展,请关注该语言相关的社区、论坛和博客等资源,不断巩固和更新自己的知识。
以Go语言学习为例
Go语言是什么
Go语言是谷歌出品的一门崭新的编译型、支持并发的偏服务器端的编程语言。Go语言目前在容器领域应用广泛,基本容器领域的顶级项目都是它
编写的,例如Docker、K8s等,另外它是一门性能突出的编译型后台语言,适合微服务架构的编程。
以上就是一些简单的了解,学习它应该知道它是什么,当然如果想了解的更多,可以去看看百科的介绍。基本上就完成了这一步学习。
当然介绍中会出现很多语言的特性,例如并发、编译等,这些特性先了解,之后具体的学习中一一验证。
自己学习的目的
例如我,现在很简单,工作上会使用,而且十分看好,因为容器云平台的发展,必然需要容器云开发工程师,而Go是容器领域的原生语言,支持
是最好的,此外容器技术很多源码是Go编写的,如果不学习,底层问题看源码时,将无从下手。
当然你也可以有其他的学习目的,也许你只是想尝一下新鲜感,但是这也没关系,凡有所学,必有所用。
资料、学习框架和计划
这一步是有技术含量的了,我主要参照官方主页的文档和自己自身学习C语言、Java语言的经验制定,其实大家也可以根据自己的技术栈,制定
自己的学习框架和计划,这样学习的效率会更高。因为学习中,可以和自己的已有的知识比较学习,提炼共性的东西和不同的地方。
我认为,Go语言作为编程语言,其实基本语法方面很多还是和C语言类似的,建立如下框架,当然框架可以在学习的过程不断完整和修改。
1.Hello World
Hello World是程序员入门新技术的第一个程序示例,这是很好的学习方法,因为第一次对该技术有了一个直观的认识,用该技术实现从0到1的完整的编程。
当然,学习Hello World绝不是仅仅看到Hello world的输出结果,就算结束了,应该掌握以下知识点:
- go语言编程环境的安装方法、常用IDE工具的安装
- 编译工具的命令使用,使用Go语言工具完成代码的编译、调试和执行
- Go语言源代码文件的基本结构组成,例如Main函数写法、包引入写法等
2.基本语法
Go语言的基本语法主要包括以下:
- 代码本身的语法规定:注释写法、标识符写法、关键字、运算符和标点符号、字面量写法(整数、浮点数、虚数、Unicode字符、字符串)
- 常量、变量语法
- 基本数据类型:布尔、整数、浮点数、虚数、Unicode字符、字符串
- 组合数据类型:数组,结构,指针,函数,接口,切片,映射,通道
- 代码块{},变量声明与范围
- 表达式、语句
3.语言特性
- 内置函数:go语言内置的函数语法
- 代码包的组织:多个代码包和库如何组织和使用
- 初始化和运行:变量默认初始化、包的初始化、Main函数
- 错误处理、运行时错误
- 并发
4.常用库学习
- net:网络编程功能,包括TCP/IP,UDP,HTTP等;
- io:提供重要的程序I/O功能和函数;
- database: 提供关系型数据程序接口和访问驱动;
- encoding:提供json、xml等常用格式的编解码处理;
- fmt:提供标准的格式化输入输出功能;
- hash:提供hash函数计算功能,支持多种算法;
- sort:提供集合和分片的排序功能;
- math:提供数据计算函数;
- strconv:提供字符串与基本数据类型的转换;
- strings:提供UTF-8编码字符串的处理;
- text:提供UTF-8文本处理;
- sync:提供并发编程的同步原语操作;
- time:时间功能函数
…
5.实验示例
- 实现一个简单的TCP通信的简单程序,熟悉网络编程
- 实现一个简单Web服务器,提供简单的静态html展示
…<可以结合工作实际,想一些简单的例子,进行学习编程)
总结分享和继续学习
学习不是一蹴而就的,应该循序渐进,通过记录笔记和学习过程的问题,进行总结和分享,同时继续关注该语言领域的应用发展,这样才能真正掌握
一门编程语言。
以上转自公众号:码农指南,探索、分享和交流技术路线及人生经验,编程之技,唯熟练尔,唯勤学尔。如有侵权,请联系删除。