00 前置说明
这里的工具指的是git,maven,Linux,docker等等技术工具,对使用者无太多的逻辑上的要求,更多的还是常规而且频繁的增删改查之类的操作。
分为短期学习和长期学习
- 短期学习可以常用案例为
xshell7连接ubuntu的终端, - 长期学习则可理解为
将Linux的基础指令到Linux的shell编程和日志整体学习周期。 - 短期学习更考验考验你的一个处理问题流程机制(前提是你有点基础)
从长期视角来看,长期学习学完的东西是自己内化的基础,而短期学习则是对长期学习的一种考察。
个人理解下,学习就是三个方面。理解,记忆,运用
这里的编程指的是以Java为例的ssm -> springBoot -> springCloud的一套语法体系与初级解决问题
分为面对全新体系系统化学习与简单运用
- 面对全新体系系统化学习就是一个张白纸的身份来接受的全新的领域知识,是第一次的相关概念进行接触
- 简单运用是根据已经学习的所形成的问题提醒流程机制来辅助学习,相当于算法形成的流程机制
本文逻辑结构为
01 具体处理
01 工具
01 长期系统学习
01 无基础无概念的情况
面对这种情况,我的建议是先直接跟线上课程(即网课)进行过一遍,先了解怎么使用有什么样的作用效果。然后在详细看一遍实践一遍,并形成相应的知识库(将工具的一些概念或者原理记录以下,最多还是指令的使用,这个更多还是作为一种验收机制,逼迫自己实践一遍,顺便进行相应整理分类,形成自己的体系化)。
还有面对知识性概念的问题,大家可以通过市面上流行的AI以请结合生活具体实例,生动形象地介绍XX来询问
这是个人学习Linux系统的验收流程机制
本人采取Linux系统的体系课程观看两遍的方式来学习
第一次观看核心在于快速知晓概念,理解大概作用
第二次观看并且进行实操,撰写工具使用文档,对知识点加深熟悉并规避纸上谈兵的问题
//第一次观看 -- 由于被纯粹的输入,大脑会放松警惕,常要用问题来提醒自己,
建议看课程的同时时不时看向这个 -- 重点解决概念性的问题
- 它生活化通俗化的概念是什么?有无具体的生活化场景?
- 它有没有可视化的图形运行逻辑?
- 能不能使用写程序的视角来进行思考可能遇到的问题以及解决方案?
- 它配置流程是什么?要配置哪些信息?是否要以通过列表的方式来处理?
- 能不能再观看时候提出相应的问题?观后是否能够解答,不能的话,能否先记录?
===教学验收机制 -- 看完一个概念性视频来解决
- 这个概念是基于什么场景产生出来的?或者是由技术来解决的呢?
- 能不能从脑子中找出3个相似生活场景来解决?-- 尽可能生活化来解决
//第二次观看 -- 根据知识使用频率来做工具知识库(看一次就应该知道知识使用的频率)
- 看不等于会?课程显示的结果不等于自己使用显示的结果?一定要实践出真知(可能存在环境问题)
- 它的使用频率是什么?怎么将它分类,能够更好的使用?
- 它要注意的事项是什么呢?使用时应该前置做些什么?使用过程中应该要提醒自己什么?
- 它使用的逻辑是什么?需不需要整个流程进行记录?
- 自己对哪些知识点掌握不太熟悉?
这是本人体系化学习Linux初级基础指令的文档,可供读者进行参考其排版
事实上,根据个人Java开发需求,我将Linux分为Linux工具库 + Linux问题提醒机制 + Linux安装环境与工具使用
以上理由如下:
- 工具是有时效性的,不同版本的工具可能存在指令不一样。而且书籍的落地需要一段时间,可能等书籍出版后。工具的版本就已经进行变更了。网课内容可以快速跟进最新版本的变化,大家能过学到的是最前沿的知识。
- 书籍是静态文字再加上图片(但这个图片可能很少),学习工具的使用,当输入相应的指令或者操作的时候,应该有个可视化的结果,但是书籍可能限于篇幅限于页数,没有这么多图片。网课的动态演示能降低学习难度,这种直观的视觉效果有助于大家更快掌握技能。
- 网课更容易比书本会结合实际案例进行教学,例如如何搭建Web服务器、配置防火墙等,让大家通过具体的场景来学习Linux系统。
02 有概念但无基础的情况
面对这种情况,我们还是要通过看视频来配置环境,毕竟工具是别人写好的,别人的规则有别人说的算。我们可以通过搜寻使用的大纲,对工具的使用由浅入深。对基础部分进行快速学习与操作,对深化(或者进阶) 还是要选择看视频,毕竟这是别人制定规则下的产物,深化阶段就比如的Linux系统的日志管理等等。
当然,这个阶段可能还存在短期学习的任务。
无论怎样,指令是要敲的,概念是要理解的,文档是要做的
02 面对短期学习
比如你会点Linux的Centos7基础指令,你现在的任务是用xshell7连接ubuntu(Linux系统)的终端。
面对短期学习任务的处理方案
-
明确问题和明确目标
-
收集信息,寻找问题的解决方案
- 线上:博客 + AI + 询问帖子
- 线下:老师 + 同学 + 能用到的资源
-
整理找到的资源,用一个临时文档来记录,进行分类和层次处理,最后推进执行
-
一边执行一边记录处理方案 -- 第二个临时文档
-
成功处理完之后,撰写问题提醒机制(多角度分析和阶段分析)
这是本人处理用xshell7连接ubuntu(Linux系统)的终端查找分析决策实践的具体路径
顺序:
- 打开终端
ctrl + alt + t
- 转化为root账号
sudo su -
- 关闭防火墙
systemctl status ufw.service 查看状态
systemctl stop ufw.service 停止系统防火墙
systemctl disable ufw.service 防火墙不开机自启动
- 将ip地址全部转化为自动的
因为上个实验报告进行修改了 现在恢复原有样子
systemctlrestart NetWorkManager 使IP更改信息生效
- 下载ssh并启动
sudo apt install openssh-server
systemctl start sshd
ip addr 获取本机的ip地址
- 编辑ubuntu的root的ssh配置文件【第一个博客】
vim /etc/ssh/sshd_config
增加LoginGraceTime 2m
增加PermitRootLogin yes
增加StrictModes yes
sudo service ssh restart
- 编辑ubuntu的root的ssh配置文件【第二个博客】
vim /etc/ssh/sshd_config
增加PermitRootLogin yes
重启系统或者sshd服务
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh restart
sudo service ssh restart
- 设置root密码【第三个博客】-- 全部还原 感觉他是错误的
sudo password root
修改 sudo vim /etc/pam.d/gdm-password
修改 sudo vim /etc/pam.d/gdm-autologin
注释 auth required pam_succeed_if.so user != root quiet_success
修改 sudo vim /root/.profile
注释 mesg n 2> /dev/null || true
增加 tty -s && mesg n || true\
sudo service ssh restart
- 出现问题为xshell7连接ssh 被ssh服务器拒绝密码{
【xshell无法连接提示ssh服务器拒绝密码】
是Linux端的问题吗?能确定防火墙关了没?是IP冲突吗?(不懂三种连接网络方式)
经过排除都不是。
是xshell端的问题吗?是连接方式出错了吗?
经过排除,发现是将用户名和主机名进行混淆,应该使用用户名。
}
- xshell进行连接成功
03 深化工具使用与原理
这个方面就是要看具体的需求,如果你只是简单的使用则可以进行跳过,毕竟还有有个岗位是运维岗位,如果从事开发的话,就将简单基础的搞完就行了。
还是从Linux系统举例,与28定理相结合来看,你能自主在Linux系统中下载软件和配置环境来保证自己项目运行就行了。
但是如果你的要求或者兴趣是深化,那么要是做好长期学习的准备。网络上的大部分都是偏简单运用的,这时候你既要在互联网上找到大佬发的精华博客,也要在线下老老实实去读经典书籍,原理方面必读经典书籍
04 如何用工具熟练处理问题
本质上需要大量的进行练习,并在练习之中进行整理分类复盘自己 的工具知识库,但可参考算法练习中所形成的问题提醒机制来快速提高自己的处理能力。具体参考我之前写的做力扣算法逐渐形成的流程机制一文
问题提醒机制 + 工具使用知识库+ 面对短期任务处理方案就行了
所谓问题提醒机制也不过是在长期实践之中,犯得错误和形成使用经验转化为一个个检测流程,同时陈述语句不宜激起自己的思考,那么将陈述语句转化为问题,来使自己提高积极性,主动走完自己制定的整个流程
所谓工具使用知识库不过是在长期使用中所形成可复用的具体步骤,可复用的具体经验,说白了就是减少重复单一的思考实践,把它记录下来,会就是会了,没必要
02 编程
01 理解层面
采用两遍学习来进行学习,但每次学习是反问和详细逻辑记录
- 第一次观看 -- 专注宏观与作用,以及部分代码的详细逻辑
理解中 -- 通过资料的学习进行处理
//概念问题
- 这个概念是基于什么场景产生出来的?这个问题产生的原因是什么?
- 基于这个问题,假如你写程序,你会怎么做?
- 他的生活化的概念是什么?有没有生活具体化的场景?
//处理逻辑
- 如果是宏观处理逻辑流程,能不能用可视化的图形流程图进行描述呢?
或者能不能通过列表来描写要做的事情呢?
- 如果是详细处理逻辑流程,那他大概的作用是什么呢?
他的大概逻辑是什么吗,可以用代码进行描述吗?
//要做的事情 -- 知道概念 + 有大概详细逻辑 + 使用先后顺序
- 将概念问题生动形象化,写在文档
- 将长度短的代码进行记录,将长度长的代码采用伪代码进行逻辑描述,
搞清楚代码的作用是什么并记录出来,写在文档
- 将工具下载与使用的先后顺序进行记录,但不要过于详细,只将关键节点进行记录,写在文档
理解后 -- 通过一轮学习再进行验证
//概念问题
- 如果概念是个问题,那是由哪个技术来解决的呢?
- 能不能从自己的脑中找出3个类似或者相似概念的生活场景来解决问题呢?
//处理逻辑
- 撰写代码的逻辑顺序是什么?应该要注意些什么?能不能简单形成知识点问题提醒机制?
- 如何在实践时候进行根据频率或者分类模块来处理?
//要做的事情
- 编写模块的基本宏观流程 + 常规性知识问题提醒机制
- 第二次观看 -- 全面细致的进行验证,尤其工具的使用与环境的配置,形成问题提醒机制和工具知识库
//要做的事情
- 一次性记录:详细记录工具下载,尤其是环境配置和修改及其配置。
- 进一步优化模块的基本宏观流程 + 常规性知识问题提醒机制
- 跟教程完整配置一个环境, 跟着撰写同样的一份代码, 进行结果验证,
是否会得到相同一个结果,在这个过程中出现错误,则可以形成自己的测试方向机制
- 根据频率并结合第一遍观看所形成的文档来详细撰写好知识文档(为了方便制作后续的知识模板数据库)
02 记忆层面
记忆就是在理解的前提下,多看多用
//初学
- 对于第二次观看的所形成知识文档多看,加深大脑的印象。
- 并将代码
- 代码方面不能只是看,更应该是敲,哪怕是伪代码,重点是思维是实践中形成,
而非看出来,实践才能逐步发现自己的问题
//复习 -- 对于这个知识点起码基本熟悉差不多了
- 那就将知识点添加到自己的知识点问题机制
03 运用层面
01 一个场景
一个场景 -- 做一个算法题的全过程
- 那我们要分清楚题目要求是什么,他到底要我干些什么? (在工程里面我们叫做需求分析)
- 了解了我们要做些什么,那我要拿出的具体的思维解决方案。那怎么拿出具体的思维解决方案呢?如果不能一下子想出来,那我们就遍历所有的知识点一个一个试出来。
- 假设能解决的前提下,那么具体步骤具体代码是什么?如果自己一下子写不出来的前提下,那可以回顾以前写的代码。
- 如果编写成功的话,编译通过的话,那么我们要考虑我们代码遇到其他情况能不能也给出其他的情况。
- 如果编写不成功的话,那就是要寻找解决方案,寻找解决方案的话,这个过程跟上面所提到的工具类短期学习一样
02 解决方案
所谓问题提醒机制也不过是在长期实践之中,犯得错误和形成使用经验转化为一个个检测流程,同时陈述语句不宜激起自己的思考,那么将陈述语句转化为问题,来使自己提高积极性,主动走完自己制定的整个流程
分析问题是什么
- 大问题可以分解为许多小问题 把小问题具体化
针对这个问题的思维解决方案 --
- 知识性的问题提醒机制
(带有数据方向)
- 编写模块的基本宏观流程 +
- 常规性知识问题提醒机制 +
- 知识模板数据库
==》编写成功的话
- 测试问题提醒机制 +
- 优化代码的问题提醒机制
==》编写没成功的话
- 寻找解决方案,进入工具短期学习工作方式
02 版本迭代
第一版为2025年3月15日写的 搭建一个相对简陋的知识框架
第二版为2025年3月24日写的 优化相关排版,使其可读性增强。增加可视化结构和举例相关案例
第三版为2025年3月28日开始提笔,于2025年4月2日结束。个人的spring体系第一遍过完了,加入Java初级编程学习经验,完善个人的学习体系,结合做事的流程机制,更加系统化进行学习。