我的学习工具

在 Github 上修改

今天放假,上午一直在睡觉,下午没什么事。

写一篇文章,记录我自己在学习技术时使用的方法和一些工具。

起因

无聊中翻了翻电脑文件夹,发现了一些和技术相关的零散文件,打开文件编码都有问题。大多都是在大学时期自己瞎学的一些东西,比如 ACM、OpenCV、C#,现在基本都忘了。就拿 C# 来说,在学校的时候,好像是大二,当时比较感兴趣,花了一段时间自学,后面还帮实验室老师做过一个小项目,但是现在什么细节都不记得了,连语言语法都忘记了。

突然觉得有一种特别不划算的感觉,因为之前自己的确花了一些时间学习这些东西,但是现在什么都忘了,也没留下什么资料或笔记,如果现在需要重新学习,又得完完全全重头来一遍。

这样实在不太好,好在 2016 大三下实习期间,我意识到了这一点。

怎么学习一个东西或一样技术?

学习过程中需要做笔记吗?如果需要怎么做?用什么工具?怎么更新、管理、归档这些笔记?

这都是一些比较令人头疼的事情。

一路摸索,或者说改进,我找到了一个比较适合我的方法,仅供参考。

四件套

在我学习的过程中,有 4 个工具必不可少。

  • 搜索引擎 & 豆瓣 & 知乎
  • 云服务器
  • 谷歌浏览器
  • 个人代码仓库

下面分别介绍一下它们的作用。

搜索引擎、豆瓣和知乎

搜索引擎不必多说了,能用 google 就用 google,没有的话 baidubing 也行。

这里我之所以把 豆瓣知乎 和搜索引擎放一起,是因为我把它们当做一个技术搜索引擎。学习某个知识点时,我会先到知乎上搜一下对应的资料,再到豆瓣看一下评分。

知乎上编程大牛挺多的,他们的回答帮助我解决了不少的疑惑。

这里吐槽一下,现在知乎上技术相关的标题党、UC 体也越来越多了,还有很多辣鸡公众号!

当我学习一项新技术时,我会先去搜一下有什么现有的书籍和资料,当然官方文档也挺好,不过大多都是英文的。在我想快速完成环境搭建和最简单的操作测试时,一些现有的书籍和资料往往是一个更好的选择。

云服务器

之前买了一个乞丐版腾讯云服务器(1C1G、T_T),不过大致够用了。刚开始是好奇,想用来搭博客,不过很快就闲置了,后面发现其实可以用来做其他事情,哈哈哈~

现在我主要用来:

  1. 搭建软件服务端,Redis-Server / MySQL-Server…
    • 这样就可以不用污染本地环境,在本地写代码连接服务端进行一些简单的测试了
    • 在公司很多时候也用公司的开发机,配置高一些
  2. 个人代码库
    • 后面会说到,我会把我的个人代码库会 push 到云服务器上,也是一种备份吧
  3. 简单文件服务器
    • 在服务器上放一些文件,个人代码库也在里面,需要的时候用手机浏览器就访问就行了

谷歌浏览器

谷歌浏览器的书签真是个神器,我的书签分了很多目录,我会把平时网上看到的一些有用的资料分类保存到书签。

现在应该有 3000+ 了,虽然大部分都是收藏了不看系列,不过需要的时候真的很有用,想象一下前两天才在网上某个博客看到的内容记不太清了,现在重新搜索却死活也找不着,这多难受啊。

不过它的云端同步不太好用,之前还被坑,现在我会定期备份。

最近换电脑迁移环境又用了下,感觉比之前好用很多了。

个人代码库

代码库对我来说,是最重要的。

学习一项技术的时候,一定要做笔记,也一定要写代码实战,那么这些笔记和代码怎么保存、更新呢?

差不多两年半前,我创建了一个 stu 的代码库(取自 study),我把我所有的代码和笔记都放在这一个代码库里,按不同的技术点划分目录。

  • 配合上 IDEA 全家桶,做笔记 + 写代码如丝般顺滑
  • 配合浏览器书签,可以很方便地找到和某项技术相关的笔记、代码和资料
  • 用 Git 管理 + 云端备份,可以在多台电脑同步,同时也可以很好地进行历史版本追溯

比如作为一个后端 & 大数据程序员👩‍💻,工作中会用到各式各样的存储,这里拿 Redis 举例:

我大概会创建这样的一些目录和文件:

└── data
    ├── note              # 笔记
    │   └── storage       # 存储相关
    │       └── redis
    │           ├── _ref        # redis 相关的一些参考书籍名和文档
    │           ├── internal    # 一些原理性相关的笔记
    │           ├── note        # 一些使用相关的笔记
    │           └── redis       # 和目录同名,redis 环境搭建相关笔记
    └── src               # 代码,这里是 Java,如果是其他语言,创建对应语言适用的目录结构即可
        └── main
            └── java
                └── com.hate13.data.storage
                    └── redis

当然,一些笔记软件也可以大致满足需求,比如印象笔记,不过对代码不太友好。博客也行,不过写博客太耗费时间和精力,且不方便和本地同步(在此佩服网上常写博客的各位大佬)。

不过代码库也有一个明显的缺点,不太方便放一些比较大的(非文本)文件,比如一些截图什么的,这一点还待改进。

截止当前,我的代码库提交了 2437 次,100M 左右,更详细地:

工具推荐

这里还有一些我觉得比较好用的工具,推荐下。

Typora:Markdown 客户端,简洁实用,配合代码库使用

Sublime:我不用它写代码也不用做编辑器,而是当做粘贴板,平时不知道放在哪的临时笔记都放在这里

Microsoft Todo:微软出的 Todo list 软件,免费、简洁、多端同步

DeppL:翻译必备