Linux的学习之路
https://www.cnblogs.com/tocy/p/learning_linux_route.html
学习目的
很简单的考虑,最近在各大招聘网站上找工作,发现多数c/c++开发职位都需要Linux开发经验,让我很苦恼,因为Linux我到目前为止知之甚少,知道Linux的概念,也在大学期间了解过一段时间,但是没坚持住,放弃了。到现在我能在Linux下用的只有GCC、C++、SDL、FFmpeg,为了一个更好的职业道路,近期准备投入点精力:
- 了解下Linux,并能够用Linux完成c++软件开发工作。
- 学习开源的思想和商业运作模式。
说了这么多,先记录下我近期了解到的内容。(2015-09-19)
通过查找网上关于Linux的介绍资料,最起码我先回答我的学习Linux初衷在哪里。
Why? 为什么要学习Linux? Linux能做什么?
为什么要学习Linux?
为什么学Linux,每个人都有自己的理由:
- Linux是免费的不用花一分钱,能够节约大笔的成本;
- Linux是开源的,你可以根据自已的需要修改源代码;
- Linux是开放的,有广泛的社区,关于Linux的讨论要远远高于windows操作系统;
- 学习Linux可以更好的掌握计算机技术;
- Linux是未来发展的趋势,服务器,手机,掌上电脑,平板机很多都采用Linux操作系统;
- Linux有非常多的发行版本,你可以根据需要做出不同的选择;
- Linux让你多了一个选择,而且Linux下的病毒相比Window可以忽略不计;
- Linux是一种自由哲学,一种开源的信仰;
- 最后Linux很好玩,让人着迷……。
Linux能做什么?
- 世界上最快的超级计算机90%以上都使用Linux或类似操作系统,说明Linux速度快;
- 而且简装的Linux(如LFS)估计也是特别适合老机器了;
- 如果你听说过Android的话,你就会知道Linux将广泛应用于平板电脑和手机;
- 如果你体验过Chorme OS,Google doc,或者WebQQ的话,你会觉得操作方式有点仿Linux;
- 还有很多软件一般都是现出类-Unix版本,然后才出Window版本;
- Linux下很多软件都是跨平台的,反之Window则不是;
- Linux在Web上的优势,也将会在WebOS,云时代得到充分迸发……。
以上内容参考Linux学习进阶路线图。
How? 怎么学习Linux?
为了回答这个问题,百度了下Linux的学习路线,都是大致的,从来没有人说有正确的路。那好吧!按照我学习计算编程的路线开始,简单点:
- 了解现有的Linux发布版本及主要生态系统;
- 找一本入门书籍,选择一个Linux版本,了解Linux操作系统的安装和使用(文件管理、I/O、网络配置、软件安装);
- 学习并理解Linux提供的文本编辑、编译、调试、并发机制、网络编程、多媒体接口、shell
- 不断重复实践与应用……
- 谨记学习的目的是解决问题,而不是遇到问题就停止了。
查找资料的时候看到一句话,记得比较清楚,“你可以在Linux下完成除了游戏娱乐之外的所有功能”。当然,Linux也有其缺点,这个慢慢总结,知道就好。我一直信奉一句话“择其善者而从之,择其不善者而改之”,善用工具,扬长避短,当你达到“知其然,知其所以然”的时候,就可以了。
Where? 量化学习目标
不忘初心,方得始终。所以,不管我们知识面多么有限,记得给自己一个明确的、可度量的目标。我现在主要关注四个方向:
- c/c++/asm
- 音视频编解码、渲染
- 性能分析及优化
- 云计算、虚拟化、互联网
只有通过不断的学习和深入,才有可能在某个方向上有所突破和发展,目前的技术趋势也是这个样子的,写代码的人很多,但专业技术人员依然短缺。
参考书籍
注意本部分内容会按照我的学习路线持续、随时更新。
操作系统入门篇
鸟哥的私房菜:Linux基础学习篇(第三版)
要是可以联网的话,建议阅读网页版的,鸟哥的 Linux 私房菜 -- 基础学习篇目录,因为上面有大量的链接可以直接跳转,相对pdf的更加方便。
鸟哥的书偏重Linux系统管理,有兴趣可以看看。
有一点,台湾的英文翻译跟大陆这边很不同,概念上比较容易混淆。
"Running Linux" 《LINUX权威指南》
书不错,写的很全面也比较广,涉及的不深,做为入门书籍不错,可以比较全面的了解linux。目前可以找到的比较多的是第三版的,还有第四版、第五版英文版的。(2000年-2005年的书籍,版本有些过时,但是内容可以借鉴)
“The Definitive Guide to CentOS” 《CentOS权威指南》
CentOS官方第一本关于CentOS 5的介绍书籍,内容跟Running Linux差不多,就是针对CentOS平台上介绍。(只找到英文版的,中文版的没看到)
《Linux入门很简单》
刘金鹏著,基本介绍内容跟前面的基本差不多,不过是中文版的,特别推荐最后一部分关于GCC、GDB、configure、autoconfig的比喻,非常恰当,也让我整清楚这几个部分的关系。
《Linux从入门到精通(第2版)》
清华大学出版社,国内主推的Linux入门书籍,说实话,精通的内容很少,因为全书不到500页,却有29章,想想内容多数都是概述性质的,不过作为入门资料可以参考,了解大致框架,知道接下来从哪个方向突破。
遇到问题的解决方法
本部分内容会链接到我的其他文章,并简单归类。