几句话编程入门(已完结)

JS 篇已经完结了吗?

0008 多种语言

存在着许多种计算机语言,这就是我们要学习书写的代码。而这些东西之间本质上的区别并不是代码,因为前面我们已经知道了这些代码只不过是我们自己去书写的说明文档。更重要的是后面对这些说明文档的翻译和计算机对它的执行。

计算机表示在我这里都没啥区别,看着机器语言去干活,只此而已。

所以区别就产生在编译器这里,编译器就是负责进行翻译(编译)的工具。那么类比一下,就是这里有许多个翻译可供我们选择。那么每个翻译必然有他擅长的种类,比如某个翻译更精通工程类的专业,那么相关的文档交给他翻译效果会更好。你说用其他的翻译行不行,未必不可以,但是那些专业的名词你就不能直接使用,而需要详细的解释清楚,否则翻译自己都没明白,他怎么可能给机器讲明白呢。

然后前面我们说了,为了保证翻译的快速和准确,所以在书写的时候要按照特定的语法(套路)去进行书写。而每一个翻译(编译器)所对应的语法有一些差别,这就是不同的计算机语言。

好消息是这些差别总是大同小异的,所以学会其中一种语言之后,其他的语言看一看大概就能够上手。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

5 Likes

如果一个教程,我感受不到有人在跟着学习,那我就可能不再继续浪费精力在上面。所以我反复的在说,如果有在跟着学习,就一定要让我感受到你。

1 Like

0009 语句

人类语言组成的基本单位是一句话,一句话就是一个完整的意思,并不意味着包含多少内容,但它是完整的。

我们写代码的基本单位也是语句,一句一句的去表达我们想要表达的意思,它的重点也是表达完整的意思。

一般我们会用特定的标记来表示一个语句的完结,比如在有些语言里使用分号,也有的语言通过换行来表达语句的分割。

用特定符号的好处是,我们可以把两个语句写在一行里,而并不会混乱。

用换行,就需要注意理解到一个点:并不是所有语句都只占用一行,所以换行并全都意味着一个语句的完结。这句话不是很理解没有关系,你知道有这件事情,在实际使用中会非常容易理解的。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

4 Likes

0010 代码块

有些事情并不是用一个语句就可以完成的。或者说这是几个动作,然后这些动作连成一个完整的整体。就比如说我们要出门,这是一个事情,但它是由:换衣服、拿手机、拿钥匙、开门、出门、锁门这一系列动作组成的。

我们可能会把这样一系列的动作当做一个整体去看待。那么这样的几个语句就组成了一个代码块,或者叫代码段。在实际书写中可能用一些符号把它们标记起来,比如把他们放在一个大括号之内,表示这是一个整体。当然在不同的语言下会有不同的语法表现,不过理解这个基本的概念,对于理解后面一些稍微复杂一点的语法是非常有帮助的。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

5 Likes

0011 缩进

我们说代码,其实是指导计算机去工作的说明书,那么作为说明书一定要结构清晰明了,这时候格式就变得非常重要了。

我们想一下,如果列一个提纲应该如何书写呢:

  • 一级标题顶格写
  • 所有的二级标题前面空两个格(一层缩进)
  • 所有的三级标题前面空四个格(二层缩进)
  • ……

这样就可以变得非常清晰,易读。写代码也是这个样子,用不同的缩进长度来说明当前语句所属的层级。这个缩进用 Tab 按键来输入,它具体代表的长度可以在编辑器中进行设置。需要注意的是同一层级内代码的开头是对齐的。

这样就可以变得非常干净,好读。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

2 Likes

0012 代码的注释

通过简单的学习,大家会感受到代码其实写出来是给翻译们(编译器)去看的。虽然大家都知道现在代码基本上是用英文书写,而且前面也了解到它有固定的套路,所以并不复杂。

但终究它的目标不(完全)是适合于我们的阅读,所以我们可以看懂,但可能效率并不够高,或者有些深层的逻辑不能够很好的在代码中直接读出来。还有即便是有了缩进换行等格式的加持,但是整体结构仍然不够清晰。

所以为了便于我们的阅读和理解,会给代码加上一定的注释来说明这里是什么,我们怎么想的。

反正编译器翻译代码的时候,是会忽略掉这些注释的,所以我们可以在里面随便去写什么。当然为了其他人阅读的方便,注释也有一定的格式规范。不过规范这种东西并不是要求严格去遵守的,所以如果你觉得开心,完全可以按照自己的方式去进行。只是到了特定场景下,你会发现这些规范的设定都是有它存在的意义的,然后自然而然的你的习惯会向这些规范靠拢。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

