最近的工作中,每天都在频繁地操作服务器。一个月前,还不是很熟悉Linux命令,只是知道常用的一些查询和操作,但是被工作硬逼着去处理事情,慢慢地,熟悉了很多,但还是远远达不到合格的要求。有天晚上躺在床上的时候,突然就想到,如果有机会重新学习计算机,那我会怎么做呢?
最重要的,就是「安装 Linux 操作系统」到自己的电脑上。
为什么?因为我们平常使用的界面操作系统,无论是Windows还是 macOS, 都是有很完备的界面,功能齐全,安装卸载软件、做配置等都是在界面上进行,这样使得我们对于实际上软件的安装、配置还有操作系统做了什么事情,都不太知道。
如果安装Linux,再配置简单的图形化界面,因为常用的聊天工具、输入法、浏览器、WPS等等,都有Linux版本,完全可以完成轻度办公需求。同时,作为开发人员,开发环境又完全是Linux环境,MySQL、Redis、Nginx、IDEA等都可以安装好,这样下来,Linux完全就是一台功能完备的主力机。
如果重新学习计算机,那么从使用Linux开始,就完全走上了和大学期间那样学习计算机课程不一样的方式和方法。不过我不是科班出身,好几门计算机专业课都是自学的,大概都是书本水平,考试能及格就不错了。我从网上看了下「计算机科学与技术」本科专业的课程,果然最重要的还是计算机专业统一考研科目,代号408,科目分别是「数据结构和算法」、「计算机组成原理」、「操作系统」、「和计算机网络」。
Linux的操作,需要在命令行中进行,可以最原生地看到操作系统的逻辑,安装软件,就是解压安装包,配置环境变量、做启动软链接、做自启动,可以很清楚得了解Linux内核的调用顺序和逻辑,并且Linux下一切都是文件,而且是从根目录开始,我们可以很清楚地看到系统文件和配置,因为图形化界面下,操作系统的很多工作都被图形化隐藏了。
从事后台开发工作的话,一定离不来 http,因为这是一切应用层软件的基础,它又是基于TCP协议的。在Linux下,可以很明确地看到 TCP 的配置,TCP建立连接的过程,有三次握手和四次挥手,这就不再是书本上的静态的知识,而是可以亲自上手操作的东西,可以配置各种时长、开关量,这样学起知识来,更高效。
计算机组成原理,也是如此。如果把计算机简化,就是CPU、内存、硬盘、电源、各种IO口,操作系统在上面一层,屏蔽了这些物理逻辑,Linux也可以查询硬件的各种信息,更加丰富和全面。
计算机是一门操作性很强的学科,无论怎么做题和理解理论,都不如实际操作几遍,然后再与理论相结合。
前几天看到这样一句话,「你尽管去学习操作系统、计算机网络、数据结构和算法等最基本的计算机知识,这一些肯定比你的职业生涯更持久」,我理解下来,如果是学习服务器开发,特别是业务系统和软件架构开发,服务器的知识点再深都不为过,至于用的哪一门开发语言和开发框架,只需要精通一门就好了,其他都是万变不离其宗的。
其实现在做也不晚,Linux双系统可以安排安装了~