你不得不知道的编程基础之猛男三件套

感谢晴天老师提供这样的交流平台!

学习一个东西, 我们需要从自己的舒适区走出来, 千年万年都在一个地方原地踏步没有什么意思!
这是一个突破的过程。
首先第一篇我和大家闲扯一通, 知道的不要拍砖, 这些东西总有一部分人需要的。
从现在开始你假设你电脑上可以使用的软件只有三个, 1.命令提示符; 2.文本编辑器; 3.web浏览器。
这是你的创世纪!
1.命令提示符, 你通过这个软件可以操作电脑, 和我们主题最相关的是,  对文件的增删改查。
打开方式, Windows加r, 在弹出的运行窗口里输入
cmd
回车; 或者用tab键找到 确定按钮, 就能打开了。

打开后可以听到这样的内容。
Microsoft Windows [版本 10.0.18363.535]                                                                                 (c) 2019 Microsoft Corporation。保留所有权利。
小键盘的5, 可以听到
c:\windows\system32\cmd.exe
这是程序的所在位置, 如果你是管理员身份运行命令提示符的话就能听到,
管理员: 命令提示符
这里你可以使用小键盘的82键, 一行一行的查看内容, 用46键一字一字的查看内容。
小键盘7回到第一行; 小键盘1键回到最后一行。
这是争渡的情况, 相对来说nvda的支持更好, 争渡改善的地方空间很大。
最后一行的内容
c:\users\你的用户名>
这个叫做, 提示符, 前面是你所在的位置, 默认cmd在你的家目录里打开, 这个目录随着你的操作会改变的。。
如果你使用管理员身份运行cmd的话, 在Windows10上是
C:\windows\system32 >
就是命令提示符程序所在的文件路劲。
所以说这些都有细微差距的,不过这些都有有规律可循的。
什么是文件系统?
操作系统的一个重要的组成是文件管理系统, 简称文件系统, 常见的文件系统包括ntfs; FAT32; EXT4等等。
我们只要保存文件就绕不开文件系统, 这是一个树状结构的组织方式。
你可以想象一棵树, 从树根开始网上长, 所有的文件夹; 目录相当于树杈, 注意文件夹和目录是一个意思, 都可以用来在里面保存文件, 以后哪个方便就用哪个, 文件夹和目录说的是一个回事。
文件相当于树叶, 所以整体上文件系统就是我们生活中常见的树木, 我们种下一棵小树苗, 没有多少分岔; 叶子也很少, 但是到了有一定年头后成长为参天大树了。
同样的道理文件系统刚开始被我们使用的时候没有多少文件夹; 文件, 但是经过一段时间后在电脑上存上了一大堆; 有用或者没用的文件夹; 文件。
我们说的文件位置, 或者文件路径都是一个意思。
就是某个文件夹; 文件在文件系统里的包含关系, 一个文件夹可以有子文件夹或者文件, 如同一个树杈又可以继续分岔, 也可以长出叶子一样。
那么我们需要从树根开始表示某个树杈或者树叶, 如同从根文件夹开始表示某个文件夹或者文件一样。
具体看例子, 比如命令提示符的路径是这样的:
C:\windows\system32\cmd.exe
c:是跟文件夹, 或者叫跟目录,
Windows是一个文件夹, 很有名的树杈,
system32是一个Windows文件夹里的某个子文件夹, 相当于Windows树杈的分岔了,
cmd.exe就是一个重要文件, 是一片明星叶子, 因为这个就是命令提示符的可执行文件。
\反斜杠是路径分隔符, 在Linux的世界; 在web的世界里分隔符是/斜杠。
所以/更通用, 而且在windows上很多时候用/斜杠也不会有什么问题的。
历史遗留问题按照惯例在web; Linux上使用/, 在Windows上使用\就可以了。
实际动手实验一下, win+R输入:
C:/windows/system32/cmd.exe
打开, 然后继续重复同样过程, 输入:
c:\windows\system32\cmd.exe
结果都是一样的。
不管是\还是/都一样, 不过Windows的\可能会被替代。
总而言之这就是分隔符, 怎么都可以了。
可算是大概说完了文件系统了, 舒一口气继续讲。
命令提示符最后一行是你当前的路径, 最后面的:
>大于号, 表明你可以使用命令, 操作电脑了。
额外插几句。
Linux的提示符是这样的:

