# 部分 JD
在学习过程中,找到自己感兴趣的方向很重要,其决定了你未来深耕的道路。可通过研读各个企业的招聘信息来决定自己未来的学习方向,并将其记录下来,作为自己的学习参照。
# 工程化基础
# 常用工具
事实上,这个模块所提及的工具基本可以在课程计算机教育中缺失的一课中见到。下面归档我个人认为对我帮助很大的几个资源。
# Linux 操作系统
# OverTheWire: Bandit
这个教程旨在通过 hack 游戏的方式使初学者了解 Linux 系统的各种常用命令,形式上类似于 CTF (Capture the Flag),即通过某些手段获取远程主机上的某个关键信息以通过关卡。同时,这个教程的网址根目录上还有许多其他有意思的 **wargames(网络对抗)** 小游戏可供学习品鉴😋。
# Git(分布式版本控制系统)
Git 与 Linux 均出自荷兰程序员 Linus Torvalds 之手。Git 是 Linus 为了帮助管理 Linux 内核开发而开发的一个版本控制软件(据说是他本人嫌弃当时现有的版本控制工具不好用,然后就自己搞了一个,大佬就是这么任性)。Git 在项目标准化中的作用是不言而喻的,由于其开源以及高性能的特性,Git 已经成为广泛运用于各种项目的版本控制利器。对于工程化的学习,Git 是必不可少的。
# Learn Git Branch
与 OverTheWire: Bandit 相同,旨在通过关卡游戏的方式让初学者了解 Git 的各种命令。不同的是,这个教程制作了精美的图形界面,将 Git 的各种命令通过生动形象的动画展示出来,使人能够更加深入理解不同命令的作用效果。正如进入网页后教程的欢迎辞所言,这是我目前所见过的 “最好的 Git 教程”。
- 教程网址:Learn Git Branching
# Vim(基于命令行的文本编辑器)
绝大多数人在刚开始接触 Vim 时会被其 “反人类” 的设计所折磨,但我想说的是,当你真正掌握 vim 的正确打开方式时,你会发现你在使用它写文档 / 代码时,双手几乎可以不用离开键盘。以我为例,尽管我更喜欢使用 vscode 作为我的代码编辑器,但我仍然为它装载了 Vim 模式的插件
下面直接引用编辑器(Vim) | the missing semester of your cs education 中的一段话来作推荐 Vim 的理由:
在编程的时候,你会把大量时间花在阅读 / 编辑而不是在写代码上。所以,Vim 是一个 多模态 编辑 器:它对于插入文字和操纵文字有不同的模式。Vim 是可编程的(可以使用 Vimscript 或者像 Python 一样的其他程序语言),Vim 的接口本身也是一个程序语言:键入操作(以及其助记名) 是命令,这些命令也是可组合的。Vim 避免了使用鼠标,因为那样太慢了;Vim 甚至避免用 上下左右键因为那样需要太多的手指移动。这样的设计哲学使得 Vim 成为了一个能跟上你思维速度的编辑器。
# 编辑器(Vim)| MIT missing semester
你说的对,但它确实讲解的挺全面的,从基本操作到自定义扩展,再到进阶操作,应有尽有。
# 辅助文档
这时文档型教程的作用就体现出来了。使用得当,它也能单方面提高学习效率,而不是拉低学习效果。
为了提高效率,对它使用文档型教程吧!
- 文档网址:Linux vi/vim | 菜鸟教程