跳到主要内容位置

如何学会任意一门编程语言

张旭乾

市面上的编程语言越来越多,如果你考虑到后续的工作中有可能需要用到新的编程语言,或者你想转型成新的、热门的编程语言开发,那么就可能会有这样的顾虑:到底需不需要学习新的编程语言?如果要学的话,该怎么快速的学会?这篇文章我们就来看看,为何要学习多门编程语言,以及如何学会任何一门编程语言。

学习多门编程语言有什么好处?

对于软件工程师来说,我们可以把编程语言当做一个工具,当你有不同的需求的时候,可以选择最合适的工具来实现它。不同的编程语言有不同的优势,比如说 Node.js 是单线程的,它对于处理高并发的应用会很有帮助,而 Java 是完全面向对象的编程语言,类型系统丰富并且完善,编写起来非常整洁,简单易用,那对于大型的项目开发和团队开发来说,选择 Java 是最合适的。

学习多种编程语言也能够让你发现当前使用的编程语言有什么缺陷,进而拓宽你的知识水平和眼界。当你知道一个问题可以用其他语言能够更好、更快速的解决,你也可以尝试把其他编程语言的特性拿到你当前使用的编程语言上来,看看能不能用类似的技巧实现功能需求,来提高你的开发效率。

如果你想转型为其他编程语言的开发, 或者公司内部转岗需要你学会新的编程语言,而你正好学过这门编程语言,你就能够更快的进入状态。

这样看来,学习多个编程语言是很有必要的。

为什么编程语言越来越多

从接触编程开始就发现,似乎每隔一段时间就有新的编程语言出现,有的会有全新的语法结构和特性,有的就和市面上现有的差不多,那么它们产生的原因和目的是什么?原因可能有下面几点:

  1. 新的编程语言大部分会解决当前市场现有的编程语言的一些缺点,比如说 Rust 的 出现就解决了 C 和 C++ 语言指针管理以及内存泄露的问题。
  2. 有的编程语言它只适用于特定的编程领域,例如说 HTML 和 CSS,这里暂时把它们归类为编程语言,它们只适合在浏览器里面编写。还有 SQL ,它是关系型数据库里所用到的语言。特定编程领域的语言基本上针对的是某个/些具体的产品,每当有新的产品出来时,它可能会附带一种专门的编程语言来操作它,这样就会产生新的编程语言。
  3. 公司之间的竞争。例如微软出的 C# 语言,借鉴了大部分 Java 语言的特性,所以写起来非常类似,目的就是想更好的推广 C#。不过后来随着 C# 语言的发展,它跟 Java 的差别已经越来越大了。

基于这些原因,我们有时候可能不得不学习新的编程语言,例如操作数据库,编写前端页面等。不过,无论你为什么要学习新的编程语言,这里有一套高效的方法来掌握它们,我们一起来看一下。

学习编程语言基础结构

要想快速的学会一门编程语言,我们要先知道,市面上虽然有太多的编程语言,但是大部分同类型的编程语言,例如通用目的编程语言(Java、Python、PHP、JavaScript 等)它们的语法结构基本上都是一样的,比如说都会有变量、函数、类或结构、数组这样的基础语法。

  1. 你要做的第一步就是在了解这个编程语言的用途之后,先快速的掌握这些基本的语法单元。
  2. 掌握其他基础的结构还有语句,包括 if/else 分支和循环等。
  3. 之后,就可以写一些练习的小项目了,具体怎么写后面的小节我们再看。
  4. 对基础语法掌握熟练之后,就是学习你选择的编程语言特定的语法了,比如说 JS 里边的 promise、async/await, Java 里边的 Interface 接口、泛型,或者 Go 里边的 Goroutines ,等这样的特性。

这些高级的特性可能比较难学,需要的时间会比较久,这是学习每个编程语言都要经历的过程,但是你不必一开始就全部都了解它们,可以在后边实际的工作和开发中,再慢慢的加深印象,前期你先知道有这么个东西就可以了。

针对特定语法点进行练习

在学习基本语法结构的时候,需要编写一些示例,来针对特定的语法点进行练习。比如说我们上学的时候,可能学过使用 for 循环来打印一堆 * 号,虽然没有什么特别实际的意义,但是能够确实让你快速的掌握 for 循环的用法。

像对于异步这样的特性,可以试试编写发送和接收网络请求的示例,看看怎么处理,毕竟这个是在日常项目开发中用到的最多的场景。

还有多线程,这个比较难理解,你也可以多编写简单的练习来对它进行掌握和巩固。例如使用多个线程来修改同一个指示变量 counter,看看是什么效果。

