中学大学计算机衔接

我想我们应该都用电脑/平板/手机玩过游戏或使用过一些应用,打开过一些文件,如果你在上大学前完全没有接触过任何电子设备,我想计算机学科大概不适合你。因此我假定你有了一些计算机图形化界面的操作基础(会双击图标打开文件,并且会打字,会上自己想上的网站),并试着由此来引出一些你在大学会遇到的概念。

       我现在以word文件形式写这篇文章,并最终你会以pdf文件形式打开,我们先不考究为什么一定要采用两种不同文件形式而不统一采用word文件形式,而是指出,你打开word文件和pdf文件所用的应该不是同一个软件。在我的电脑上,我会用Word这个软件打开word文件,而用Edge(也就是Windows系统的浏览器)打开pdf文件。

       当然,你也可以用其他软件打开他们,但是问题在于,这些文件并不能打开自己。假如我的电脑没有浏览pdf文件的软件(如1992年前的任何机器),是不是我就打不开pdf文件了呢?是的,因为这些文件不能自启动,而他确实带着我们想要的信息,因此我们称他们为数据文件。

       那么有没有可以自启动的软件呢?显然是有的,这些软件称为可执行文件,比如我们使用的QQ或微信,都是可执行文件,也有人直接叫exe文件(实际上,在linux系统上,应该称为run文件,但linux系统是后话了)。这些软件可以不依赖其他软件自己运行,实际上,他们自己本身也就是软件。

       我们姑且认为计算机可以神奇的“识别”和“使用”它们了,因为要研究这个话题,实在需要更多的知识。这些文件,不论是可执行的还是数据的,都是存储在计算机上面的。如果你使用过U盘,那对我而言是幸运的,因为你应该了解这些文件是可以存放在U盘里的。

       U盘本身实际上是一种机械制品,它可以存储这些文件,但还有些文件是存放在电脑里的,难道它们是凭空出现的吗?显然不是,实际上,无论你使用的什么设备,都是机械制品(很多人甚至会怀疑这点),而其一部分的机械设计就是为了存储这些文件而生的。这部分机械设计包括U盘,我们统称叫“外存”。

       那有外是不是就要有内啊,内外又是如何区分的呢?是的,有内存这个概念,那么如何区分内外呢?这需要我们先了解下CPU(当然也是一种机械结构!)。

       CPU,即Central Processing Unit,即中央处理单元,是我们的计算机中负责运算和控制的机械构件,我们的一切程序,实际上都是由CPU执行完成的。CPU有一个”致命的问题”,就是他不能读取外存中的任何内容,只能读取它自己的存储部分的内容,它自己的存储部分就是内存。

但是我们的文件可都在外存啊!这可怎么办,难道就不能运行了吗?显然不是的,操作系统,也就是俗称的Windows(Windows是一种操作系统,但操作系统不止有Windows),会帮我们把文件中需要处理的部分放到内存中,至于其细节,我们在此先不讨论。

现在你对计算机如何存储我们的程序和数据应该有一点认知了,现在我们可以开始准备考虑下他们的来源了。数据文件的来源似乎很好直观理解,比如我现在输入的这段话,只要打字就好了(我默认你会打字,无论是二指禅还是盲打)。但是可执行文件又是哪里来的呢?

当然是通过我们的代码啦!很多人认为计算机系就是学习敲代码就是这个原因,无论我们的课程多么的花里胡哨,最终还是要落实到代码上面。

首先我们要知道,代码是一份文本类型文件,类似于我们的word文档。有一个专门的软件叫编译器,他可以解读这份文本文档,就像一个翻译官一样,把这份文本文件变成可执行文件。注意,我提到的编译器并不能在其中写代码,但是也许你第一次上编程课下载的软件可以支持你在其中写代码,你可能会认为我很差劲。

实际上,我们现在所谓的“编译器”更多的是指集成开发环境,也就是IDE,它集成了写代码,编译代码等功能,这让我们写代码更加方便。否则,试想一下,每次写完代码都要退出编写代码的软件,打开一个新的软件,然后将代码编译,如果一遍成功尚可接受,可如果要反复修改多次,这可就很难受了(实际上,很多人初学linux就是这样的)。

了解到我们的可执行文件来自我们的代码后,也许你会想知道,可执行文件,也可以说是我们写的代码,具体能做什么。理论上说,我们现在所接触到的计算机功能,都是软件的功能。就连最基础的开机,没有代码也不可能完成。(关机则不然,很多人会直接拔断电源,但应该指出这种行为是不当的)

