常见的教程是这样的:
虽然学了入门知识,但不了解整体框架,不知道这些入门知识有什么用。
就像画了脑门,依然不知道这是谁。
更合理的教程应该是这样的:
每个阶段都是完整的,下一阶段是对上一阶段的细化。
学习时,起码知道学了这些有什么用,不会因为太纠结细节,而忽略了整体。
而这篇《极简编程课》作为入门的入门,作用大概是这样:
不论你是完全的编程小白,还是半途而废的初学者,看过这篇“极简”介绍后,都会对编程有一个整体的了解。
后期再看其他的“入门教程”,也会知道为啥要学习这些知识了。
《极简编程课》目录
1.函数和模块2.数据和变量3.循环和判断4.安装和实操5.补充说明
说明1:这篇文章不涉及太多具体操作,耐心阅读即可入门。
说明2:这里以 Python 编程语言为例。文中涉及的代码和资源会放在文末,大家可以下载到电脑上自己学习。
说明3:全文比较长(一万字)。因为是一个整体框架,所以没有拆分,建议收藏后抽时间集中阅读。
说明4:欢迎分享给周边对编程感兴趣的朋友,这篇文章一定会帮助到他们。
1.
变量和模块
本节字数:1800字,阅读时长:5分钟
程序就是我们写给电脑的一串指令。
电脑读完这些指令后,就能按照我们的要求,一步步完成指定操作了。
因为是写给计算机看的,所以要用计算机的语言,也就是我们所说的编程语言(这里的例子是 Python)。
这里贴出一个简单的示例程序,大家可以先看一遍,感性认识下。
尽管和人类语言不同,但有点英语基础的话,大概能猜出来,这段代码想让计算机干什么。
我们先把这段代码“翻译”一下。
执行过这个程序之后,原来的硬盘上,就会出现程序中的文件和文件夹了。
而这一步步操作中,最关键的部分就是程序中蓝色和绿色的那些代码。
括号中的这些代码,在程序中叫做:
函数
这个词儿不太好理解。
它的英文原名是 function,意思是“功能”,相对更直观一些。
函数的作用就是实现某些“功能”(例如:打开文件,写入内容,创建文件夹等等)
可以把函数看成一个“机器”。给它输入一些东西,它就会做相应的处理。
这就好比把照片传入修图软件,它就能帮我们加滤镜,把食物放进微波炉,它就能帮我们加热一样。
之前我们说,程序是给电脑下达的指令,而函数则是这些指令中的核心。
对初学者来说,学会使用函数,就相当于掌握了编程的核心。
其余的编程知识都是一种补充,是为了让我们更好使用函数。
函数和机器一样,功能越丰富,内部构造越复杂。
但好消息是:
这和初学者无关。
对于初学者来说,关键是知道如何使用函数,而不是如何创造函数。
就像我们只要会用微波炉就行,至于里面的结构,暂时不知道也没事。
而很多入门教材中,会讲解函数的结构,如何创建新函数等,这很容易吓坏初学者。
初学者遇到的问题,基本上都有现成的函数可以解决。
初学者要做的,是把复杂的问题,拆分成多个简单的问题,然后通过搜索,找到解决这些简单问题的函数,最后把它们拼起来就可以了。
比如,在上面的示例程序中,有一步是用 Python 把一个文件复制到另一个文件夹中。
那我就可以在网上搜索“python copy file”。
进入搜索结果,查看里面给出的例子和说明。
然后把代码复制到到自己的电脑上,看看具体是怎么用的,随后就可以用在自己的程序里了。
比如,在示例程序中,我用的就是下图的第二种方案。
这其实是学习编程的最佳路径:
遇到问题,搜索方法,快速学习,马上应用。
第一,弄清楚要引入什么“模块(module)”。
Python 有很多函数,为了方便管理,人们把它们存放在了不同的模块(module)当中。
就像我们会把铅笔放在笔筒里,扳手放在工具箱里一样。
要用某个函数时,首先要把对应的模块引入进来,然后再从这个模块中找到相应的函数,然后使用。
比如我们要使用的“创建文件夹”,“复制文件”等函数,都存放在名叫 os 和 shutil 的模块中。
那我就会在程序中,先引入这些模块,随后用 os.mkdir() 来新建文件夹,用 shutil.copy() 来复制文件,用 os.rename() 来重命名文件。
除了 Python 自带的模块之外,还有很多函数被放在了第三方模块中。
引入这些模块之前,要先把它们下载到电脑上。
就像我们的新手机上只有几个简单的原生应用,想要用其他软件,要去应用商店先下载一样。
比如,你想处理 pdf 文件,可以搜索“python pdf module”。
在结果页面中,通常会给出例子和需要使用的模块。
如果你想处理图片,视频,ppt,word等其他文件,按照这个方法搜索,都能找到处理这些文件的模块,以及详细的使用方法。
说明1:特别常用的函数,已经内建在 Python 当中,比如 print(), open(),这些不用引入模块,也可以直接使用。
说明2:程序里的某些对象也可能有自己的函数。比如,那个 file 对象,可以使用 write() 函数写入内容,也可以使用 close() 函数来关闭文件。
这部分内容已经超出“极简”的范围,这里暂时不做详细介绍。
对于新手,只要记住,碰到的大部分问题已经有答案,只要找到合适的模块(module),利用里面的函数(function),就能解决这些问题。
第二,弄清楚“输入”和“输出”。
刚才说函数就像一台“机器”,所以我们得知道,什么东西可以放进去,处理之后会变成什么。
在程序当中,函数通常长这个样子:
核心的部分是函数名和后面的括号。
函数名就是它的功能,而括弧相当于输入口,可以把想处理的数据放到括号里。
处理完的数据,如果需要继续使用,可以用一个变量“装起来”(这部分后面会讲到)
函数不同,输入输出的要求也不同。
有些可能是1个输入,1个输出;有些可能是2个输入,没有输出;也有些既不输入,也不输出。
补充说一下函数后的括号。
即便没有输入,括号也不可以省略。
可以把括号看成是函数的启动按钮,只有这个括号存在,函数才能开始运作。
对于括号内的输入来说,除了数量之外,也要看输入的类型。
如果类型不对,函数也没办法处理。就像把冻排骨放到榨汁机里,榨汁机就没法处理一样。
所以,接下来说一下,输入到函数中的这些数据,都有什么样的“类型”,以及存储这些数据的“变量”。
2.
数据和变量
本节字数:2200字,阅读时长:6分钟
计算机当中的数据主要分为两种:
数字和文字。
数字又分为整数和小数。整数叫integer,简称int;小数叫float。
文字又称为字符串,叫做string,简称str,通常用引号括起来(单双引号都可以)。
int, float, str 这三个词会经常出现在函数的使用说明书中,所以后面讲解时,我也会加上这些缩写。
文字(str)这种数据类型有很多功能,常见的两种是分别是“文字输入”和“名称指定”。
所谓文字输入,就是把它当做具体的内容,输入到函数当中,让函数给我们打印出来,或者写到某个文件中。
比如,我们在之前的例子中提到的,在文件中写入“极简编程课”的内容。
另一种是指定文件(夹)的名称和位置,比如”C:\Users\Desktop\test.txt”。
因为我们无法直接把要处理的文件拖入到函数中,所以需要用文字形式(str),准确告诉电脑,这些文件在电脑的什么地方。
不论是图片、视频,还是word文档,只要用文字(str)说清楚位置,并且找到合适的函数,电脑都能处理。
我们在之前的例子中,就在复制文件的函数中,用字符串(str)输入了 txt 文件和文件夹。
除了上面说的两种用法之外,字符串(str)还有很多其他的用途,在阅读函数说明书时,可以看到某些参数需要用字符串(str)形式。
比如,我们之前打开文件的那个函数,除了文件名之外,第二个输入的参数是文件格式,也需要用字符串(str)的形式来表达。
这个在阅读函数说明时,就可以看到。
说完了文字(str),再来说说数字(int, float)。
总有人说,编程对数学要求不高,之前一直不理解,入门之后大概知道是什么意思了。
编程就像解数学应用题。
真正的难点是把问题翻译成数字,而随后的计算难度不大,大部分都是四则运算。
而这个“翻译”才是难点,过程中可能会用到数字(int, float)。
比如,你需要查看文件名当中某个位置的字母,就需要告诉电脑,字母在第几号位。
再比如,你要查看某些数据的长度,看看是否超过标准,这些都涉及到数字的应用。
数字层面的应用没有那么难,关键是要知道数什么,怎么数。
即便面对同一个问题,可能也会有不同的解决方法。
关于数字的具体应用,后面还会有详细介绍。
数字(int, float)和文字(str)是最基础的数据类型。
除此之外,为了使用方便,编程中还会把它们放在一起,组成一个集合。
比如列表(list),或者字典(dictionary)。
这些集合类的数据,和之前的文字与数字一样,都可以输入到函数中。
而且,我们可以根据需要调用这些集合当中的数据。
这些具体应用在各种入门的教程中都会介绍。解决具体问题时,也会慢慢学到,所以在这里就不展开说了。
下面说说另一个重要的概念:变量。
程序复杂起来之后,里面会涉及到很多数据(文字,数字,列表等),管理起来很麻烦。
文字还能看清楚具体是什么内容。数字如果没有说明的话,很难知道到底代表什么。列表又很长,每次都复制粘贴很麻烦。
为了方便数据的管理,我们可以把它们装到一个“盒子”里,而这个“盒子”就是变量。
这么做有三个好处:
看起来方便用起来方便改起来方便
这么说有点抽象,举一个具体的例子,大家就明白了。
假设有两个函数,只要把圆周率和半径输入进去,就能计算面积和周长。
现在有一个半径为3.14的圆,需要我们来计算面积和周长,并且要把半径打印出来。
如果在函数里直接输入数据,程序就会长这个样子。
如果我们这么写,就会有几个问题。
第一,看起来不方便。
函数中的数据代表什么?前面的3.14和后面的3.14有啥不同?
除非对这些函数很熟悉,否则仅凭数字,并不知道谁是圆周率,谁是半径。
对于阅读代码的人来说,这部分就很难理解。
第二,用起来不方便。
如果这个程序后面还需要用到“半径”或者“圆周率”,我就需要自己查找对应的数值,并且复制粘贴过来。
因为看起来不方便,在复制数据时,很可能出现错误。
第三,改起来不方便。
这里的计算对象是半径为3.14的圆。
假设现在要计算半径为4.14的圆呢?那就要把每个半径的数据全都改一遍。
现在只有三个函数,改起来还不算太难。但如果程序很长,需要修改很多地方,一不小心就会遗漏,导致错误。
为了解决这几个问题,就出现了变量这个概念。
可以把变量假想为一个“盒子”,具体的数据可以被存放在里面,然后给变量起一个名字。
随后的程序中,我们就不用具体数据,而使用这个变量来进行运算。
修改之后的好处也很明显。
首先,每个数据的含义很明确。
变量名称代表了数据的实际意义,尤其是数字类的数据,能用一个名称来标记,显然更容易理解。
其次,调用起来更加方便。
假设我想在其他函数中调用某个数据,我不需要记得它的具体数值,只要把变量名直接输入进去就可以了。
因为变量名是我自己起的,通常非常简洁和直观,所以调用起来会更方便。
函数处理完某个数据后,会生成一个结果,如果我想继续处理这个结果,也可以把它装到某个变量中,然后用这些变量进行后续处理。
最后,有了变量,修改起来很方便。
如果我现在想计算半径为4.14的圆的数据,不再需要逐一修改。
只需要把半径这个变量内的“数据”修改一下,所有对应变量中的数据,就都会跟着改变。
变量的命名方式还有很多需要注意的地方,这些内容在入门教程中都会详细介绍,在“极简”当中就不展开说了。
关于变量,最后还要提醒一点:
等号( = ) 不是“等于”,而是“赋值”的意思。
相当于把右边的数据,“装到”左边的“变量”里。
了解了函数能处理的数据类型,以及装载数据的变量之后,我们就能像流水线一样,把函数组装起来,一步步完成具体任务了。
把数据装到变量中,放进函数里处理。把处理好的数据再放在变量中,继续后续处理,直到得到想要的结果。
但这种处理有两个问题:
一,遇到重复工作时,只能一遍遍复制同样的代码,太麻烦。
二,没办法判断情况。不能具体问题,具体分析。
这就涉及到《极简编程课》中最后两个内容了:循环和判断。
3.
循环和判断
本节字数:2000字,阅读时长:5分钟
有了函数,变量,数据,我们已经可以解决点实际问题了。
下面就用一个简化的真实问题,来讲解下这部分的内容。
比如,我下载了一季美剧,打开文件夹后发现,所有的后缀都是“mp41”,现在需要把它全改成“mp4”。
在前面的内容里,我已经知道怎么使用重命名的函数了。
所以,我们可以利用这个函数,完成上面的任务。
这里稍微说明一点,由于我们的程序在 tv 这个文件夹外面,所以从程序文件的角度来看,这些文件是 tv 文件夹内的东西,因此要在文件名前加上“tv/”的路径名。
这么写肯定没问题,但还是有点啰嗦,复制粘贴太多。
如果想要简化一下,就需要知道编程中很重要的一个结构:
循环结构
原来的程序中,其他部分都是重复出现的,只有文件名每次都需要修改。
所以我们可以这么做:
把重复的部分合并,只修改需要变化的部分。
我把这个循环结构先写出来,后面再一点点解释。
这里有两个新函数,在解释循环结构前,我们先用试验的方法,看看它们是干嘛的。
先看第一个函数 os.listdir()
运行后的结果是
os.listdir() 把“tv”这个文件夹里的文件,按照列表的形式打印了出来。
说明 os.listdir() 这个函数,只要输入一个文件夹,就能把文件夹里的文件,做成列表输出出来。
我们再来看看第二个函数 replace()。
运行的结果是
说明 replace() 这个函数,可以把文件名中的某个字符串,替换成另一个字符串。
另外还有一个小知识点,就是两个字符串可以相加,得到一个更长的字符串。
运行后的结果就是“tv/1.mp41”。
类似这种小测试,是初学者学习编程时,最常用的手法。
把一个函数单独拿出来,输入一些数据,看看它是如何处理的,进而了解它的功能,然后就可以放到自己的程序里使用了。
相应的代码,我也放在了文末的资料里,大家下载之后,可以自己体验一下。
了解了这些内容后,再来看原来的循环结构,应该就能大致理解了。
file_list 当中有我们所有要处理的原文件名。
后面的“for file in file_list”就是一种循环,翻译过来就是:
对于 file_list 里的每个数据,每次都放进 file 这个变量里,然后做后续的处理。
这里的 file_list 和 file 都是我们起的变量名,目的是知道变量中的数据代表什么,方便程序的书写和理解。
如果不在乎程序的“可读性”,理论上给这些数据起什么变量名都可以,只要处理的过程相同,最终的结果都是一样的。
所以说,变量名主要是起给人自己看的。
file_list 里面的具体数据,逐个被装进 file 这个变量后,file 就会带着这个数据,进入到冒号后面的操作流程里。
注意:循环结构里面的内容,往后缩进了4个空格,并且它们之间是对齐的。这个意思是它们属于一个层级,都属于循环结构的内部。
每次 file 换一个新数据,就要在循环结构里跑一次,直到把所有的数据都处理完
这个过程用动图简单演示一下就是。
除了 for 这种结构之外,Python 还有一种 while 循环,用法稍微有些差别。
但本质上都是循环,大部分入门教程都会介绍,就不在“极简”这里讲解了。
大家只要知道,一旦程序中出现了重复出现的部分,我们就可以把它们提取出来,放到循环结构里来处理。
还是这个例子,如果文件夹中还有其他类型文件,在修改文件名的同时,能不能让计算机自己判断,删除这些不必要的文件呢?
这时,就要用到编程中另一个重要的结构:
判断结构
在原来代码的基础上,再加上一个判断结构,就可以实现这个功能。
还是先给代码,然后解释其中的内容。
其中的“if…else…”就是基础的判断结构。
“如果(if)”满足第一个条件,就执行第一个条件内的代码,“否则(else)”就执行第二条件的代码。
我们能看到每个判断分支下的代码,也统一往后缩进了4个空格,以此来表示自己属于哪个判断条件之内。
具体到我们这个程序中就是:
如果 file 文件名以“mp41”结尾( endswith() 是查看结尾的函数),那么就执行我们之前修改文件名的命令。
否则,就用 os 模块当中的删除函数( os.remove() ),把文件删除掉。
运行完的结果,就是我们想看到的样子。
而这恰恰是编程强大的地方:可以根据我们制定的规则,具体问题,具体处理。
在讲解数据类型时,我们说过编程就像解应用题,核心是如何把现实问题,翻译成机器能听懂的语言。
而这个例子也能体现什么叫做“翻译问题”。
比如,我们想挑出所有“mp41”结尾的文件,所以这里用到了一个 endswith() 函数。
但同样的问题,我们还可以用一些其他方法。
通过观察可以发现,我们想保留的文件,最后一个字母都是“1”。
所以,我可以不用 endswith() 函数,而直接提取每个文件名的最后一位,然后判断它是不是“1”。
如果是,就执行重命名的代码,如果不是,就执行删除代码。
这里稍微多说一句。
判断条件中用到的“1”是字符串,而不是数字。因为文件名当中提取出来的是字符串,而不是数字。
除了检查最后一个字母之外,我们还可以查看文件名的长度。
我们需要保留的文件名长度都是6,也就是不超过7。
所以我们还可以这么写判断条件。
这种方式同样能得到我们想要的结果。
即便是一个批量修改文件名的简单程序,也有很多种写法。
如果是一个更加复杂的程序,不同环节会有不同的判断和解决方法。
对初学者来说,只要能达成目标,不必太在意方法是否“高级”。
还是那句话,初学者以应用为目的,优化的事情,等到有了更多知识后,再做也来得及。
4.
安装和操作
本节字数:1400字,阅读时长:4分钟
函数,模块,数据,变量,循环,判断,它们组成了编程的基础框架:
确定解决问题需要用什么函数,把相应的模块下载并引入进来。
把要处理的数据放到变量中,把变量放到对应函数中处理。
如果需要重复处理,就加入循环结构,如果需要分类处理,就加上判断结构。
对初学者来说,所有的入门知识,几乎都是对这个框架的补充。
这个框架就相当于一个模糊的地图,作为司机,你可以根据自己的兴趣,一点点探索里面的细节。
但首先,我们要把车启动起来。
所以这一部分,我们来讲一下如何安装 Python,并运行一下之前讲到的程序。
安装 Python 和平时安装软件差不多,在官网上下载最新版本。
官网的下载地址:https://www.python.org/downloads/
Python 的版本有很多,写这篇文章时,最新版本为3.10.5。
不论是苹果系统还是 Windows 系统,下载之后,都可以直接双击点击安装,一路默认选项来安装就可以了。
Windows 版本需要注意一点:在安装时,记得勾选“把Python添加到路径”上的选项。
安装好 Python 之后,我们的电脑就相当于学会了 Python 这门“语言”,可以读懂我们用 Python 写的程序指令了。
只不过 Python 不像其他软件,不能直接双击打开,需要我们用“终端机”来操作。
这里简单介绍一下终端机(苹果电脑上叫终端,Windows电脑上叫命令提示符,为了方便,后面统一称为终端机)
(苹果电脑)
(Windows电脑)
我以苹果电脑为例,解释一下终端机的应用,Windows上也相同。
终端机打开之后,就是一个黑色的框,里面会闪烁着一个提示符,等待我们下达指令。
这个东西和我们平时用的图形界面功能相同。
只不过我们在图形界面上要用鼠标操作,而在终端机上要用文字输入指令。
比如,想要进入一个文件夹,用鼠标操作,就是双击那个文件夹。
在终端机上就输入“cd(空格)文件夹名”,其中cd是change directory(改变文件夹)的缩写。
(图形界面中)
(终端机上)
有了终端机,我们之前安装好的 Python 就能发挥作用了。
我们的 Python 程序,通常会写在一个“.py”结尾的文件中。
如果想要让 Python 读取这个文件,首先要利用终端机,进入到存放文件的文件夹中。
在终端机中输入 cd ,然后空格,把目标文件夹直接拖拽进终端机中,能看到终端机自动识别了这个文件夹的路径(应该是很长的一串文字),回车后就进入到这个文件夹当中了。
为了判断是否已经进入目标文件夹,我们可以在终端机里输入一个ls(list的简称,windows用户要输入dir),把当前文件夹内的文件都打印在终端机上。
我们可以通过查看图形界面中的文件内容,和终端机显示的是否相同,来判断是不是已经进入该文件夹里了。
然后在终端机上写入“Python3(空格)代码文件名”然后回车,就可以运行代码了。
随后就能看到程序生成的文件夹和里面的文件了。
这个过程用动图来演示一下就是:
除了运行我们写好的程序之外,终端机的另一个作用是帮我们安装模块。
在讲解函数时,我们曾经说过,好多函数都在第三方模块中,不在 Python 自己的安装包里,需要我们额外下载下来使用。
这就像是新手机上只有原生的软件,我们需要的微信,支付宝需要在应用商店里下载一样。
Python 也有自己的“应用商店”,里面有相应的模块,供我们下载。
下载的方式也很简单,在终端机上打入以下内容即可。
至于应该安装什么样的模块,完全取决于我们要解决什么问题。
Python应用商店有一个官网:pypi.org
在里面输入关键词,能看到很多已经写好的模块和相应的简介。
阅读简介后,看哪个模块能解决你的问题,就可以点击进去,看看里面的详细介绍。
通常会有安装方法,以及使用的具体案例(比如,如何把 ppt 转换成 pdf)
如果觉得这个说明太简略,也可以在搜索引擎中,直接搜索想要解决的问题。
点击进去之后,通常会给出更详细的解答,并且在开头的部分,告诉你这个解决方案需要安装什么模块。
5.
补充说明
本节字数:1600字,阅读时长:4分钟
到目前为止,作为入门的入门,这篇《极简编程课》已经把编程当中最核心的东西讲完了。
看完这篇介绍之后,再去看其他入门教程,能更容易知道每个部分的作用。
作为“极简”的内容,里面有非常多的省略和遗漏。
我也没有特意区分一些相近的概念,大家如果看其他“入门教程”,会慢慢体会到其中的不同。
但为了不让“极简”变成“简陋”,最后再补充几点。
一,关于编辑器
教程中的程序都是直接给出的,没有说这些程序是用什么软件写的。
其实,程序只是一串文本,如果愿意的话,我们用电脑上的记事本就可以写。
最后保存成后缀为“.py”的文件,就可以在终端机上运行了。
但我给出的例子中,不论是函数还是变量,都有自己的颜色,看起来一目了然,这就明显不是在记事本上写的了。
为了更方便地编程,程序员们开发了很多专门用来编程的编辑器,其中有很多快捷键和自动补齐功能,可以大大降低编程中的重复劳动。
这些编辑器没有好坏,未来我也会抽时间专门介绍一些。
感兴趣的朋友,可以先去网上搜索一款叫“Sublime Text”的编辑器,然后下载体验一下。
注意1:不能使用word软件写程序。因为word文件不是纯文本,里面还有很多字体,颜色等参数,终端机是读取不了的。
注意2:写代码要用英文的半角输入,比如里面的冒号,逗号等。如果用中文输入,程序就无法运行。
二,关于初学者资源
踩过很多坑之后,这里列举三个我觉得比较好的入门资源(也放在了文末的资源库里)
1.automate the boring stuff with python
这个基础教程足够系统,看完这篇《极简编程课》之后,直接去学习这套教材,会非常适合。
这套教材也偏重于实践,有了这篇文章的框架之后,前几章的内容理解起来会非常方便。
更重要的是:这个教材完全免费,里面给出了所有例子的代码,可以直接下载下来,像之前的例子一样,在自己的计算机上运行。
2.geeks for geeks
这是一个编程网站,主要提供具体解决方案。
我个人不会直接去这个网站,但遇到具体问题,在谷歌搜索解答时,如果搜索结果里有它,就会首选它的答案。
因为里面的答案都是专业程序员利用业余时间写的,给出的例子也比较清晰,非常适合拿过来修改一下,直接使用。
这个网站本身也有一个 YouTube 频道,但因为是印度人制作的,口音实在不太好理解,所以比较推荐只看网站上的文字。
3.corey schafer
之前也提过,这是我在 YouTube 上的编程老师。
为了写这篇文章,我还特地看了一下他制作的“入门课程”。
虽然视频解说依然很详细,但明显是针对有一定基础的人。
所以还是适合看完这篇《极简》之后,再去观看。
三,关于英语
上面给出的三个教程,都是英文内容,有些可能还需要谷歌才能访问(对于无法访问谷歌的朋友,可以在后台回复“谷歌”,查看解决方案)
编程这个没办法,看过《大学生找不到工作,和当年的冷战有啥关系?》那篇文章的朋友,应该知道互联网这东西,就是美国搞出来的,所以英语就是唯一通用的语言。
如果想学习编程,英语是一个必备的工具。
教程中展示的搜索结果,我也都是用英文搜的,因为这样能得到更多的答案。
不光是教程,还有很多编程中的 bug,都是以英文形式给的反馈,如果看不懂,就不知道是哪里出问题了。
至于如何学英语,之前在《重要的事:非常简单,但不容易》当中也说过,最关键的只有一个:
背单词
单词量到了,其他都是小问题,后期有机会,我再写一篇《极简英语课》,把这事儿说清楚后,就不想再纠结这件事了。
四,关于极简教程
最后说说,为啥想写这么一个“极简教程”。
我在学会编程后,一直有个遗憾:
要是有更好的“入门教程”就好了。
因为一直没碰到这类教程,所以干脆自己写一篇。
尽管能力有限,但总体上还是满意的。
写作中的一个原则就是:写给当初的自己,让他少走些弯路。
如果能帮他少走些弯路,相信也能帮助到其他人。
另一方面,我一直想整理积攒的编程笔记。
如果没有这么一个“极简框架”作为基础,写出来的东西可能很多人都看不懂。
所以也想做一个入门的介绍,让更多人理解往后笔记的含义。
以上就是《极简编程课》的全部内容。
这是第一版,等到后期有了更多经验,对编程有了更深入理解后,可能还会补充。
文中的资源,大家可以在后台回复“极简编程”来获取。
总感觉用不了多少年,编程会像英语一样,变成一门重要的“外语”。
希望在那之前,这篇《极简编程课》能帮助一些人迈过第一道门槛。
既然看到这里,如果觉得不错,就随手点个赞和“在看”吧。
推荐文章:
上一篇:《鬼谷子》:两千年前的职场智慧