Skip to content

实践篇

放在开头

本文属于实践篇的序言部分,内容关于编程语言开发领域的选择。

什么是编程?

进入到动手的环节,先探个底。我们平时说编程编程,到底啥是编程?

从目的上讲,编程就是对计算机下命令。让计算机完成人的工作(在它能力范围内)

先说下命令。经典计算机的世界是二进制,数字01构成了计算机的语言--机器码的全部内容。计算机只看得懂 01,而开发者是人,人的语言更为复杂。计算机不懂人的语言,所以,要向对计算机下命令,必须找到一种办法,使得计算机听得懂人话

如何让计算机听懂人话?在人类世界中,如果要使两个母语不同的人进行正常交流,必须要有翻译的介入。那么,计算机与开发者也一样,我们确实是通过翻译使得人的语言被计算机识别的。早期计算机科学家完成了这项翻译工作,具体做法这里不展开,在原理篇我们会进行讨论。

通过这第一层翻译的帮助。我们得到了可以命令计算机的基础语言。这层基础命令语言通常被称为低级编程语言低级语言翻译成机器码

在早期,低级编程语言确实能满足计算机的使用需求,但随着应用的日益复杂化,低级语言已经满足不了人的需求了。 拿人和狗狗🐕比喻人和计算机这一演变:

在实现了低级编程语言之后,人和狗建立了以下命令约定:

命令狗会做
乖巧地坐在地上
屈膝然后轻轻蹦起
双脚直立,高举前脚,挪动脚掌来旋转一周
停止任何进行中的动作并保持静止

时代变了大人,现在的🐕要求要会舞蹈。那么,由于当前只能用低级语言去命令狗狗跳舞,基本要输入一连串的命令序列,如转 -> 坐 -> 跳 -> 转 -> 定。然而这也不过舞蹈的动作之一,舞蹈动作越复杂,命令就越显得不足。

于是,在更复杂的命令需求下,人们基于低级语言进行了新一层的组织。比如,用dance1来取代上述的转 -> 坐 -> 跳 -> 转 -> 定。这就是第二层翻译,像dance1这样的语言被称为高级语言

低级语言抽象为高级语言

目前,编程开发中的语言主要为高级语言(C、C++、C#、Rust、Java、JavaScript、python...)等。

编程语言流行榜TIOBE

TIOBE榜

选择什么样的入门语言?

开门见山,本指南的推荐入门语言是JavaScript,以下简称Js

为什么是JavaScript

本站主旨是编程的极简入门。选择JavaScript的原因自然跟极简绑定。

极简要求简单,入门要求必须掌握将计算机作为生产力的能力。编程入门,不是学会一门语言的使用,而是学会编程能力。
我并不知道掌握编程能力的标准答案,但笔者自学编程,以软件开发中的web开发入门,经过一年多的学习已经掌握了多方面的知识。

JavaScript的优点

我认为,我的路线是可行的。对于入门来说,Js有以下优点:

  • 编译简单

    我们上面讲了二进制/机器码 -> 低级语言 -> 高级语言的迭代史。那么,现在我们想象,每一门高级语言从编写完成到被计算机运行需要经过几个步骤? 很简单。主要是两个:

    1. 从高级语言翻译为低级语言
    2. 从低级语言翻译为机器码

    每一门高级语言都是如此。但是也有区别,有些是需要你手动进行翻译的,有些不用。手动翻译的情况下,会要求你具备一定的知识铺垫,这好吗,这不好。 js是不需要你手动编译的,有浏览器或者node之类的执行环境就行

  • 学习简单

    学到运用的水平,时间成本很低。

  • 自带错题本

    js的发明十分草率。这使得它生来就有缺陷,然塞翁失马焉知非福,一旦吃过js的苦,你就会知道其它语言的香,这对于你学习其它语言是有帮助的

    而实际上,大部分js开发者就喜欢js的这种缺陷。当然,最好的语言永远是人的思维,无论是js还是别的语言,都不是我们停留的地点。将js自带错误的特点,当做我们学习其它语言的最佳跳板, 这是我们的目的

  • 开发便捷

    打开浏览器你就可以编写js。js是互联网开发的真神,几乎所有的互联网软件,最终都会被js介入。因为html是万维网的亲儿子,而js是html的指定合作伙伴。

  • 知识面全

    流行的js开发知识涉及到前后端,数据库,计算机网络等知识。
    能做到这点的当然不只js,但js无疑是对入门者最友好的。

  • 方便教学

    js专门用以用户界面图形展示。图形界面意味着可视化(所想即所得),这很适合教学

选择什么样的开发领域

答案是 -- Web开发

这是因为我们上面选择了JavaScript, 而Js的主战场就在Web开发前端部分。

入门以外

语言决定领域完全是因为当前是入门阶段。入门之后,也代表着你具有一定的编程思维了,这个时候,就是你的兴趣领域决定你的开发语言了。

Released under the MIT License.