学习目的

很简单的考虑,最近在各大招聘网站上找工作,发现多数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的学习路线,都是大致的,从来没有人说有正确的路。那好吧!按照我学习计算编程的路线开始,简单点:

  1. 了解现有的Linux发布版本及主要生态系统;
  2. 找一本入门书籍,选择一个Linux版本,了解Linux操作系统的安装和使用(文件管理、I/O、网络配置、软件安装);
  3. 学习并理解Linux提供的文本编辑、编译、调试、并发机制、网络编程、多媒体接口、shell
  4. 不断重复实践与应用……
  5. 谨记学习的目的是解决问题,而不是遇到问题就停止了。

查找资料的时候看到一句话,记得比较清楚,“你可以在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章,想想内容多数都是概述性质的,不过作为入门资料可以参考,了解大致框架,知道接下来从哪个方向突破。

遇到问题的解决方法

本部分内容会链接到我的其他文章,并简单归类。

我的Linux学习之路及参考书籍的更多相关文章

  1. Linux学习之路-Linux-at及cron命令【7】---20171215

    Linux学习之路-Linux-at及cron命令[7]---20171215 DannyExia000人评论986人阅读2017-12-24 17:28:03   ntpdate 命令 [root@ ...

  2. Linux学习之路(一)

    导语: 早前为了方便日常开发,建立跟生产环境类型的环境的时候考虑使用docker作为模拟生产环境,结果没想到给自己的学习挖了一个大坑.其他关于docker容器技术的坑先不在这里赘述,有时间的话在其他文 ...

  3. PHP开发者的Linux学习之路

    谈起一个高效动态网站的构建,那就不得不提到LAMP,即Linux操作系统.Apache网络服务器.Mysql数据库.Perl.PHP或Python编程语言等开源产品所组成的网站架构框架,其最大的优势是 ...

  4. 新手小白的Linux学习之路

    大家好,我是一个零基础的新手小白,在此和大家分享一下新手小白的学习之路.欢迎各位大神指教!谢谢 Linux简介: Linux操作系统诞生于1991年10月,由芬兰赫尔辛基大学的在校生Linus Tor ...

  5. Linux学习之路--常用命令讲解

    Linux常用命令讲解 1.命令格式:命令 [-选项]  [参数] 超级用户的提示符是# 一般用户的提示符是$ 如:ls -la /usr说明: 大部分命令遵从该格式多个选项时,可以一起写 eg:ls ...

  6. Linux学习之路—磁盘分区

    1.各硬件设备在Linux中的文件名 在Linux系统中,每个设备都被当做一个文件来对待,同时在Linux系统中,几乎所有的硬件设备文件都在/dev这个目录中. 设备 设备在Linux内的文件名 ID ...

  7. Linux学习之路—Linux的历史发展

    1.1969年以前:一个伟大的梦想-Bell,MIT与GE的"Multics"系统 由于早期的计算机不想现在这样普遍,所以往往出现这样的情况,主机只有一台而多人等待使用.好在20世 ...

  8. linux 学习之路

    很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...

  9. Linux学习之路一计算机是如何工作的

    初次接触MOOC课堂,里面有个很牛X的老师教Linux,恰好自己有兴趣学,顾有了此系列学习博文. 第一讲   计算机是如何工作的 学习Linux,涉及到了C语言和汇编以及操作系统的知识,顾第一讲要讲讲 ...

随机推荐

  1. JavaScript Cookies,创建,获取cookies value

    什么是cookie? cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScript 来创建和取回 cookie ...

  2. 树莓派进阶之路 (025) - ubuntu下使用VNC连接树莓派raspberry(转)

    转载:http://www.embbnux.com/2014/03/24/on_ubuntu_use_vnc_connect_raspberry/ ‎ 参考:  http://elinux.org/R ...

  3. Rplidar学习(一)—— 开发套件初识

    一.简介 RPLIDAR A1 开发套装包含了方便用户对 RPLIDAR A1 进行性能评估和早期开发所需的配套工具. 用户只需要将 RPLIDAR A1 模组与 PC 机连接,即可在配套的评估软件中 ...

  4. React(0.13) 组件的组合使用

    <html> <head> <title>组件的组合调用</title> <script src="build_0.13/react.m ...

  5. Cal Cat for Mac(猫咪控日历工具)安装

    1.软件简介    Cal Cat 是 macOS 系统上一款猫咪控日历工具,可以将系统内置的日历工具美化成猫咪风格的日历,超级可爱的猫咪可是猫咪控的最爱了,喜欢的朋友快快用上吧. 加州猫是一个桌面集 ...

  6. tomcat默认密码,admin,manager密码需要自己设置,tomcat-users.xml

    <?xml   version='1.0'   encoding='utf-8'?> <tomcat-users> <role   rolename="tomc ...

  7. MySQL -- 全文检索(自然语言全文检索)

    自然语言全文本检索缺省或者modifier被设置为in natural language mode,都是进行自然语言检索.对于表中的每一行,match()都会返回一个关联值. mysql> CR ...

  8. error nr.1045 access denied for user 'root'@'localhost' (using passwd:no)

    在windows上卸载了mysql,再次重新安装的时候运行失败,并报以下错误: 解决办法: 1.服务里面停止Mysql服务. 2.卸载Mysql,删除MySQL的安装目录. 3.此外还要删除以下目录的 ...

  9. 压缩跟踪(CT)代码具体学习_模块1(样本的採集和扩充)

    本章主要具体解释的是compressive tracking框架中的第一部分:样本的採集和扩充部分. 在開始代码学习的前面,你须要知道的理论知识參见论文:Real-time Compressive T ...

  10. Sublime Text增加Build system类型,打造一个全能IDE

    Sublime text2是一款非常方便的文本编辑器,现在我基本上不用IDE去编写代码,一般都是在Sublime text2中编辑,当然,这里无法执行.debug是软肋,于是上网找了下资料,可以把添加 ...