这个问题来自 Quora 网友,题主还补充说:
注:这个问题特指和计算机打交道的技能。
寒假我有一个月的时间,我想学习很多大约一天就能学会的实用技能。我不期望(一天)精通,但有了良好理解后,我能做些基本操作。比如,我想学习如何使用 Eclipse 的调试器,如何创建 makefile,学习一些重要的 Linux 终端命令。
以下的列表是来自Quora网友回复的归纳总结。译者在有些技能下面添加了简明教程与技巧的文章,另外也推荐了一些相关联的简明课程。
技术技能
1)版本控制:Git、Github 和 SVN(链接: Git – Getting Started )
译注:推荐这个交互式的 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)安装 Eclipse
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是一个通过游戏学习编程的站点。另外,这里还有一大波能提高编程技能的游戏。
33)学习如何编辑维基百科的文章,修改语法问题,或依照维基媒体的原则(比如观点中立)来修改
34)学习用 Markdown 写作
35)学习 LaTeX、BibTex 和 pgfplots
36)学习如何在命令行下工作
译注:《每个Linux用户都应该了解的命令行省时技巧》
37)学习 JavaScript (Link: Eloquent JavaScript)
38)如果熟悉 OOP,那可以学习设计模式
译注:《23个设计模式的简明教程》
39)搞个树莓派板子深入研究
非技术的技能
1)搞搞园林
2)酿啤酒(译注:没条件的童鞋,推荐试试酿米酒)
3)体验远离计算机的生活
4)学电焊
5)学打字
6)约会