3 Likes

0013 代码的压缩

如果去掉代码中所有可以去掉的空白,去掉所有的注释,这样并不影响代码的执行效果,但却可以有效的减少文件的体积。这就是代码的压缩。

显然那些需要编译之后生成可执行文件的代码并没有多少压缩的必要。因为反正最终成果是那个可执行文件,而上述那些多余的内容并不会影响到最终生成的可执行文件。

但如果是无需编译的脚本,我们传递给他人的就是这个脚本文件本身了,那么文件体积的大小可能就会产生明显的影响。比如像我这种注释写的比代码还多的家伙,如果不对代码进行压缩,那么文件体积至少要翻倍了。

当然压缩之后代码变得不适合阅读,所以压缩的代码是应用在生产环境中的脚本上的。生产环境就是指脚本实际运行工作的时候,而开发环境是说我们对这个代码进行编写和测试的时候。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

2 Likes

0014 十分简单

a = 1+2
b = 3
c = a+b

现在请问 c 是多少。我觉得无论你怎样认为自己的数学成绩差,这道题应该也都能够得出正确的答案。好的,有这样的知识储备就够用了。

我们常常要储存一些内容,或者说用符号去代表一些内容。这就像我们初中所学习的代数,也就很类似于上面题目中所用到的方法。用字母来代表数嘛。

当然只是一个字母,如果情况变得复杂一点,我们就很难快速的理解这个字母所代表的内容是什么,所以我们扩展一下,粗略的认为是用一个单词去代表一些内容。注意我说的是一些内容,并不单指数字。不过原理还是一样的。

然后如果它的值可以发生变化,它就是变量;值不能够发生变化,就是常量。这还是初中代数里的概念,我们就是复习一下。

放心,虽然我们聊到数学,但不会让你去做题。既然有电脑了,我们肯定不会自己去做计算的。毕竟一般来说你算的没他算的快。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

1 Like

补充说明一下:

缩进分为2种情况,1)编程语言强制要求的,即缩进是语法的一部分,不正确缩进就会导致运行错误的(例如python);2)语法未强制要求,但是为了方便阅读,建议良好的缩进(js)

关于缩进用Tab键,但这不是一定,用偶数个空格表示也是常见的(虽然不少代码编辑器都可以自动把输入的Tab键转换成指定的缩进格式)

3 Likes

补充的很正确。

我知道这些内容之中有许多的疏漏,而且放在不同语言下也会产生许多不同的情况。有一些问题是故意没有讲,有一些是确实忘记了。

不过回到这篇内容的定位,就是在学习编程之前串一下理论知识,避免小白在阅读编程教程时,初期遇到大量未知的概念导致懵逼。所以肯定要选择简洁快速的走主线,丢失细节的问题无法避免,毕竟如果真的写得很详尽,必然会导致大量的读者读不下去。

不过十分欢迎大家进行补充,共同完善,以供朋友们在阅读主线之余,根据自己的情况进行扩展。

2 Likes

0015 隐藏的问题

在小学我们学习书写计算式的格式是:1+2 = 3。前面是计算式,后面是结果。那么等号就表示对前面算式的计算。

到了初中学习代数的时候,我们书写的方式是:a = 1+2。这时候再按照上面的思维去理解,就解释不通了。这里的意思是把等号后面的内容进行计算,然后把结果放到 a 里面。

我们在程序中,使用的是后面的这种格式。那么等号(在不同语言中有可能是不同的符号表达,但道理一致)并不是我们传统意义上的等号。那么你先忘掉过去所学过的东西,然后记住现在这个符号叫做赋值符。赋值符的含义是把后面的计算结果(值)赋给前面的变量或者常量。

在我的印象中,初中对于这个赋值的概念并没有讲的特别明确。因为在当时的知识体系下,等号还用作了许多其他的用途。而在代码中我们对这些内容进行了更加细致和清晰的设定。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

5 Likes

0016 关于数字

有整数,也有小数,我们称小数为浮点数,就是它具有一个浮动的小数点嘛。

这就是两种数据类型,整型和浮点型。为什么它们的类型不同呢?因为它们在计算机中进行储存的方法不一样,虽然存储起来都是 0 和 1 的组合,但读取出来可能是不同的内容,这就是类型的区别。这里就不具体展开了。