对于具体的语法点练习,可以上网搜索,有不少网站都提供了练习题目。

写练习项目

当你练习完这些基本的语法结构之后,就可以上手来做项目了。可以看一下市场上现有的网站、软件,或者是手机上的 APP,对它们进行模仿。找一个比较简单的,并且感兴趣的,把它从头到尾包括 UI 到功能逻辑全部都实现。

对于后台应用,需要你自己去决定它们的数据是怎么产生的,逻辑交互是怎么实现的,因为公司产品的代码一般是闭源的,你不知道它们产品的代码是怎么写的。不过,这样的练习才能极大的锻炼编程和需求分析能力,而且在写的过程中一定会遇到问题,遇到问题自己去搜索解决,这样也提升了你解决问题的能力。

还有一种练习方式是自己实现一遍开源的项目。找一个比较火的开源项目,写一个自己的版本出来。这样的好处是你可以看到项目的源代码,在你遇到不会实现的功能模块的时候,有个参考,这样学习起来可能会让你比较有安全感。不过不要一味的抄袭人家的代码,一定要理解人家为什么要这么写,这个语法为什么要这么用,理解之后才能变成你自己的知识。

学习资料的获取途径

好,这些只是一些大体的学习方法,对于学习资料的寻找,我这里整理了一些途径:

  1. 去哔哩哔哩看编程相关的视频,B 站上有好多优质的编程视频 UP 主,你基本上可以搜到所有你想看的技术内容。看视频一般会比单纯的看文字更容易理解,毕竟会有 UP 主亲自带着你操作。如果你学前端,可以看我的哔哩哔哩,其他的你可以搜寻对应的 up 主。
  2. 看视频课程。哔哩哔哩上的视频并不是特别系统,只是针对某个知识点发布一个特定的视频,视频之间没有太大的连续性。如果你想系统的学会一门编程语言,可以去看一些视频课程。不过要注意,需要鉴别一下视频课程是不是真的能学到东西,还是说这个视频课程只是单纯的引流。如果你要想学 Vue 3 的话,可以看我在网易云课堂上发布的《Vue 3.x 全家桶完全指南与实战》课程,在学完之后,你就可以胜任 Vue 3 的开发工作了。
  3. 这个比较重要,就是编程语言的官方文档。官方文档提供的教程是最全面最详细的,基本上没有你找不到的内容。一般在编程过程中遇到问题,原因是理解的不透彻,这个时候就去阅读官方文档。不过,官方文档基本上都是英文的,你需要翻译工具或者去提升一下英语能力(一劳永逸)。不过如果实在没时间学英语的话,现在的翻译工具也都比较智能,基本上能翻译个八九不离十,不影响阅读。这个官方文档是必须要看的。
  4. 看博客,不过它们跟视频类似,知识点比较离散,既不统一也不连续。但是对于解决某一个特定的问题,还是阅读博客会更节省时间,因为可以直接找到你想看的关键代码。我的这个博客上有前端相关的教程,可以按需自取。
  5. 看书,书也可以用来系统的学习,跟视频课程类似,只不过没有那么生动。但是书上的理论会比较深入,能够掌握的更透彻,不过学习周期也会拉长。在看书的时候,因为没有老师带着你操作,自己一定要去写代码练习,争取把书上的内容都变成你自己的。如果你想学 JavaScript,可以阅读我出版的《JavaScript 基础语法详解》一书,里面把 JavaScript 的语法全面的介绍了一遍,并且针对常见的问题和容易出错的地方以及新特性都做了总结。如果有兴趣的话可以购买一本看一下。

小结

好了,这些就是如何掌握任意一门编程语言的方法,主要就是先了解编程语言的基本结构,再去深入特定的语法,编写针对语法点的练习和实际的项目,后面在实际工作和开发中要继续慢慢深入研究。你可以通过视频、视频课程、官方文档、书籍或者是博客等形式来学习和巩固,并找到问题的解决方法,通过这些步骤你一定能够学会这个编程语言。

提示

《Vue 3.x 全家桶完全指南与实战》课程已上线,包括 Vue 3.x、TypeScript、Vue Router 4.x、Vuex 4.x 所有初级到高级的语法特性详解,让你完全胜任 Vue 前端开发的工作。点击查看详情。

《React即时通信UI实战》课程,利用 Storybook、Styled-components、React-Spring 打造属于自己的组件库。

新书《JavaScript 基础语法详解》已上架,可在京东、当当、淘宝等各大电商购买