用户名@主机名:~$
波浪号在Linux系统里代表了当前登录用户的家目录。
家目录很形象的解释了什么叫, 家目录, 这个目录是你的家, 里面所有的东西都是你的。
比如在Windows下, 这里放了这些东西, 我的文档; 我的音乐; 下载; 桌面等等吧。
这些以后会讲到的, 先不管。

Windows系统的家目录位于
c:\users\里面。
Linux系统的在
/home/
目录里。
继续说提示符,
在Linux系统里$美元符号是普通用户的提示符; #警号是管理员用户的提示符, 意义和Windows的>大于符号一样。
反正你在命令提示符下可以操作整个电脑,当然也有其他的提示符了。

这里你随便敲打几个字母, 回车, 比如:
abc
之后你发现输出的结果是这样。
                                                                                                       'abc' 不是内部或外部命令,也不是可运行的程序                                                                            或批处理文件。                                                                                                                                                                                                                                 
C:\Users\Free>
这是一个无效的命令。
如果你想要正确不误的运行一个命令就需要记住这个命令。
比如:
date -t
回车, 然后你就可以看到命令提示符显示了当前的日期,
这里我们敲击的命令date -t是输入。
显示出来的当前日期是输出,
中间有个计算的过程, 所以这个叫输入计算输出。
对计算机来说这三个要素缺一不可。
比如我们有个软件叫
welcome.exe
那么我们执行这个软件后可以得到这样的输出:
hello,world

在复杂的程序都有输入, 计算和输出, 如果缺少了一个要素这个机器对我们没有任何用处了。

不管是输入输出; 还是文件系统都是符合人类的思维习惯的, 因为人往往都会按照自己的思维习惯来解决问题, 所以不要想太复杂, 也许你的直觉就是你对计算机知识的真正领悟了!

总而言之你可以使用命令提示符来操作电脑。

2.文本编辑器, 这个没有什么好说的, 不过也是必须要好好掌握的, 从记事本开始好好折腾一下吧, 怎么高校的编辑文本也是很重要的。
然后你用文本编辑器写情书; 写代码, 都是可以的。
个人觉得我们应该先折腾notepad, 然后过度到notepad++。
有个家伙刚开始学电脑, 我要他在记事本里练习打字, 人家非要在智慧人生里搜歌曲。
就这么干我打包票他是不可能学会电脑的, 所以个人觉得在记事本里好好折腾这两个菜单是很重要的, 不要轻视。
文件(F) 有子菜单 Alt+f
编辑(E) 有子菜单 Alt+e
先搞定记事本然后notepad++, 因为两者的重合点太大, 一个是最简单的记事本, 另外一个是增强型的记事本, 否则也不会叫记事本++了。

3.web浏览器, 所谓的web是万维网, 是互联网的一部分, 不过在我们的意识里web和互联网是一个概念了, 实际上有差别的。
Internet互联网是一个无数个计算机组成的大网络, 而web万维网是互联网的子集, 打个比方, 想了想没有一个恰当的比喻。
如果在二十年前互联网和万维网还是很容易区分的, 到现在这里面的界限很模糊了。
以前我们浏览web绕不开web浏览器, 现在大家有自己的客户端了, 比如:
微信; 手机淘宝, 抖音可以说都是web, 随着移动互联网的发展, 这些东西的界限已经很模糊了, 不管它了。