对于一个数据,计算机会分配一个内存空间进行存储,那么分配多大的空间,这是一个问题。为了确保空间不被浪费,所以一般分配一个较小的空间。但某些情况下这个数据比较大,可能小的空间就不够用了,所以要分配一个较大的空间。于是就又有了一种数据类型,长整型。而浮点型所对应的就是更高的精度,你可以理解为更大的内存空间允许书写更多的小数位数。

以上就是一个大概的理解。现在流行的语言很多都不会刻意的去区分数据类型了。只是你了解这些概念,对理解代码的运行还是非常有帮助的。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

4 Likes

摘录来自我最近学习的、十分优秀的js教程中关于“小数的数值计算不精确”的解释,毕竟不少语言里都有这样的情况。
示例为0.1+0.2在程序计算后不等于0.3(这的确是完全与数学不符)

一个数字以其二进制的形式存储在内存中,一个 1 和 0 的序列。但是在十进制数字系统中看起来很简单的 0.10.2 这样的小数,实际上在二进制形式中是无限循环小数。

换句话说,什么是 0.10.1 就是 1 除以 101/10,即十分之一。在十进制数字系统中,这样的数字表示起来很容易。将其与三分之一进行比较:1/3。三分之一变成了无限循环小数 0.33333(3)

在十进制数字系统中,可以保证以 10 的整数次幂作为除数能够正常工作,但是以 3 作为除数则不能。也是同样的原因,在二进制数字系统中,可以保证以 2 的整数次幂作为除数时能够正常工作,但 1/10 就变成了一个无限循环的二进制小数。

使用二进制数字系统无法 精确 存储 0.10.2,就像没有办法将三分之一存储为十进制小数一样。
IEEE-754 数字格式通过将数字舍入到最接近的可能数字来解决此问题。这些舍入规则通常不允许我们看到“极小的精度损失”,但是它确实存在。

我们可以看到:

alert( 0.1.toFixed(20) ); // 将0.1舍入到小数点后20位,得到0.10000000000000000555

当我们对两个数字进行求和时,它们的“精度损失”会叠加起来。

这就是为什么 0.1 + 0.2 不等于 0.3
不仅仅是 JavaScript

许多其他编程语言也存在同样的问题。

PHP,Java,C,Perl,Ruby,Python 给出的也是完全相同的结果,因为它们基于的是相同的数字格式。

源地址 数字类型 (学js强烈推荐这个教程)

3 Likes

补充的十分赞!

如果希望获得精确的计算,可以引入一些相关的功能库,插件,组件什么的。各种语言都有这方面的增强,或者说补丁。我没探究过具体的原理,但猜测大概是用性能换精确度。

0017 字符串

变量或者常量(以后我可能只说变量,但是常量基本同理,只是一起称呼的话比较拗口)不止可以用来代表数字,也可以用来代表一串文字。那么这样一串文字就被称呼为字符串。

"这样就是一个字符串"
str = "也可以把这个字符串赋值给一个变量"

那么为了表明这是一串文字,它不是代码,也不是代码中的变量或者其他什么的,所以我们要使用引号对它进行一下标记。一般来说使用双引号是通用的方法,在有一些语言中也可以使用单引号,然后两种引号可以交替使用。

这里要指出两个特例:

如果这串字符里没有内容,可以吗?这是可以的,它仍然是一个字符串,只不过字符串里面没有任何内容,这被称作为空字符串。写出来当然就是一对引号(""),里面没有任何东西。

如果引号里面是数字呢("1234")?这仍然是字符型,而不是数字类型,因为我们标记了这是字符串,所以我们应该把它当做文字看待,而不能因为里面写的是 1234 就把它当做数字。

复杂吗?不复杂,只是对概念的咬文嚼字而已


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

2 Likes

0018 简单的计算

a = 1+2*3/4-5

就很直观的四则混合运算,只不过乘号和除号和我们在纸上书写的方法有点区别,毕竟键盘上没有直接的乘号和除号。

计算的话也会先算乘除法,再算加减法,上面的计算结果是 -2.5。这里引出了一个概念,就是运算符的优先级,不同的运算符有不同的优先级。先运算优先级高的,如果优先级相同,就从左往右计算。这都是小学的概念啦。

然后也可以加小括号,来提升这部分运算的优先级。也可以多层小括号嵌套,对,没有小学里面那种中括号和大括号的设定,全都是小括号,但你可以随意套多少层。

