编程语言的学习

正午 2021-02-18 AM 329℃ 0条

最近花了些时间学 Rust。读了 Rust book 和官方的一些文档,写了些简单的代码,很久也还是感觉自己没有怎么掌握。总这么学下去感觉效率很低。平时也常常听到有人计划要用很久的时间学习 Python 最终也没怎么入门。那学编程语言的时候到底是在学什么,简单写写我的想法。

学习编程的目的是什么?
这里的目的最好是具体可操作的,而不是“成为编程高手” 这种缥缈的答案,也不是为了缓解焦虑为了学而学。可以是这样的 "用 Python 读 excel 的数据完成一些计算" 或者“想用 Rust 实现某功能”,甚至是在工作中使用新的语言。

掌握一种编程语言是什么意思?
这个问题可以先从学习编程语言的时候要学哪些东西,不考虑那些计算机基础,比如操作系统之类,我觉得大概下面三个方面

  1. 基础语法
  2. 标准库
  3. 语言生态,比如科学计算 Python 有 numpy 之类

对程序员而言编程语言很多是相似的理解起来可能会比较容易,但也可能比较难,总会看到写 Java 的同学写的 Python 神似 Java.
掌握了基础语法应该可以写出简单的东西,比如完成一些数字计算之类。
要写各种复杂的程序就需要用到标准库和第三方库,是否能熟练使用这些东西会完全决定你写代码的体验。如果没一次使用 HashMap 的时候都要去查下怎么操作里面的元素开发效率会很低,就像是读英文小说还要一边查字典一样痛苦。
再往下各个领域会不太一样,比如 Web 编程和学习机器学习编程要学不一样的东西。

怎么学才能比较高效?
基础语法的东西我就建议直接记下来,对我而言可能最好的方式是和已经学会的语言做对比,各自的异同是什么,为什么是这样的。
标准库的学习我也不太懂什么方式最好,我记得在学 Python 的时候读完了 Python 的标准库文档,有人说这种文档是用来查的不是用来读的。但是对新手来说都不知道查什么的时候我觉得通读标准库文档甚至是读些标准库代码都是很好的,因为标准库通常是语言的开发者们写的,对语言的使用也是最地道的。
最后可能要去学一些领域相关的知识,直接拿轮子来用完成自己的任务。或者动手造造轮子,这个过程应该会不怎么容易。

有时候遇到的困难会是比较具体的,如学 c/c++ 的时候还会遇到构建工具之类的麻烦,甚至是要用什么编辑器这种问题,网上搜一圈有建议用 vim 的,有建议用 emacs 的有建议..... 各种答案然后就不知所措了。不要太纠结这些,先实现些能跑的代码才算是关键的。

写的都是写粗浅的东西,也就入门而已,能学到什么程度还会受到其他方面知识的限制,编程语言并不是孤立存在的,比如操作系统,并发编程,计算机网络等等

标签: none

非特殊说明,本博所有文章均为博主原创。

评论