拥有一个趁手的web浏览器也是很重要的, 比如最经典的IE 浏览器, 就是你电脑桌面上回收站下Internet explorer就是了。
当下最火的Google chroem到, 大有前途的Microsoft Edge都是我用过的web浏览器了。
现在我们的日航生活; 娱乐都是在移动端可以很好; 很方便的满足。
那么电脑上留给我们的是什么呢? 除了一些非常专业的领域之外, 也就生下了高校的查找信息这个用途了。
所以学会浏览器是非常重要的, 当然你在电脑上满足你的娱乐需求也是离不开浏览器的。
所以早点习惯浏览器吧, 有些东西简单, 但不是什么长久之计。
命令提示符; 文本编辑器和web浏览器是我们最基础的三个软件了, 所以学会这些成为了学习编程前必须要完成的任务。
实际上Windows资源管理器也是一个非常高校强大的软件, 不过前期还是使用命令提示符, 到一定程度后在把资源管理器和命令提示符结合着一起用。

第一篇看起来没有什么实质性的内容, 不过我觉得这些是我们必须要了解的知识了。
现在行动起来, 主动去网上搜索这里出现的许多名词。
解释:
Windows资源管理器是桌面上的此电脑; 这个有过很多名称, 我的电脑; 计算机等等, 可以Windows+e打开这个软件, 可以在命令提示符或者运行里输入explore来打开。
资源管理器符合人类的操作习惯, 所见即所得, 而命令提示符更接近计算机了。
好了有什么问题, 或者建议随时跟帖和我说。
这段时间也不忙, 所以尽量的写出一点高质量的东西出来。



03-24 查看数:1734     回复数:11 只看该作者
接下来我们集中精力好好说说环境变量吧。
通常情况下我们运行一个软件可能是这样:
在桌面或者开始菜单里找到软件的图标回车运行。
在开始菜单里搜索, 然后找到结果图标在回车运行。
打开程序所在的文件夹后双击运行。
在运行或者; 命令提示符里键入程序的名称运行。
其中很多系统自带的软件都可以在运行里直接输入名称打开, 有些常用的软件都有快捷方式, 比如记事本; 计算器, 有的不怎么常用的软件就没有图标了比如注册表编辑器regedit; IP配置工具ipconfig。
我们做一个实验, Windows7相对简单, 直接在开始菜单里找到记事本的图标, 右键菜单属性就可以了,
windows10在开始菜单里找到记事本后, 右键菜单; 更多; 打开文件位置, 然后还看到了一个记事本, 打开这个记事本的属性能看到如下内容。
win10是两层的, 不管他, 至于两种图标有什么区别自己折腾吧。
点开属性我们可以看到。
目标 %windir%\system32\notepad.exe 好了, 这就是记事本的绝对路劲, 那么这个
%windir%是什么鬼?
%windir%你可以在运行里输入看看, 会是什么结果, 对了打开了c:/windows文件夹。
同样你可以在运行里输入:
%homepath%
打开的是你当前用户的家目录。
所以我们可以简单的认为:
%windir%和C:\windows\是等同的, %homepath%和C:\users\用户名也是等同的。
所以我们在点开记事本属性后看到的是这个快捷方式指向的绝对路径,
快捷方式省去了一层一层的点开文件夹的繁琐操作, 想要运行软件一部到位, 鼠标双击; 键盘回车。
那么为什么我们在运行; 或者命令提示符里输入notepad就能打开记事本, 却不能打开我们自己的一些绿色软件?
我们能不能想运行记事本一样输入个名称就打开相应的软件?
这样是完全可以的, 往下看。
不过在此之前我们需要说明环境变量这个东西。
所以理所应当以后我们需要打开Windows文件夹的时候不论何时何地, 直接输入%windir%就能打开这个文件夹了。
%homepath%也一样, 你不需要知道当前用户是谁, 张三; 里斯都可以, 直接%homepath%就可以了。
比如还有%appdata%; %programdata%都很好用。
这些都很方便的打开某些隐藏很深的文件夹。
还有你可以在命令提示符下输入:
echo %computername%
然后你可以看到自己电脑的主机名了。
这就是环境变量, 以后我们说到的编程语言的变量也就这个意思。
一个名称, 里面保存了某个值, 可能是一个文件夹路径; 可能是某个重要信息, 我们完全可以有一个叫, 工资的变量。
以后用到工资的地方直接使用, 不用管具体多少钱。
比如圆周率pi是一个变量, 我们知道pi就可以了, 至于3.14就没有那么重要了。
又比如你通讯录, 你知道张三就可以了, 至于张三手机号多少你没有必要知道。
这就是变量, 系统的环境变量也好, 以后用到的编程语言的变量也好都一个性质。
用容易记住的名字指代不容易记住的名字。
这样的例子不胜枚举。
继续说。
我们越来越发现很多软件默认安装的位置是你用户的local文件夹, 而这个文件夹感觉很长, 而且是隐藏的, 所以我们直接在运行里输入:
%localappdata%
就可以很快打开这个位置。
这里的packages文件夹里有wsl系统, 当然你是看不到经典的Linux文件系统的。
根据安装版本的不同文件夹名称也不一样, 比如我这边是CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
所以变量的好处就是你不需要知道具体的内容, 只要知道一个名称就可以了,
比如我们知道软件默认是安装在c:\program files文件夹里的, 那么这个文件夹也是有对应的变量的。