顺道一提,也许你听到过“不要把软件下到C盘上”这种话语,这是对的,因为我们开机的软件就在C盘上。如果你C盘文件太多,不仅开机启动速度会慢(因为计算机要自己找到开机文件,而如果文件太多,查找的难度就很大),运行时会用到的所有系统文件相关的软件也都很慢(同理)。

计算机可以说,只有软件和硬件,硬件则是各种机械结构,这是计算机实现的根本,CPU本身就是硬件,但是没有软件的情况下,这些软件就只是一堆铁。必须要有软件,软件也就是控制硬件的程序,通过操作这些硬件,我们可以实现很多功能。

一定注意:任何软件一定要去官方正版渠道下载!不要在某些软件园下载!

软件的执行,我们目前只需要知道双击图标可以执行就可以了(我假设你会了),我们接下来说一说软件的压缩。有时候我们会接受到一些称为压缩文件的文件,后缀名或是.rar或.zip。软件压缩的目的在于使文件所占用的外存更少,这是通过删去软件的一部分信息实现的。

也许你会问,如果删去了这些信息我接受到的这个软件是不是就不完整了。实际上,有些压缩是会的,但我们使用到的大部分压缩不会,这在学术界称为无损压缩,至于其如何实现的,则也不是我们的课题。

压缩和解压缩其实并不难理解,关键在于,压缩和解压缩所使用的软件,许多人不了解,然后去某软件园下载了一个带有大量广告信息的软件,这是我们不愿意看到的。我个人使用的是WinRAR,这是一个免费软件!欢迎到官网WinRAR - 压缩软件 老牌压缩软件知名产品 经典装机软件之一下载。请千万不要再在软件园下载了!

在你对软件有一定的了解之后,以及我们了解上网的内部原理之前,我认为还是应该先面向我们所使用的主机操作系统,也就是现在大部分人使用的Win11(写于2024/4/20)系统。

我们注意到,在我们使用电脑的时候,我们似乎只需要双击和打字就可以完成所有任务了,这些事情发生的太天然了,好像和面前的这个铁壳子没有什么关系。这是因为Windows系统为我们提供了足够优秀的图形化界面,大部分我们需要令操作系统完成的事情完全可以只通过鼠标就完成。

那另外那一小部分呢?这一小部分是我们普通用户所使用不到的,但是鉴于你是即将进入计算机系的学生,这一小部分则可能伴随你的大学生涯。有时候你搜教程或者老师给你一些文档的时候,你可能会看到类似123> 1234这样形式的代码,你可能很疑惑这是什么,输入在哪里。这其实就是指令行,也叫做shell,也就是Winodws系统留给我们的实现那些小部分功能的途径。

最典型的就是ping命令,它可以检测你当前的网络连接状态,我们接下来就试用下这个命令。首先我们先后按下且不要松开键盘上的四个方块键字母R键,如果你按照我说的成功做到了,你应该能看到这个弹框

我们先不管这个打开后面的 cmd的意思,实际上这里可以修改成你要实现的任何其他指令,但我们暂且用不上,我们直接按下回车键(你键盘上 的Enter),则得到如下界面

注意,你的这个界面应该不是29691的这个账号,至于是什么,你不必在意,但大概率是你注册账号时的邮箱前5个字符。现在我们切换到英文输入,输进去ping www.bilibili.com,显示如下:

我们先不必在意它显示的这些内容的实际意义,你只需要成功执行了这些代码就可以了。这个功能,你并不能找到任何一个软件去实现,因为他很简单,没有人会为它专门做一个图形化的软件,但是它确实很重要,因此操作系统允许你在这里操作它。理论上,这个命令行还可以实现更多内容,如果你学了python,你可能会见到pip这个代码,这类代码也要输入在这个命令行中,而不是写在你的python代码里。

此外,应该注意的是,任何你可以通过图形化界面操作的内容,例如打开文件夹,打开软件等,也都可以通过这个命令行完成,等你有时间了可以自己试试看。

接下来我还想讲一个大家比较关心的内容:为什么有的软件我明明下载到了自己的设备上,但是如果没有接入网络,却不能打开他呢?

以QQ举例子,没有网络的话,即使你打开了软件,你也什么都做不了,你不能发送消息,不能换头像,甚至一些以前能打开的文件突然打不开了。