然后需要注意的是,这些符号必须在英文状态下输入,就是英文半角符号。要不然是会出错的。

其实对于代码基本上除了注释和字符串里面的内容都应该在英文状态下进行输入。(当然这件事情并不绝对,比如现在许多语言的变量名其实是可以使用中文的,但真的十分不建议,也不需要什么特别的理由,就反复切换输入法,已经很让人烦躁,而且这会导致我们不小心在错误的状态下输入符号,就更加容易犯错。)


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

3 Likes

感谢作者耐心写这么有趣的编程科普文章,我觉得很有价值,不过要看目标读者。刚才在一个技术群里分享,大家给了一些反馈建议,我贴在这里供参考哈:


pimgeek: 大家觉得这位网友写的编程入门怎么样?

pimgeek: 你给身边的人推荐编程书籍或教程时,会选择哪种教材?后来真正学会编程的人如何反馈的 [偷笑]

E: [耶] 看需求 要是想找工作的直接去培训机构 如果是自己研究学习的 可以去看看大学里面的公开课入门

E: 自学的基本都凉凉 培训机构的倒是有一部分出来工作了[旺柴]

pimgeek: 你说的这个情况和我了解的相反,很多学编程学的特别好的人都说他们主要靠自学,培训班上过都觉得不太值 :flushed:

E: [旺柴]那是因为他们都是培训班出来的

M: 因为学得好的不用去培训班[偷笑]

M: 去培训班的反之

E: 你说的不对, 培训班学不到东西的

Z: 为什么要学编程[抠鼻]

E:但是培训班会让你进入这种编程学习环境,还有提供入职的培训。

E: 学习编程是门槛最低的…

E: 而且不需要前期资本

M: 初期,理论占30% 练习占70%的教程,不要纯讲理论的教程。

pimgeek: 完全同意

我是纯自学的。不过前期有一些 C 语言的基础(计算机二级

我也教过许多人,见到了许多失败的案例,分析了许多原因。

初期学习理论确实很重要,但想要学会动手是非常非常必要的。所以我后来的课程干脆就改成全动手了,反正只要肯坚持动手,总会学会的;而不肯动手的,必然是学不会的。

目前这个教程是纯讲编程的基础理论,但并不与动手冲突(只是需要动手的时间点,不在此刻)。虽然是理论层面的东西,但更偏重于入门了解方向。目标是先对这些概念有一定的了解和认识,有一定的熟悉和印象。所以讲的很浅显很粗糙,并不需要刻意的去记忆,看一下,听懂了就可以。

这样做的好处是在阅读实际的编程教程时,不会出现最初的茫然期,可以大概知道为什么要先学这样的知识,它在后面可能起到怎样的作用。而不是在阅读教程的前1/3时,都是拼命的去记忆那些基础概念,而完全不知道为什么要学习它们。

换句话说,就是在为编程入门这件事情绘制一个简易的地图,这样在真正上路之后就可以明白自己大概在什么位置,应该朝什么样的方向去前进。

2 Likes

0019 进行比较

等号不再是我们小学时所学到的那个等号,虽然它还可以用来计算出结果,不过是把右面的计算结果存储到左面的变量里。而且本身表示的含义是赋值(在不同语言下具体的符号可能有区别)。

但是在我们小学学习的范围内,等号并不只有计算这一个用途,它还可以用来比较左右数字的大小。表达的是左边的计算结果和右边的计算结果在数值上相等。

1 = 1

像上面这样书写,我们认为这个关系是成立的,或者说这是对的。

好了,结束了对小学知识的复习,开始学习新的设定。为了避免混淆,所以我们用两个或者三个等号来表示这种相等的关系:

1 == 1

两个等号表示数值上的相等,就是把两边的数据转换为同种类型,然后比较它们的值。如果是三个等号,则是“全等于”,表示两边的计算结果,无论在数值上还是类型上都是完全相同的。

那么类似的,还有大于(>)、小于(<)、大于等于(>=)、小于等于(<=)。再强调一下,这些设定基本上在各种语言下都有,但是具体的书写方法可能有细节上的差别。


无论你在什么平台看到这些内容,如果你读了并且读懂了,那么就拍拍小老鼠或者点个赞或者留个言,总之让小老鼠感受到你的存在,这样会给他坚持更新的动力。如果你没有读慬,那么就在评论中留言,大家一起探讨。

就这样,就这么简单。

上一篇 | 返回目录 | 下一篇

1 Like