所以不管是操作系统, 还是我们用户的应用程序非常需要环境变量。
我们拿Windows10为例, Windows7; XP大同小异, 在此电脑右键菜单, 点开属性。
tab找到高级系统设置, 点开。
在找到环境变量(N)... 按钮 Alt+n, 点开。
然后我们可以看到两部分内容, 用户变量和系统变量。
我们可以看看系统变量都有什么内容, 然后折腾用户变量。
此外我们可以这样, 打开命令提示符, 输入:
set > d:/tmp/env1.txt

然后打开这个文件, 看看Windows操作系统都有什么环境变量, 这里系统变量和用户变量都在一起了。
这里我不贴上来了。 前面的名称都一样, 至于后面的值, 那就看你具体安装了什么软件了。
如果懂点简单的英文的话, 大概也能看出里面是什么内容。
比如computername, username等等。
个人建议, 我们折腾自己用户的变量就可以了, 不要动系统的。
我们熟悉的c:\Program Files也出来了, 这个变量就叫%ProgramFiles%。
这里你也应该看出来了, 使用%百分号包裹起来的都是环境变量的名称。
如果是Linux系统的话环境变量名称前面有个$美元符号。
比如: $homepath; $localappdata这样。

接下来我们折腾一个实验, 我们首先从网上下载一个工具。我们知道有很多好用; 轻量级; 绿色的小工具。
我们把这些工具可以放到一个文件夹里, 比如:
D:\tools
然后你把自己平时用的绿色软件全部扔到这个文件夹里。
要求是单文件, 不要放文件夹。
然后打开环境变量配置的界面, 在你的用户变量里看看有没有path这个环境变量。
如果有的话不用管, 没有的话tab键往下切找到兴建空格。
然后变量名里输入path, 通常情况下这些环境变量名是大写的。
在变量值里输入
D:\tools\
当然可以点击浏览目录来选择, 在win7的时候没有这么人性化, 不管多长的文件夹路径都要复制粘贴, 或者手工输入, 现在可以浏览了。
然后确定就可以了。

如果path变量是存在的, 那么你可以点击编辑。 然后观察一下。
焦点停留在一个列表上, 上下光标看看, 如果是win7的话是一长串内容。
是用;英文分号来隔开的, 同样在win10上更加人性化了, 可以更加方便的折腾。
突然间没有耐心写这些界面的操作了, 反正你大胆的折腾, 随意修改, 觉得大事不好可以直接放弃。

