注:这个问题特指和计算机打交道的技能。

假期我有很长时间,我想学习很多大约一天就能学会的实用技能。我不期望(一天)精通,但有了良好理解后,我能做些基本操作。比如,我想学习如何使用 Eclipse 的调试器,如何创建 makefile,学习一些重要的 Linux 终端命令。

—— 一位国外网友在 Quora 上的提问。

以下是来自 Quora 网友回复的归纳总结。我们在部分技能下面添加了对应的简明教程与技巧的文章(用黄色背景色高亮了)。由于微信无法添加站外链接,阅读简明教程与技巧的文章,请点击最末尾的「阅读原文」。

技术技能

1)版本控制:GitGitHub

注:推荐这个交互式的 Git 入门资源,号称 15 分钟就够了。

2)正则表达式

注:推荐《55分钟学会正则表达式》

3)awk

译注:《「sed & awk」读书笔记之 awk 》

4)sed

注:《「sed & awk」读书笔记之 sed》

5)Grep

6)学习如何用 Vim 做你从来不知道可以这样的事情

译注:推荐阅读《简明 Vim 练级攻略》和《25个Vim教程、视频和资源》

7)做一个爬虫,可以抓取一些网页并能解析一些基本数据

注:向熟悉Python的朋友推荐这个爬虫框架《Scrapy:Python的爬虫框架》,还有这一系列爬虫博文。

8)做一个更大的爬虫,必须填写一到两个表单

9)做一个简单的线性代数库(矩阵、向量、乘法)

10)向上面这个库中增加“奇异值分解” SVD

(注:奇异值分解(singular value decomposition)是线性代数中一种重要的矩阵分解)

11)向这个库中增加矩阵求逆

12)向这个库中增加最小二乘法

13)确保你的库能高效处理稀疏数据

14)学习如何使用 Python 中的列表

注:推荐《快速入门:十分钟学会Python》

15)注册一个 StackOverflow 帐号,学习如何使用该站点

16)阅读你最喜欢编程语言的手册

17)自己实现一个简单的机器学习算法,包括完整的流水线

注:推荐阅读《国外程序员整理的机器学习资源大全》

18)学习如何在 Excel 中做一个简单的线图

19)安装工具,搭建编程环境

20)学习 NoSQL 数据库的基本功能

注:推荐阅读:《8 种 Nosql 数据库系统对比》

21)学习 SQL 的大部分基本功能
注:推荐阅读《经典:十步完全理解 SQL

22)理解 SQL 和 NoSQL 之间的区别(优点、弱点、限制,使用场景,如何使用,为什么,等等)

23)熟悉 Linux 系统

24)学习一到两个排序算法 (比如:快速排序和合并排序)

注:推荐两个资源《VisuAlgo:通过动画学习算法和数据结构》、《旧金山大学数据结构和算法的可视化学习工具》

25)学习 D3.js 库

26)学习给代码做单元测试

27)了解一些 AWS 服务,还有其 API(根据你的语言喜欢来选)

28)基本图论

29)一天一个算法
注:推荐关注这个包括上百篇算法文章的列表。

30)理解分布式处理和分布式数据存储的需求和挑战(basics of CAP Theorem, MapReduce 算法, MySQLPostgreSQL 数据库的集群)

31)具体落实到 Python

  • 仔细阅读 Python 的内置函数,理解如何在命令行玩转这些内置函数
  • 通过遵循Flask 指南或修改 Tornado 示例,来创建一个网站
  • 学习 itertools 模块

32)玩一玩 CheckIO 之类编程游戏网站

注:checkio是一个通过游戏学习编程的站点。另外,同时推荐另外一个寓学于乐的网站CodeCombat 《寓教于乐:教你学编程的 5 款游戏

33)学习如何编辑维基百科的文章,修改语法问题,或依照维基媒体的原则(比如观点中立)来修改

34)学习用 Markdown 写作

35)学习 LaTeX、BibTex 和 pgfplots

36)学习如何在命令行下工作
注:《每个Linux用户都应该了解的命令行省时技巧》

37)学习 JavaScript

38)如果熟悉 OOP,那可以学习设计模式
注:《23个设计模式的简明教程》

39)搞个树莓派板子深入研究

欢迎大家推荐补充实用的 IT 技能,谢谢~

一天能学会的实用 IT 技能