注:这个问题特指和计算机打交道的技能。
假期我有很长时间,我想学习很多大约一天就能学会的实用技能。我不期望(一天)精通,但有了良好理解后,我能做些基本操作。比如,我想学习如何使用 Eclipse 的调试器,如何创建 makefile,学习一些重要的 Linux 终端命令。
—— 一位国外网友在 Quora 上的提问。
以下是来自 Quora 网友回复的归纳总结。我们在部分技能下面添加了对应的简明教程与技巧的文章(用黄色背景色高亮了)。由于微信无法添加站外链接,阅读简明教程与技巧的文章,请点击最末尾的「阅读原文」。
技术技能
注:推荐这个交互式的 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 算法, MySQL 或 PostgreSQL 数据库的集群)
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 技能,谢谢~