学习目的

很简单的考虑,最近在各大招聘网站上找工作,发现多数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. Python面向对象几个知识点

    一.判断对象是否属于类.判断类是否派生自某个类 class Zero: pass class One(Zero): pass class Two(One, Zero): pass # 判断对象是否完全 ...

  2. 获取可用的处理器(CPU)核数【转】

    linux下获取cpu核数,sysconf(_SC_NPROCESSORS_CONF),,, from:红黑联盟,https://www.2cto.com/kf/201210/164480.html ...

  3. ubuntu 51单片机环境搭建方法

    首先下载个sdcc 1: sudo apt-get install sdcc 2: sudo apt-get install libvte-dev3: 安装 gSTC-ISP 下载地址:http:// ...

  4. CSS中详解height属性

    目录结构: contents structure [+] hight属性值类型一览表 height的%的使用 定义 实例 需要注意的 参考文章 hight属性值类型一览表 value describt ...

  5. 【MySQL】MySQL之浅谈MySQL的存储引擎

    什么是MySql数据库 通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合.     我们通常说的MySql数据库,sql server数据库等 ...

  6. Intellij使用-- 导入Eclipse的代码格式化文件

    目录[-] 方法 安装插件: 配置插件: 使用插件 测试 对于一个团队来说,使用统一的代码格式是非常重要的,否则在使用版本控制工具时,会出现大量的冲突.在Eclipse里,我们可以通过一些xml来进行 ...

  7. mongoDB 32位 安装包地址

    https://www.mongodb.org/dl/win32/i386 http://downloads.mongodb.org/win32/mongodb-win32-i386-3.2.4-si ...

  8. 一步一步掌握java的线程机制(一)----创建线程

    现在将1年前写的有关线程的文章再重新看了一遍,发现过去的自己还是照本宣科,毕竟是刚学java的人,就想将java的精髓之一---线程进制掌握到手,还是有点难度.等到自己已经是编程一年级生了,还是无法将 ...

  9. JavaScript监听手机物理返回键的两种解决方法

    JavaScript没有监听物理返回键的API,所以只能使用 popstate 事件监听. 有两个解决办法: 1.返回到指定的页面 pushHistory(); window.addEventList ...

  10. hdu-2045 递归

    #include <cstdio> #include <iostream> using namespace std; long long a[55] = {0,3,6}; lo ...