计算机的能力与人的能力是相对应的,在很大程度上说都有着无限的可能。有些知识和技能是基础,如果只是用一下,可以以一种方式学习,掌握起来很快也不难。另一种是在广泛了解的基础上,再做融会贯通,这就需要花时间了,而且常常是需要在这其中浸泡若干年的时间,无目的地漫游,方能在机缘满足时,开悟一二。
现代生活大家消费快餐,那不妨从以下这些方面着手。即使了解不透,也可以先种下个种子,在将来退休以后,手边有一些可以玩味的东西,而且这个内容足够大,以容纳你无论多么长的余生。
技术技能
1)版本控制:Git、Github 和 SVN(链接:?Git – Getting Started?)
译注:推荐这个交互式的 Git 入门资源,号称 15 分钟就够了。入门课程推荐《版本管理工具介绍—Git篇》和《版本管理工具介绍—SVN篇》。
>这个是一定要学习 的,无论你是不是程序员,在所有的文档工作中,GIT可以帮你建立起文档的历史记录。
2)正则表达式
译注:推荐《55分钟学会正则表达式》
>这是人与计算机思维的相互妥协。如果说要提高人和机器的沟通效率,这个是基础了。
3)AWK
译注:《「sed & awk」读书笔记之 awk?》
>用了这些工具,你才明白Linux与windows的区别。才知道为什么命令行不但不可怕,还是真正高效的生产生活工具。
4)sed
译注:《「sed & awk」读书笔记之 sed》
5)Grep
6)学习如何用 Vim 做你从来不知道可以这样的事情
译注:推荐阅读《简明Vim练级攻略》和《25个Vim教程、视频和资源》
这是大神级的工具之一,另一个,呵呵,当然是EMACS。
7)做一个爬虫,可以抓取一些网页并能解析一些基本数据
译注:向熟悉Python的朋友推荐这个爬虫框架《Scrapy:Python的爬虫框架》和一篇入门教程《Scrapy 轻松定制网络爬虫》
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 系统译注:推荐课程《Linux Guide for Developers》、《Linux达人养成计划 I》和《Linux达人养成计划 II》
24)学习一到两个排序算法。(快速排序和合并排序)
译注:推荐两个资源《VisuAlgo:通过动画学习算法和数据结构》、《旧金山大学数据结构和算法的可视化学习工具》
25)学习 D3.js 库
译注:推荐课程《使用D3制作图表》
26)学习给代码做单元测试
27)了解一些 AWS 服务,还有其 API(根据你的语言喜欢来选)
28)基本图论
29)一天一个算法译注:推荐关注这个包括上百篇算法文章的列表。
30)理解分布式处理和分布式数据存储的需求和挑战(basics of CAP Theorem, MapReduce 算法, MySQL 或 PostgreSQL 数据库的集群)
31)具体落实到 Python译注:推荐《Python入门》
仔细阅读 Python 的内置函数,理解如何在命令行玩转这些内置函数通过遵循Flask 指南或修改 Tornado 示例,来创建一个网站学习 itertools 模块
32)玩一玩?CheckIO
译注:checkio是一个通过游戏学习编程的站点。另外,同时推荐另外一个寓学于乐的网站CodeCombat
33)学习如何编辑维基百科的文章,修改语法问题,或依照维基媒体的原则(比如观点中立)来修改
34)学习用?Markdown?写作
35)学习 LaTeX、BibTex 和 pgfplots
36)学习如何在命令行下工作译注:《每个Linux用户都应该了解的命令行省时技巧》
37)学习 JavaScript (Link:?Eloquent JavaScript)译注:推荐两门免费的课程《JavaScript入门篇》和《JavaScript进阶篇》
38)如果熟悉 OOP,那可以学习设计模式译注:《23个设计模式的简明教程》
39)搞个树莓派板子深入研究
非技术的技能
1)搞搞园林
2)酿啤酒(译注:没条件的童鞋,推荐试试酿米酒)
3)体验远离计算机的生活
4)学电焊
5)学打字
相关文章:
你感兴趣的文章:
- 高维数据的降维与可视化
- 人机界面的设计过程注意事项
- PS与AI结合快速把人物图片转为简洁可爱的卡通画效果
- 如何嫁接路由器
- Valgrind–Linux下的内存调试和代码解剖工具
- 多地控制一盏灯电路图 看了就明白