这都是因为,我们所看到的应用程序,其实暗地里使用了计算机网络,很多我们以为存储在自己设备上的信息,其实可能存放在远隔千里的一台其他计算机上,你也许认为这并不安全(实际上确实有风险),但是只要对方的程序足够权威,你大可不必关心这些问题。

不只是通过浏览器看网页需要上网,使用这些应用程序时,我们一样需要上网,否则一些功能就无法实现(比如排位匹配)。那么如何能检查自己是否已经接入网络以及网络状况呢?请使用我们刚才举例子用的指令吧,如果他能够显示出类似上述的结果,就是你已经连在了互联网上。

也许你会问,你ping命令后面跟着的不是www.bilibili.com,也就是哔哩哔哩弹幕网的主页吗,这能不能替换成其他的网页呢?显然是可以的,你可以换成任何你想检查的网页,比如www.baidu.com(百度的官网),理论上,这个指令是显示你和这个网页的连接情况的,但是如果你可以和一个网页链接,你基本上就可以和任何一个网页链接。

但有一些例外,根据国家法律,一些国外的网络是被禁止访问的,也就是我们常说的“墙”。我们可以实现下在国内能否访问一些国外的网站,我们就选一个100%不能访问到的网页,也就是大家经常在深夜点开的网站,我们来ping一下,结果如下:

注意到返回的都是请求超时,也即我们和这个网页是没有链接(这个说法不够严谨,而且我们已经用了多次,但为了方便理解,只能先这样说)的。那么我们如何才能连接到这些外网呢,也就是如何能翻墙呢?这就要用到我们常说的VPN了,也就是我们打游戏的同学常用的加速器的原理。但这项技术是违法的!我们在此不作深入讨论,也并不建议你去翻墙,即使别人都和你说“翻墙才能看到外面的世界”,实际上,大部分人翻了墙也只能看到外面的色情片。

对于一些比较好的外国网站,经常被提及,但是国外网站我们经常访问不了,那么有没有平替呢?这里我给出一些常用的平替网站。

github:这是一个代码仓库,在这里,你可以看到别人写的软件的源代码,也可以把别人的代码下载下来然后在自己的机器上运行。它的平替是国内开发的gitee,这也是一个代码仓库,但只有国内的人在用。但我们目前初学的阶段,大部分情况是用不到把代码存储到云端的,我们大部分只需要从上面获取代码。如果你想获得的是一些简单的代码,有时候CSDN博客网也可以解决你的问题,如果你想获得的是著名的国外开源的代码,可以访问清华大学开源软件镜像站 | Tsinghua Open Source Mirror这个网站搜索下,这是清华大学建设的镜像网站,可以让你在不翻墙的情况下获得大部分国外优秀的开源软件和代码。

Stackoverflow:这是一个问答网站,你提出问题,会有人来帮你解答。一个比较直接的平替是Stackoverflow中文网,他不仅是汉化过的stackoverflow,更重要的是它是在墙内的,我们访问它很方便。此外,CSDN也可以解决大部分你目前阶段的问题。

从上面看来,CSDN似乎是一个万金油,确实如此,这是国内基本上最知名的程序员社区。但是它的大量内容也注定了各个资源的水平参差不齐以及很难找到真正对应自己问题的那个回答,各有利弊,不要完全依赖CSDN,但也不要过分贬低CSDN。

注意,虽然不翻墙很大程度上也减轻了我们学习过程中阅读英语材料的的负担,但作为一个计算机系的学生,英语好还是很重要的,一定要注意自己的英语能力。

到这里,基本上你上大学前所需要的知识也就了解的差不多了,很遗憾我不能给你用专业名词讲清楚,但我想这更应该是你大学期间的工作。

此外,给你一些学习建议。第一,当然英语要注意学,这并不是指你的应试能力,那些实际上不完全代表能力,但是一定要有不怕读英语的魄力;第二,多敲代码,不要只指望着各种实验课和作业中的代码,那个代码量是远远不够的;第三,关于写代码风格的书,可以多看看,不要觉得代码风格无意义,很多时候是很致命的,我曾接受过一个没有任何函数,变量名是从a1到a381的一份代码,简直酸爽;第四,机器学习是好东西,但如果你大部分时间都用于研究机器学习,你就远离了计算机系的初衷了;第五,无论你是哪个专业,只要和计算机相关,都建议你去计科专业蹭下他们在学的课或者自己学一下,尤其是编译原理和汇编语言,多了解一些至少没坏处。

到这里就结束了,祝各位同学大学期间都能顺顺利利,一科不挂!

  • 20
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值