继续写重要 的东西, 系统怎么寻找软件运行, 我们在运行输入框, 或者命令提示符里输入一个名称后系统从哪里找, 我们需要运行的程序呢?
就是在path列出的路径里找,。
所以我们创建一个path环境变量, 值是D:\tools\, 一路确定, 然后我们可以在运行窗口里输入一个d:\tools里的某个绿色软件看看结果。
这次肯定能运行, 这样我们就很方便的找到那些绿色程序运行了。
感觉就像打开regedit; cmd一样。
如果这个软件是包含在文件夹里的, 比如, 我们的gd磁盘管理工具。
路径是这样的
`D:\tools\DiskGenius32_64\DiskGenius64\
那么我们可以创建一个环境变量。
变量名: DISKGENIUS_PATH。
变量值: diskGenius的路径, 如果怕写错可以浏览目录, 直接粘贴也行。
然后找到path变量点击编辑, 然后继续点击新建, 填入:
%DISKGENIUS_HOME%
写完后直接回车就可以了, 然后一路确定。
这样我们可以在运行里直接输入:
diskGenius来打开磁盘管理工具了。
在Linux系统里我们必须习惯这样的方式, 以后我们学习编程的时候就用到这些东西。
操作系统是一个很大的东西, 我们需要熟悉的东西太多了。


在编程语言里有一个很高大上的概念, 就是传说中的函数。
如果我们称之它为功能, 那么感觉很接地气, 很亲切了。
关于函数有很多不同的叫法, 比如方法, 子程序, 过程, 但是说的就是一个意思。
就是完成某个功能的模块, 比如:
相加 参数1, 参数2
好了这就是一个函数, 功能就是把参数1和参数2加起来返回相加后的结果。
这个东西怎么理解呢, 比如我们找到一个txt文本文件后回车, 那么这样记事本就打开了这个文件。
这个可以说是执行了一个函数, 只不过这个函数是一个程序,
在Windows的世界里文件的扩展名是一个很重要的信息, 扩展名告诉了操作系统某个文件使用哪个程序来打开。
比如.txt是用记事本打开, .mp3是用某个音乐播放器打开, 等等。
如果Windows遇到不认识的扩展名, 找不到相应的程序就让你自己选择一个程序来打开。
反正扩展名在Windows系统里非常重要, 如果是Linux系统呢?
比如我们有一首歌叫 找一个字代替.mp3
在Linux里是这样的。
播放器名 找一个字代替.mp3
那么Windows行不行, 你可以试试看, 在运行里输入wmp的路劲和一首歌去的路劲, 比如我电脑上是这样:
"%ProgramFiles(x86)%\Windows Media Player\wmplayer.exe" d:/musics/找一个字代替.mp3
如果你看不明白这个的意思, 就参看我前面写的文章。
wmp的程序文件名是wmplayer.exe。
如果路劲名有空格的话使用双引号来括起来。
双引号在分号的后面, 直接按单引号, 加上shift就是双引号, 这个必须是英文状态下输入的。
所以说程序名 文件名和在Windows资源管理器里打开文件是一样的效果。
举一反三, 你可以拿记事本做几个实验。
运行里输入:
notepad d:/docs/demo1.ini
这样如果有这样一个文件, 记事本直接打开了, 如果没有这个文件, 记事本提示找不到文件, 你可以选择是, 创建这个文件, 选择否打开一个无标题的记事本。
如果你不输入路劲的话他默认在你的家目录里创建文件, 不输入扩展名的话默认.txt。
你也可以在命令提示符里输入。
d:
cd docs
notepad++ demo1.ini
对了notepad++也可以这样用, 只不过你需要把notepad++的路劲加入到path环境变量里。
同样的思路, 你可以在当前的命令提示符里输入:
explorer .
请注意后面一个点号。
在命令提示符这样的shell程序里点号代表了当前目录, 两个点号代表了上一级目录, 反斜杠或者斜杠代表了根目录。
比如我们的命令提示符有一个命令叫cd
功能, 改变工作目录。
一个命令主要有两个部分,命令的名称和参数。
那么对于记事本来说notepad.exe是命令的名称, d:/docs/demo1.ini是参数。
对播放器来说, 播放器wmplayer.exe是命令的名称, 歌去路劲是命令的参数
同样的道理cd是一个命令, 本质和记事本, 播放器没有区别, 工作内容是有区别的。
cd 路劲
不同的里命令他的参数有区别的, 就看是什么功能了。
比如记事本的参数必须是一个文本文件, 如果是其他类型的文件也可以, 主要是你看不懂, 如果是一个目录会是什么结果可以试试。。
同样cd的参数必须是一个目录的路劲,
现在做一个实验, 打开命令提示符
输入
cd .
回车, 然后看看最后一行, 实际上这个没有改变你的工作目录,
因为点号代表了你当前的工作目录。
继续输入
cd ..
看看结果, 现在你退回到上一级目录, 继续输入:
cd 用户名
这个用户名因人而异了。
继续输入:
cd ..\..
看看结果
这样他连推了两个目录, 到了根目录了, 继续退没有意义了。
反斜杠或者斜杠可以直接退回到根目录了。
那么我们输入其他盘符的路劲什么结果, 可以试试。
cd d:\tmp
貌似没有变化, 但实际上你已经改变了d盘的工作目录了。
在Windows世界里所有的盘符都是独立的平行世界。
所以你需要穿越一下, 这个也很简单:
盘符名回车即可, 比如:
C: D: E:等等。
你可以这样打开命令提示符直接切换盘符
d:
然后看看结果, 在打开一个命令提示符先给d盘更改工作目录。
然后在切换盘符。
cd d:\tmp
d:
所以cd能改变工作目录, 不能改变盘符。
不过常规操作是先改变盘符, 在改变目录。
d:
cd /tmp/
这样比较符合常规, 此外Windows有一个命令
chdir
这个不带参数打印当前工作目录的路劲, 也可以改变目录, 和cd一样。
chdir \
而且可以改变盘符, 不过需要额外的参数开关。
chdir -D D:\tmp
这里出现的-D是本命令的选项。
复杂的命令有多个选项, 你根据自己的目的选用合适的选项。
比如chdir的-D选项决定了要不要改变目录。
如果有-D改变盘符, 如果没有的话和cd没有区别。
干脆什么参数都没有功能只是打印当前工作目录。
至于选项的书写格式, 就看当时作者的心情了。
比如我们想要查看一下某个命令的帮助怎么办。
可以这样搞。
chdir --help
chdir -h
chdir /h
chdir /?
挨个的尝试一下, 这些东西无非就是这样的。
以后学习编程的时候肯定遇到更多的选项, 如果你高兴了可以折腾Linux系统。
在Linux的世界必须要牢记那些命令和选项。
比如打印系统所有进程快照。
ps uax
这里你可以把三个参数写在一起, 如果是Windows的话就不行了, 必须按照格式来书写。
然后很多系统命令执行完了以后没有消息的。
所以说没有消息就是好消息, 如果出现一大堆乱七八糟的错误提示就你的麻烦来了。
很多软件的作者喜欢刷存在感, 又不是面对你的心上人沉默一点吧。
你可以想一想执行一个cd命令下面输出:
恭喜你, 当前工作目录改变成功。
那是什么感觉。
成功了默默无语的退出, 失败了给相应的错误提示。
这就是所谓的没有消息就是好消息。
总而言之cd可以让你随意的改变目录, 和在此电脑里使用上下左右光标键; 回车键和退格键一样。
这个还是需要你多几次体会, 还是那句话多动手。
既然我会在各个目录之间移动了, 怎么查看具体某个目录下有什么内容。
cd确实改变了目录, 但是里面有什么我不知道, 怎么办? 还是靠命令。
dir没有参数, 默认可以列举出当前目录下面的内容。
创建日期, 大小 名称。
这个命令也有很多选项, 也可以指定一个名称。
我们最需要知道的是两个选项 /B或者/D这样他只会输出名称。
比如:
dir /B
dir的更多用法可以输入:
dir /?
查看。
我们可以使用cd和dir来查看电脑上的文件夹和文件是没有问题的。。
如果你遇到文本文件的话可以使用type命令来查看内容。
这些都是很不错的命令。
当然我更愿意使用图形化编辑器来折腾文件。
回顾一下我们今天主要学习了cd和dir命令, 这个很重要我们必须掌握。
此外我们也想一想今天所学到的命令和, 我们以后要接触到的函数有什么相同点。
我们使用一个命令和调用一个函数本质是一样的, 表现不一样而已。


这里基本上是闲扯淡的, 不过我想你看完后应该会有启发的。
我觉得会帮助你掌握一些要点。
学习计算机离不开一个词儿, 抽象层。
那么什么叫抽象?
我说所有的狗都会叫, 这个是抽象的, 我说小黄会叫, 这个叫具体。
我说所有人都会死, 你会同意, 我说今天我会死, 那么你肯定认为我不正常了。
继续讲的话我这是要跑题了, 不能扯哲学。
不过我建议大家找一些哲学方面的通俗读物来看看, 这个不光能解决你的人生问题, 而且也可以帮助你理解计算机方面很多概念。
比如《哲学家们都干了些什么》是一本不错的书, 可以拿来给自己一点启发。
总而言之抽象就是把一类事物的共同特点分离出来做一个模型。
比如说, 计算机上的文件, 这是一个很好的例子。
我们只要知道这个文件可以被我们, 拷贝; 移动; 删除; 改变属性, 包括名称; 权限; 日期时间和所有者, 可以编辑里面的内容就可以了。
至于这个文件在硬盘上, 还是优盘上不重要, 我们更没有必要知道文件的数据在哪个扇区, 怎么保存的。
因为操作系统已经帮我们抽象出了一个层, 我们只要知道怎么增删改查文件就可以了。
同样的道理我们以后遇到编程语言的标准库, 或者第三方组件的时候知道怎么用就可以了。
类似这样的例子很多很多, 编程语言也是一层层抽象而来的。
底层机器语言, 然后是汇编语言, 在就是C语言这样的高级语言, 然后在C语言的基础上抽象出来了python; ruby这样的语言。
底层靠近机器; 高层靠近人类, 底层是琐碎; 繁杂的, 高层是抽象简单的。
有一个概念叫面向对象编程, 那么什么叫面向对象编程呢?
这里的乱七八糟的东西很多, 类; 对象; 接口; 实例化; 多态; 继承; 封装; 重写; 覆盖等等。
如果你不知道这些都是为了什么, 这样你几乎很难学下去。
其实面向对象编程不是为了堕胎, 而是为了抽象话和封装。
我们现在使用的所有的技术都是抽象和封装的, 操作系统是抽象和封装的, TCP/IP协议也是抽象和封装的, 各类编程语言也是如此。
相对来说封装很容易理解, 我们能看到的是使用方法, 里面的原理是看不到的, 黑匣子一样。
我们也可以做出自己的黑匣子, 里面怎么样我们自己知道, 其他人轻易是看不到的。
实现方式不是说非要使用面向对象编程的方式, 而是其他方式也可以, 只不过面向对象编程思维符合人类的习惯。
后期的维护扩展容易, 折腾出一个软件最大的问题是怎么维护, 比如修复错误; 添加新功能等等。
为了改正一个bug错误, 牵扯出一串bug就麻烦大了, 最后你有可能推导重写。
抽象话也很容易, 比如每一个编程语言都有自己的数据类型, 这个也是抽象出来的。
计算机的内存是储存数据的地方, 单位是byte, 我们的距离, 重量; 体积都有单位, 同样数据也有单位。
比如一首标准的mp3歌去, 六七mb左右, 一部电影可能有击败mb的样子。
1024byte等于1kb; 1024kb等于1mb; 1024mb等于1gb; 1024gb等于1tb。
比如内存里有一个4byte的数据, 那么这个可以是整数类型; 小数类型; 也有可能是字符串类型的。
这个就是抽象, 4byte的数据, 给他赋予含义。
一个10mb的数据, 有可能是一张图片; 一首歌去, 或者一部小说。
至于怎么抽象是一些其他软件的事情, 图片你用播放器打开肯定是没用的, 你一个学中文的让你看日文你也看不明白。
这个就是抽象。
在汇编语言的时代没有流程控制语句, 所以只能使用跳转语句来改变程序的执行流程, 后来出现了选择语句和循环语句。
而选择语句和循环语句就是对跳转语句的抽象。
大禹治水我们都知道, 那么第一个创造高级语言的人就是编程语言领域的大禹。
约翰·巴克斯开发出了第一个高级程序设计语言Fortran, 后来丹尼斯·里奇折腾unix的时候捎带着整出了C语言。
现在Fortran怎么样了我不知道, 据说还是有人在使用, 不过C语言是一个什么样的地位大家都知道。
在汇编语言的时候程序的流程好似洪水, 容易泛滥成灾, 而且不好控制, 到了高级语言的时候出现了正常的河流,
洪水被疏通了, 有漩涡; 循环语句; 有支流, 选择语句, 但是不会轻易泛滥; 失控。
洪水还是那个洪水, 只不过现在人为的该疏通的疏通, 该阻拦的阻拦。
化繁为简, 这是信息技术发展的一个主脉络!
曾经看到很多软件输入关键词, 搜索就能得出结果, 感觉网络程序很神奇, 后来知道http, 这样的协议, 数据库这样的数据存储; 增删改查技术。
一层层真的太多, 我在这边费尽心机写下来的东西, 我很难说对你有没有启迪。
但是我努力了。
不着边际的扯了这么多, 接下来该用最简练的语句来具体介绍编程语言最核心的一些东西了。
至于选择哪个编程语言我暂时不确定。
不是C语言就是python。
但是问题C语言很容易让人, 进而远之, python的话有些东西你永远看不到。
让我想一想先。
以前我在争渡网上写过一个很长的东西, 一下同时写c/c++; C#; java和python。
地址:
http://www.zd.hk/thread-36690.htm
我还是很佩服当时的自己, 这个应该说是自己的一个学习笔记, 更多的是一厢情愿的自己想法, 现在有些观点简直是错误的, 可笑的。
但是当时学过的东西, 现在留给自己的还有多少, 细节方面我开始遗忘了, 但是整体上我自己是提升的。
2017年我实现了一个留言板, 没有数据库; 没有Ajax, 前几天又实现了一个留言板, 用上了XMLHttpRequest, mysql和Linux主机, 所谓的lamp环境。
变化很大, 但是更好了, 还是更差了, 我不知道。
但是我这次想要写出真正的对其他人有用的教程, 试试看吧……


感谢老欧给大家送来的大餐。
内容很长,需要慢慢看。
相信对大家会有帮助的。

感谢楼主,全手打还讲读平怎么运用,太好了。希望楼主更新下去。小白们好持续学习。点赞点赞点赞。

本帖来自微秘



受益良多,不过说句实话,每一篇太长了,我觉得没有几个人能完全看完,建议楼主每一篇的篇幅可以短一些

楼主基础的东西还是需要给我们讲的,但是可以这样,先过专业词汇表和概念解释,然后主要告诉大家主要怎么学,因为没有基础的话后面很难延续,有了基础才能举一反三。一个是能否给些专业词汇表2给些专业概念的解释表3然后介绍一下这些怎么看怎么学怎样放到你所需要应用的场景。

本帖来自微秘



可以在整理一个学习编程的问题表,因为大多学习编程都会有很多问题。整理个这个表大家查阅,就像我们使用淘宝一样使用支付宝一样使用阿里旺旺一样里面有很多使用提问。大家在这些问题中去查阅问题的答案。

本帖来自微秘



接下来也就是大家需要整理自己的学习目的,1爱好2想通过学习编程有新的职业拓展3学习解决一些问题4好奇学习。所以目的不同学习的方法是不同的。这是需要大家自己整理的,但是潜行者的经验和知识能够让后来者少走弯路,下功夫还是的自己加油。所以楼主建立大家的基础知识和详学习方向是重点。再次感谢楼主分享。

本帖来自微秘



回复1楼老欧同学

顶帖。

本帖来自微秘