实践篇
放在开头
本文属于实践篇的序言部分,内容关于编程语言
和开发领域
的选择。
什么是编程?
进入到动手的环节,先探个底。我们平时说编程编程,到底啥是编程?
从目的上讲,编程就是
对计算机下命令。让计算机完成人的工作(在它能力范围内)
。
先说下命令。经典计算机的世界是二进制,数字0
和1
构成了计算机的语言--机器码
的全部内容。计算机只看得懂 0
和1
,而开发者是人,人的语言更为复杂。计算机不懂人的语言,所以,要向对计算机下命令,必须找到一种办法,使得计算机听得懂人话。
如何让计算机听懂人话?在人类世界中,如果要使两个母语不同的人进行正常交流,必须要有翻译
的介入。那么,计算机与开发者也一样,我们确实是通过翻译使得人的语言被计算机识别的
。早期计算机科学家完成了这项翻译工作,具体做法这里不展开,在原理篇我们会进行讨论。
通过这第一层翻译的帮助。我们得到了可以命令计算机的基础语言。这层基础命令语言通常被称为低级编程语言
。
在早期,低级编程语言
确实能满足计算机的使用需求,但随着应用的日益复杂化,低级语言
已经满足不了人的需求了。 拿人和狗狗🐕比喻人和计算机这一演变:
在实现了低级编程语言之后,人和狗建立了以下命令约定:
命令 | 狗会做 |
---|---|
坐 | 乖巧地坐在地上 |
跳 | 屈膝然后轻轻蹦起 |
转 | 双脚直立,高举前脚,挪动脚掌来旋转一周 |
定 | 停止任何进行中的动作并保持静止 |
时代变了大人,现在的🐕要求要会舞蹈。那么,由于当前只能用低级语言去命令狗狗跳舞,基本要输入一连串的命令序列,如
转 -> 坐 -> 跳 -> 转 -> 定
。然而这也不过舞蹈的动作之一,舞蹈动作越复杂,命令就越显得不足。
于是,在更复杂的命令需求下,人们基于低级语言
进行了新一层的组织。比如,用dance1
来取代上述的转 -> 坐 -> 跳 -> 转 -> 定
。这就是第二层翻译,像dance1
这样的语言被称为高级语言
。
目前,编程开发中的语言主要为高级语言
(C、C++、C#、Rust、Java、JavaScript、python...)等。
编程语言流行榜TIOBE
见TIOBE榜。
选择什么样的入门语言?
开门见山,本指南的推荐入门语言是
JavaScript
,以下简称Js
。
为什么是JavaScript
?
本站主旨是编程的极简入门。选择
JavaScript
的原因自然跟极简绑定。
极简要求简单,入门要求必须掌握将计算机作为生产力的能力。编程入门,不是学会一门语言的使用,而是学会编程能力。
我并不知道掌握编程能力的标准答案,但笔者自学编程,以软件开发中的web开发
入门,经过一年多的学习已经掌握了多方面的知识。
JavaScript的优点
我认为,我的路线是可行的。对于入门来说,Js
有以下优点:
编译简单
我们上面讲了
二进制/机器码 -> 低级语言 -> 高级语言
的迭代史。那么,现在我们想象,每一门高级语言从编写完成到被计算机运行需要经过几个步骤? 很简单。主要是两个:从高级语言翻译为低级语言
从低级语言翻译为机器码
每一门高级语言都是如此。但是也有区别,有些是需要你手动进行翻译的,有些不用。手动翻译的情况下,会要求你具备一定的知识铺垫,这好吗,这不好。
js是不需要你手动编译的,有浏览器或者node之类的执行环境就行
。学习简单
学到运用的水平,时间成本很低。
自带错题本
js的发明十分草率。这使得它生来就有
缺陷
,然塞翁失马焉知非福,一旦吃过js的苦,你就会知道其它语言的香,这对于你学习其它语言是有帮助的
。而实际上,大部分js开发者就喜欢js的这种
缺陷
。当然,最好的语言永远是人的思维,无论是js还是别的语言,都不是我们停留的地点。将js自带错误的特点,当做我们学习其它语言的最佳跳板, 这是我们的目的
。开发便捷
打开浏览器你就可以编写js
。js是互联网开发的真神,几乎所有的互联网软件,最终都会被js
介入。因为html是万维网的亲儿子,而js是html的指定合作伙伴。知识面全
流行的js开发知识涉及到
前后端,数据库,计算机网络等
知识。
能做到这点的当然不只js,但js无疑是对入门者最友好的。方便教学
js专门用以用户界面图形展示
。图形界面意味着可视化(所想即所得),这很适合教学
选择什么样的开发领域
答案是 -- Web开发
。
这是因为我们上面选择了JavaScript
, 而Js
的主战场就在Web开发
的前端
部分。
入门以外
语言决定领域完全是因为当前是入门阶段。入门之后,也代表着你具有一定的编程思维了,这个时候,就是你的兴趣领域决定你的开发语言了。