标签 学习 下的文章

当一个妻子教丈夫一些新技能的时候,他们都学到了比期待更多的东西。

2019 年是我们 Cherry 家学习的一年。我是一个喜欢学习新技术的高级软件工程师,并把学到的内容一起教给了我的丈夫 Chris。通过教给他一些我学到的东西,并让他全程经历我的技术演练文章,我帮助 Chris 学习到了新技术,使他能够将自己的职业生涯更深入地转向技术领域。而我学习到了新的方法,使我的演练和培训材料更易于让读者理解。

在这篇文章中,我们来讨论一下我们各自和彼此学习到了什么东西,然后探讨这对于我们的未来有何影响。

向学生的提问

Jess: Chris,是什么导致你想深入学习我的领域的技能呢?

Chris: 主要目的是为了让我事业更进一步。作为一个网络工程师的经历告诉我,现在的网络专家已经不像以前一样有价值了,我必须掌握更多的知识。由于网络经常被认为是造成这些天程序中断或出错的原因,我想从开发人员的角度了解更多关于编写应用程序的知识,以便于了解它们如何依赖网络资源。

Jess: 我首先教你什么内容?你从中学到什么?

Chris: 首先是从学习除此安装 Linux 系统开始的,之后又安装了 Ansible。只要硬件兼容,我用过的每一个 Linux 发行版都很容易安装,但可能会出现个别不兼容的情况。这就意味着我有时候第一手学习到的是如何解决系统安装过程的最初 5 分钟出现的问题了(这个我最喜欢了)。Ansible 给了一个我学习使用软件管理器来安装程序的理由。当程序安装完成后,通过查看 yum 安装的程序,我快速了解了程序管理器是如何处理程序的依赖项的,因此,用 Python 编写的 Ansible 能够在我的系统运行。自此之后,我开始使用 Ansible 来安装各种各样的程序。

Jessica: 你喜欢我这种教学方式不?

Chris: 我们一开始有过争吵,直到我们弄清楚了我喜欢的学习方式,你也知道了应该怎样为我提供最好的学习方式。在一开始的时候,我很难跟上你讲的内容。例如,当你说“一个码头工人集装箱”的时候,我完全不知道你在讲什么。比较早的时候,我的回答就是“这是一个集装箱”,然而当时这对我来说,完全没有意义。当你对这些内容进行一些更深入的讲解后,才让学习更有趣。

Jess: 老实说,这对我来说也是一个重要的教训。在你之前,我从来没有教过在这个技术领域知识比我少的人,所以你帮助我认识到我需要解释更多细节。我也得说声谢谢。

当你通过这几个学习步骤的时候,你觉得我的这篇测试文章怎样呢?

Chris: 就我个人而言,我认为这很容易,但我错了。在我主要学习的内容中,比如你介绍的Vagrant,它在不同的 Linux 发行版间的变化比我想像的要多。操作系统的变化会影响设置的方式、运行都要求和特定的命令。这看起来比我用的网络设备变化更大。这让我花费更多的精力去查看这些说明是对应我的系统还是其它的系统(有时候很难知道)。在这学习路上,我似乎碰到很多问题。

Jess: 我每天都会遇到各种各样的问题,所以对我来说日常就是用各种方法解决各种问题。

向老师的提问

Chris: Jess,你将来教我的方式会有所改变吗?

Jess: 我想让你像我一样读多一些书。通过翻阅书籍来学习新技术。每天起床后一小时和睡觉前一小时我都会看书,花费一个星期左右我就能看一到两本书。我也会创建为期两周的任务计划来实践我从书本中学习到的技能。这是除了我一天中第一个小时在喝大量咖啡时读到的科技文章之外的。当我考虑到你的职业发展目标的时候,我认为除了我们谈到的优秀博客文章和文章之外,书籍是一个重要的元素。我觉得我的阅读量使我保持进步,如果你也这么做了,你也会很快赶上我的。

Chris: 那么学生有没有教过老师呢?

Jess: 我在你那里学习到耐心。举个例子,当你完成了安装 Ansible 的时候,我问你下一步要怎样操作的时候。你直接回复我,“不知道”,这不是我想让你学习到的内容。所以我改变了策略,现在在逐步安装任何组件之前,我们将详细讨论你想要实现的目标。当我们在写 Vagrant 文章的时候,我们一起进行相应的演示操作,我以创建它时就牢记目标,因此我们就有一些需要马上实现的目标。

这实际上对我在工作中的培训方式产生了巨大的改变。现在我在大家学习的过程中会问更多问题,并更多地进行手把手讲解。我更愿意坐下来仔细检查,确保有人明白我在说什么和我们在做什么。这是我之前从来没有做过的。

我们一起学到了什么

做为一对夫妇,在这一年的技术合作中我们的技术都有所增长。

Chris: 我对自己学到的东西感到震惊。通过一年课程学习,我认识了新操作系统、如何使用 API、使用 Ansible 部署 Web 应用和使用 Vagrant 启动虚拟机器。我还学习到了文档可以让生活变得更好,所以我也会尝试去写一写。然而,在这个工作领域,操作并不总是被记录在案,所以我学会了准备好处理棘手的问题,并记录如何解决它们。

Jess: 除了我在教你中学到的知识外,我还专注于学习 Kubernetes 在云环境中的应用知识。这包括部署策略、Kubernetes API 的复杂度、创建我自己的容器,并对环境进行加密处理。我还节省了探索的时间:研究了 serverless 的代码、AI 模型、Python 和以图形方式显示热图。对于我来说,这一年也很充足。

我们下一个目标是什么?现在还不知道,但我可以向你保证,我们将会继续进行分享它。


via: https://opensource.com/article/20/2/linux-love-language

作者:Christopher Cherry 选题:lujun9972 译者:sndnvaps 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

编程初学者可能都思考过这个问题,“我该怎么学编程?”这里我们提供些相关的参考指导来帮助你找到最适合自己学习情况和学习需要的方法。

最近有很多关于学习编程的争论。不仅仅是因为与软件开发公司公开的待应聘的职位数量相比较符合招聘要求的人远远无法满足缺口,编程也是工资最高工作满足感最强的众多职业之一。也难怪越来越多的人都想进入这个行业。

但是你要怎么做才能正确地入行呢?“我应该怎么学习编程?”是初学者常见的一个问题。尽管我没有这些问题的全部答案,但是我希望这篇文章能够给你提供相关指导来帮助你找到最适合你的需求和自身情况发展的解决办法。

你的学习方式是什么?

在你开始学习编程之前,你需要考虑的不仅仅是你的方向选择,还要更多的考虑下你自己。古罗马人有句谚语, γνῶθι σεαυτόν gnothi seauton ,意思是“认识你自己”。投入到一个大型的编程学习过程中难度不小。足够的自我认识是非常有必要的,这能够确保你做出的选择通向成功的机会非常大。你需要思考并诚实地回答接下来的这些问题:

  • 你最喜欢什么样的学习方式?怎么做你才能学到最好?是通过阅读的方式吗?还是听讲座?还是主要通过动手实践?你需要选择对你最有效的方法。不要仅仅因为这种学习方法流行或者有其他人说过这种方法对他们很有用就选择了这种方法。
  • 你的需要和要求是什么?你为什么想学习如何编程?是因为你只是想换一份工作吗?如果是这样的话,你需要多次时间才能完成呢?你要牢记,这些是需要的 ,不是想要的 。你可能想要下周就换份新工作,但是需要在接下来的一年里供养你正在成长的家庭。当你在人生的道路上面临方向的抉择时,时间的安排特别重要。
  • 你能获取的参考资料有哪些?当然,重返大学并获得一份计算机科学专业的学位证书可能也不错,但是你必须对你自己实事求是面对现实。你的生活必须和你学习相适应。你能承受花费几个月的时间和不菲的费用去参加集训吗?你是否生活在一个可以提供学习机会的地方,比如提供技术性的聚会或者大学课程?你能获取到的参考资料会对你的学习过程产生巨大的影响。在打算学编程换工作前先调查好这些。

选择一门编程语言

当你打算开始你的编程学习之路和考虑你的选择的时候,请记住不管其他人说什么,选择哪门编程语言来开始你的编程学习关系不大。是的,是有些编程语言比其他的更流行。比如,根据一份调查研究,目前 JavaScript,Java,PHP, 和 Python 处于 最受欢迎最流行的编程 中的前排。但是现在正流行的编程语言有可能过几年就过时了,所以不用太纠结编程语言的选择。像那些方法,类,函数,条件,控制流程和其他的编程的概念思想等等,不管你选的哪门编程语言,它们的底层原理基本是一致的。只有语法和社区的最佳实践会变。因此你能够用 Perl 学习编程,也可以用 Swift 或者 Rust。作为一个程序员,你会在你的职业生涯里用很多不同的编程语言来工作。不要认为你被困在了编程语言的选择上。

试水

除非你已经涉足过这个行业或者确信你愿意花费你生命的剩余时光来编程,我建议你最好还是下水之前先用脚趾头来试试水温之类的来判断这水适不适合。这种工作不是每个人都能做的。在把全部希望都压在学习编程之前,你可以先尝试花费少量时间金钱来学习一小部分知识点来了解自己是否会享受这种每周起码花费 40 个小时来编码工作的生活。如果你不喜欢这种工作,你不太可能完成编程项目的学习。即便你完成结束了编程的学习阶段,你也会在你以后的编程工作中感到无比痛苦。人生苦短就不要花费你人生三分之一的时间来做你不喜欢的事了。 

谢天谢地,软件开发不仅仅需要编程。熟悉编程概念和理解软件是怎么和他们结合在一起的是非常有用的,但是你不需要成为一个程序员也能在软件开发行业中找到一份报酬不菲的工作。在软件开发过程中,另外的重要角色有技术文档撰写人、项目经理、产品经理、测试人员、设计人员、用户体验设计者、运维/系统管理员和数据科学家等。软件成功的启动需要很多角色之间相互配合。不要觉得学习了编程就要求你成为一个程序员。你需要探索你的选择并确定哪个选择才是最适合你的。

参考的学习资料

你对学习参考资料的选择是什么?可能正如你已经发现的那样,可供选择的参考资料非常多,尽管在你的那片区域不是所有的资料都能够获得。

  • 训练营:最近这几年像 App AcademyBloc 这样的训练营越来越流行。训练营通常收费 $10K 或者更多,他们宣称在几周内就能够把一个学生培训成一个称职的程序员。在参加编程集训营前,你需要研究下你将要学习的项目能确保正如它所承诺的那样,在学生学完毕业后能够找到一个高薪的长期供职的职位。一方面花费了数目不小的钱财,而且时间也花费了不少——通常这些都是典型的全日制课程并且要求学生在接下来的连续几周里把其它的事先放在一边专心课程学习。然而时间金钱这两项不菲的消耗通常会使很多未来的程序员无法参加训练营。
  • 社区学院/职业培训中心:社区学院常常被那些调研自己学习编程的方式的人所忽视,不得不说这些人该为自己对社区学院的忽视感到羞愧。你在社区学院或者职业培训中心能够接受到的教育是和你选择其他方式学习编程的学习效果一样有效,而且费用也不高。
  • 国家/地方的培训项目:许多地区都认识到在他们的地区增加技术投资的经济效益,并且已经制定了培训计划来培养受过良好教育和准备好的劳动力。培训项目的案例包括了 Code OregonMinneapolis TechHire。检查下你的州、省或自治区是否提供这样的项目。
  • 在线训练:许多公司和组织都提供在线技术培训项目。比如,Linux 基金会致力于通过开源技术使人们获得成功。其他的像 O'Reilly MediaLynda.comCoursera 在软件开发涉及的许多方面提供培训。Codecademy 提供对编程概念的在线介绍。每个项目的成本会有所不同,但大多数项目会允许你在你的日程安排中学习。
  • MOOC:在过去的几年里,大规模开放在线课程的发展势头已经很好了。像 哈佛斯坦福MIT 和其他的一些世界一流大学他们一直在记录他们的课程,并免费提供在线课程。课程的自我指导性质可能并不适合所有人,但可利用的材料使这成为一个有价值的学习选择。
  • 专业书籍:许多人喜欢用书自学。这是相当经济的,在初步学习阶段后提供了现成的参考资料。尽管你可以通过像 SafariAmazon 这样的在线服务订购和访问图书,但是也不要忘了检查你本地的公共图书馆。

网络支持

无论你选择哪一种学习资源,有网络支持都将获得更大的成功。与他人分享你的经历和挑战可以帮助你保持动力,同时为你提供一个放心的地方去问那些你可能还没有足够自信到其他地方去问的问题。许多城镇都有当地的用户群聚在一起讨论和学习软件技术。通常你可以在 Meetup.com 这里找到。专门的兴趣小组,比如 Women Who CodeCode2040,在大多数城市地区经常举行会议和黑客马拉松活动,这是在你学习的时候结识并建立一个支持网络的很好的方式。一些软件会议举办“黑客日”,在那里你可以遇到有经验的软件开发人员,他们能够帮助你解决你所困扰的一些问题。例如,每年的 PyCon 会议都会提供几天的时间来让人们聚集在一起工作、研讨。一些项目,比如 BeeWare,使用这些短暂的时间来帮助新程序员学习和对这些项目做贡献。

你的网络支持不需要来自正式的聚会。一个小的学习小组可以有效地保持你的学习积极性,并且可以像在你最喜欢的社交网络上发布邀请一样容易形成。如果你生活在一个没有大量软件开发人员社区所支持的聚会和用户组的地区,那么这一点特别有用。

开始学习编程的几个步骤

简单的来说,既然你决定学习编程,可以参考这几个方法给自己一个尽可能成功的机会:

  1. 将你的需要/需求和参考学习资料列出清单并进行收集
  2. 搜寻在你的当地那里能够可用的选择
  3. 放弃不能符合你的需求和参考学习资料的选择
  4. 选择最符合你需求的和最适合你的学习参考资源
  5. 找到一个能够得到支持的网络

务必牢记:你的学习过程永远不会结束。高速发展的软件产业,会导致新技术和新进展几乎每天都会出现。一旦你学会了编程,你就必须花时间去学习适应这些新的进步。你不能依靠你的工作来为你提供这种培训。只有你自己负责自己的职业发展,所以如果你想保持最新的技术和工作能力,你必须紧跟行业最新的技术。

祝你好运!


作者简介:

VM (Vicky) Brasseur - VM (aka Vicky) 是一个技术人员,也是项目、工作进程、产品和企业的经理。在她的长达 18 年的科技行业里,她曾是一名分析师、程序员、产品经理、软件工程经理和软件工程总监。目前,她是惠普企业上游开源开发团队的高级工程经理。她的博客是 anonymoushash.vmbrasseur.com,推特是 @vmbrasseur。 


via: https://opensource.com/article/17/4/how-get-started-learning-program

作者:VM (Vicky) Brasseur 译者:WangYueScream 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

当我们告别 2016 时,也到时间定下我们的 新年决心 了。不管你身为 Linux 系统管理员的经验水平如何,我们认为,制定接下来 12 个月的成长目标是很值得的。

如果你还没什么想法,我们将会在这篇文章分享 10 个简单的专业提升决心,你可以为 2017 年考虑一下。

1、 决定更自动化

你没必要忙得像头无头苍蝇,每天忙于解决可预见的问题。如果你发现自己每天都花费时间在执行重复的任务,你有必要现在就停下来。

在了解了所有基于 Linux 而且开源的工具后,你可以尽可能地自动化你的 Linux 任务来给自己一些休闲的时间。

你会发现,接下来的几个决心会帮你在工作上朝着这个目标前进。所以继续看下去吧。

2、 学习一门新的脚本语言

虽然每一个系统管理员应该熟练地使用 Bash 写脚本,但考虑一下其它更现代化、健壮性更强的工具也是很重要的,例如 Python。

不要只是相信我们说的话 —— 看看不久前我们发布的两篇关于 Python 的系列文章。你将会意识到,与其它语言相比,Python 带来了面向对象编程的力量,使您写出更短、健壮性更强的脚本。

3、 学习一门新的编程语言

除了学习一门新的脚本语言,(你也可以)决定花费点时间来开始学习或者提升你的编程技能。不确定从何处开始?今年的 Stackoverflow 开发者调查表明 Javascript 连续第三年引领最流行语言的榜单。

其他经典例如 Java 和 C 也值得考虑。

4、 注册一个 Github 账户并且定期更新

特别是如果你是一个编程新手,你应该考虑一下在 Github 上展示你的成果。通过允许别人去复刻你的脚本或者程序,你就能提高知识水平,并通过别人的帮助创造出更复杂的软件。

《如何安装和注册 Github 帐号》一文中了解更多。

5、 向一个开源项目做贡献

在 Github 上向一个开源项目做贡献,这是另一个学习或者提高一门新脚本语言或者编程语言能力的好办法。

如果这吸引到了你的兴趣,点击 Explore Github 页面。这里你能按热度或者编程语言浏览仓库,你能在这里面找到一些有趣的事情来做。

在此基础上,你将因回馈社区而获得满足感。

6、 每月尝试一个新的发行版

经常会有新的发行版或者分支出现,你有不同的选项以供选择。谁知道你梦想中的发行版是否就在近前,而你还没发现它?每个月去一次 Distrowatch 然后选择一个新的发行版。

如果你想要尝试一个新的发行版,希望我们的评论能帮你做出决定。也可以点击我们这里关于最好的 Linux 发行版的文章:

7、 参加一个 Linux 或者开源会议。

如果你住在由 Linux 基金会赞助的会议举办地附近,我强烈建议你去参加会议。

这不仅将会给你一个提高 Linux 知识的机会,而且将是个见见其他开源专家的机会。

8、 从 Linux 基金会的免费或付费课程中学习

Linux 基金会分别通过 edX.org 和他们自己的门户,不断地提供免费或付费课程。

免费课程的话题包括(但不仅限于)Linux 介绍、云基础设施技术介绍和 OpenStack 介绍。

另一方面,付费课程包括 LFCS 认证 和 LFCE 认证考试的准备,给开发者的 Linux ,内核内部构件,Linux 安全,性能试验,高可用性及其他。

另外,他们对企业课程有折扣,所以尝试去说服你上司来为你和你同事的训练付费。还有,也会提供周期性的免费在线研讨会,所以别忘了订阅他们的 newsletters!

你也可以考虑下看看我们最棒的在线 Linux 训练课程

9、 每周在 Linux 论坛上回答特定数量的问题

另一个回馈社区的好方法是帮助那些刚开始使用 Linux 的人。你将会发现网上的 Linux 论坛上有许多人正在寻找着答复。

牢记你曾经也是像他们那样是个新手,试着换位思考。

10、 教一个孩子或少年使用 Linux

如果我能回到 20 年前,我希望我能有台电脑,有个能在青年时学习 Linux 的机会。

我也希望我能比当年还早很多地开始编程。毫无疑问,这样事情就会简单许多。我认为给孩子和青年教授至少是基础的 Linux 和编程技巧(我对我的孩子这样做)是个重要的尝试。

教育成长中的一代如何有效地使用开源技术将会给他们选择的自由,而他们会因此永远感激你。

总结

在这篇文章里我们分享了 10 个适合系统管理员的可能新年决心。我们祝你在朝着目标的工作顺顺利利,希望你能在 2017 年成为我们网站的常客。

如果你有关于这篇文章的问题或者评论,请不要犹豫使用下面的表格提交。我们期待着收到您的信息。


作者简介:

Gabriel Cánepa 是个 GNU/Linux 系统管理员和网页开发者,他来自阿根廷圣路易斯的 Villa Mercedes 。他供职于全球领先的消费品公司,享受在日常工作的方方面面使用 FOSS(自由及开源软件) 工具来提高生产效率。.


via: http://www.tecmint.com/linux-system-administrators-new-years-resolutions-ideas/

作者:Gabriel Cánepa 译者:ypingcn 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

为何要学习 Linux?

这个问题可能困扰着很多 Linux 初学者和爱好者,其实我也说不上来为何要学习 Linux,可能最实在的理由就是----Linux 相关工作岗位很多。在“见到” Linux 的第一面并不会感觉到此物有多么惊艳和神奇,但经历了漫长的学习和接触之后,你会发现它是如此的让人神往和愉悦。

那么,如何才能学好Linux呢?

第一、抱着良好的心态去学习

学习 Linux 一定要保持一个良好的心态,切忌怀疑自己的学习方向和成果。

拿我自己的经验来说,我学 Linux 是因为要比赛,学习 Linux 成了我每天的任务,就像“出租车司机每天一起床就欠200百元钱”一样。苦于学校没有专业的老师,只好一心扑在“圣贤书”之上,在经历了半年的强制学习和强制灌输,我产生了严重的自我怀疑:“学习 Linux 有什么用?那么多命令记到死啊?还比什么赛,干脆退赛完事”。这些不良的情绪直接阻碍了我学习的动力和效率,但试问这世间有什么是容易的呢?还记得你敲出的第一条命令在一个“黑漆漆”的窗口中显示了什么样的神迹吗?学习 Linux 绝非是件易事,但请不要怀疑你自己的方向和成果,你所付出的终将会给丰厚的回报。

“善终若始,则无败势”这句话就总结了我上面说的一些乱七八糟的话,如果一件事情结束的时候你还能保持像你开始那样心态的话,那么你将立于不败之地。

这一段最后补充一个小的问题吧,不要纠结去学习哪个 Linux 发行版,其实从任何一个发行版开始你的学习之旅都是一样的。

第二、合适的学习方式和教材

上面也说了,笔者最开始学习 Linux 的时候纯自学,经历了“鸟哥”的厚重,以及 Linux 从入门到“进坑”,各种各样的书籍和视频充斥着我本来就不太大的脑容量。说实话《鸟哥的 Linux 私房菜》是一本特别好的书,清晰明了、幽默风趣,但因为此书“厚如砖头”以及目前 Linux 的版本情况,所以不太推荐初学者拿此书系统的学习 Linux。当然如果第四版出了还是赶紧拜读一下的好(听说第四版今年就会引入到大陆了)。

又扯了一堆废话,那么来个明确的问题,选择视频还是书籍?

很多初学者比较倾向于找一些视频教程来看,其实这真是极好的,但是你得找一些质量高、口碑好,最好是一些大型培训机构内部的视频。但是请不要一直依赖视频,毕竟视频除了没有互动之外,跟上课一样的,所以看视频的唯一缺点就是学习成本的增加,这个成本包括了取得费用和时间成本,所以在你什么都不懂而且看书看“懵逼”的时候先看看视频吧。当你把 Linux 基础命令用熟练了,理解简单的服务原理并可以独立配置简单的服务的时候,那么就去看书吧!看书可以大大的节省你的时间、金钱成本。

看什么书?我个人比较推荐初学者去系统学习刘遄老师的《Linux就该这么学》这本书。作为一名从业7年的运维高手,刘遄老师的书籍里每一章的主题非常明确,章节内容也很精练简洁,每个章节最后都会有一些小的练习题和思考题,可以让新手更快、更好的理解和掌握每一章的知识。我自己用了3个月通读了一番,受益匪浅(而且免费)。

当然萝卜白菜各有所爱,选择什么样的学习方式和学习教材对每个人来说都是不一样的,就跟谈恋爱一样,没有最好只有最合适。

第三、不要抵触“无聊”的英语

英语无聊吗?楼主目前还在学校学习,经常可以听到一些放弃英语的朋友们说“我们是中国人,干嘛要学英语”,我就提提不吐槽了。

基本上你学习 Linux 或者使用 Linux 一段时间以后,你会发现与其说是学习 Linux 操作系统,还不如说是学习如何阅读英文呢。比如初期我们使用英文基本是在“找男人”的时候用的,当然这个 man 是个金发碧眼的“猛男”,你跟他说中文?我敢保证他能打死你。:D

随着知识的深入,你可能会需要经常去搜索一些资料,当度娘不能满足你的时候,你还得去找另一个男人---谷哥。你跟谷哥讲中文当然是可以的,但是有时候谷哥会用中文含蓄的跟你表达“我这里资料还是太少了,你去我哥哥(英文谷哥)那问问?” 试问此时如果你不会用英文描述你的问题,或者看不懂外国牛人的回答,那时候真的有种想拿豆腐撞死自己的冲动。

拿一朋友的例子来说,他就属于那种宁可背命令、背参数、背配置格式,也不愿意多记点单词的家伙。但我们仔细分析一下,假如我背了200个在 man 文档中经常出现的单词,通过这200个单词我可以猜测大多数的英文段落的意思,我还用背那些“毫无生机”的命令和参数吗?而且说实话,语言的学习是非常有意思的一件事情。

第四、找到乐趣以及伙伴

能从枯燥的学习中找到属于自己的乐趣,这是一件很幸福的事情。楼主在学习的过程中经常会产生一些天马行空的想法,类似于“这样行不行?那样做好不好?如果我这样做会产生什么样的效果?”这种想法总会让我非常急切的去试一试,虽然结果可能跟你的想象相差甚远。甚至这些问题度娘都能告诉你,但我就是喜欢自己动手尝试所带来的“快感”。当然所谓的乐趣也是相对于个人而言的,有些人把尝试新东西当做乐趣,每一次成功输出所产生的小小的成就感也可以是乐趣,当然还有一些恶趣味不是吗?

找到小伙伴也是一件很重要的事情,楼主在刚学习 Linux 的时候有好多同学、学弟学妹在同一屋檐下学习,彼此竞争、彼此帮助,每个人都能得到长足的进步。当然其实这里我想说的是找个已经学会或者从事 Linux 的朋友,当你不会的时候有个人可以帮你,这样会省掉很多查资料、翻文档的时间。

什么?“那些高手都不理我”。

亲,我推荐你先检查自己问问题的态度。楼主在长期混迹的 QQ 群中经常见到一些初学者会提问一些问题,在得到回答后连句感谢的话都没有就默默的潜水了,甚至经常看到那种得不到响应就破口大骂的。天哪,谁欠你的吗?OK,自己的态度没问题之后,那么你可以怀疑那些高手是否名副其实,真正的高手永远乐于分享并且伴着强烈的“开源精神”。当然有时候那些大神仅仅会抛出一句“方向”性的回答,但有时候这种答案才是真正优秀的答案,会帮你理清前进道路上的很多岔口。

第五、多动手实践

这一段其实真的没必要多说,上面介绍了我自己的 Linux 学习经历和学习方法,这些都是有差异性的,但永恒的不变的是“熟能生巧”这四个字,学好 Linux 绝非一朝一夕之事,时间、知识的积累一定可以将你推上顶峰。

作者:じòぴé→尐俽 , PHILO (@看见微软我就跑), 服部半藏(@服部半藏ly

大神们凭借他们的远见卓识和不懈努力,创造了广袤的自由世界,我们希望提供一张经过验证的地图,让新接触自由世界的人可以免于无谓的迷茫,又不至于过于详细而失去探索的乐趣。文中所列技能可能需要点亮前置技能才可学习,我们会尽可能的指出,另外,本文后出现的技能可能依赖前面的技能。

我们竭力使本文完善,如果有需要修改的地方,请提交补丁,我们会尽快合并。作者们怀着慢慢的善意,写下这篇文章,并不代表他们自信自己无所不知、对未来的每一项预见都是正确的,我们希望你不迷信本文的任何一个字,包括华丽的分割线。

当然,如果您再学习的路上感觉比较孤单,也可以加入到我们这里加入我们共同探讨,共同进步。提出意见,改良文档。群:55958311

计算机小白

本段主要讲解Ubuntu基本操作和计算机相关的基本知识,看完之后应该满足日常使用,如上网、听音乐等。

你好,小白,Ubuntu适用群体

尽管有这样或者那样不实的传闻,说Ubuntu如何简单,Linux如何高端,开源精神如何伟大,软件的自由对人类的自由如何重要。但是作为用户,更应该关心软件是否丰富,日常使用的主要还是QQ、Office、中文输入法、LOL等工具,这些在Ubuntu之下都没有良好的解决方案。所以,目前Ubuntu只适用于研究人员和程序员。

你好,小白,硬件

土豪君,如果你想买一台新的笔记本电脑,建议选择配置:

  • 集成显卡就可以,因为linux对独立显卡的支持还不够好,即使未来有所改善也用不到,原因是你没有游戏可以玩
  • 尽量使用SSD,机械硬盘也可以,但是SSD比较快,能够提高工作效率,这里就不为三爽840 pro打广告了。

如果你已经有一台电脑,希望你有

  • 主流的配置,再也不要问我你有一台32MB内存的电脑,该怎么安装Linux据说Linux很省资源之类的了,手机都2G内存了

你好,小白,CPU位数

CPU根据型号不同,通常分为32位和64位,2005年之后的CPU一般都是支持64位的,64位的CPU可以管理4G以上的内存。如果你的电脑内存不足4G,建议选择32位版本的操作系统,否则应该使用64位的。

关于PAE

虽然4g以上的Linux系统可以使用PAE内核来实现更高的内存容量兼容,但是性能是关键,如果您运行的关键程序是32bit的并且必须在32bit平台上运行这种情况下建议选择,否则可以通过安装32libs来实现程序的运行。

你好,小白,发行版选择

Linux是操作系统的内核,搭配不同的软件包、桌面环境,才可以制作成为现代意义的操作系统。我们推荐最新的Ubuntu桌面版,理由如下

  1. Ubuntu桌面版提供更新、更全的软件仓库,无论是开发还是科研,这样可以节约大量的时间
  2. Ubuntu提供软件商店,并且有很多合作伙伴,你可以用上官方版本的WPS、Steam等
  3. Ubuntu默认的桌面环境Unity对笔记本很友好,小小的笔记本屏幕可以展示更多的东西
  4. Ubuntu14.04版本非常稳定
  5. Ubuntu桌面版用户量非常大,搞不定的问题可以方便的在Google、Stackoverflow、Ubuntu中文论坛等地方找到答案,注意,百度的答案鱼龙混杂,大多数是坑爹的

如果你是服务器用户,我们推荐最新的Ubuntu服务器版,理由如下

  1. Ubuntu服务器市场占有率世界第一,有搞不定的问题可以Google到
  2. 提供众多的软件包,可以节约大量的编译时间
  3. 对日益普及的云服务支持非常好,无论是Hadoop还是Stackoverflow,当然还有Docker
  4. 非常稳定

你好,小白,操作系统安装

操作系统的安装并不简单,在电脑城价值50到100人民币之间,如果你只有一台电脑,希望安装双系统,就更困难一点。

我们不推荐用户靠自己摸索如何安装操作系统,这是一项过时非常快的技术,不值得投入大量的时间。我们推荐的安装方式有

  • 找师兄师姐或者本地的社区提供帮助,如果你长的足够漂亮,这样肯定没有问题,如果不是,请继续往下看
  • 使用wubi安装,但是这种方式有些过时,不推荐使用
  • 使用官方提供的U盘制作工具,制作U盘启动盘安装

我们不推荐的安装方式有

  • easyBCD,我们群经常会有很多小白看到百度贴吧的这一神器,然后安装失败
  • 硬盘安装,过程非常复杂,买个U盘好吗
  • 虚拟机,由于Ubuntu桌面使用了硬件加速,在虚拟机运行的效果并不好,是的,你的电脑20核、64G内存分给虚拟机一半都没用,如果你坚持,我们推荐VMware,开源免费的Virtual Box效果更差一些

PS:在另外一种情况下虚拟机是被推荐的,并且推荐Virtual Box。

非生产环境服务器 没有安装图形界面 学习比较复杂的环境配置 学习硬盘管理

你好,小白,命令行

截止到这里我们假设你已经安装好了操作系统,并顺利进入了界面,如果没有,请认真审视操作系统安装中建议找别人帮忙那一条。

我们不推荐命令行,除非你对操作系统很熟悉并且知道你在干嘛。尤其不推荐从百度随便贴几行命令,然后执行管理员权限,多数情况下,你会毁掉操作系统。

你好,小白,网络连接

截止到这里我们假设你已经安装好了操作系统,并且顺利的进入了桌面。(没错,这是前置依赖的声明)接下来让我们连上互联网吧。

  • 已经配置好路由器或者无线路由器,并且使用DHCP服务(就是你的手机、windows系统不需要设置什么东西,连上就能上的那种),插上网线或者点右上角的网络图标选择无线热点,就可以连上互联网了
  • 直接连猫需要DSL拨号上网,你需要点击右上角网络图标,点编辑,在弹出的页面中添加DSL连接,顺便补一句,如果你是家庭用户,并且你周围没有Ubuntu用户,请重新审视Ubuntu适用群体那一段
  • 锐捷等各种客户端再MenTOHust项目中提供了支持。

FAQ(我们经常回答的问题)

  • 有线网络环境,请再三确认网线已经插上并且闪呀闪呀的
  • 无线网络环境,不要紧张,请再三确认自己已经打开无线网卡(就是你没有在windows下面把无线网卡关了或者把无线网卡的硬件开关关了)。如果确定已经打开,请连上有线网,继续往下看到驱动那一节。

你好,小白,下载源

截止到这里我们假设你已经连上了互联网。

软件源是一个放着各种各样软件的服务器,我们需要连上它,从上面下载一个列表,列表里面记载着它上面有哪些软件。现在,点击左侧面板的软件中心的图标。打开编辑菜单,找到最下面的软件源菜单,打开,在弹出的页面中选择一个国内的源,并且把其它软件列的勾全部去掉(因为我们在天朝,有些服务器连不上)。该过程可能需要输入密码,原因继续往下看。

之后,软件中心就会多出一个Progress的图标,表示正在下载软件列表,该过程中如果发现错误,可以尝试在终端(点桌面左上角那个写轮眼图标,在弹出的框里搜索,跟Mac的Finder很相似)执行

sudo apt-get update

查看错误信息。

FAQ:

  • Hashxxx mismatch,通常使因为你的网络提供商缓存了过期的信息,常见于小的提供商如长城宽带等,没有好的解决方案。

你好,小白,语言包

截止到这里我们假设你已经设置了软件源并且下载了软件列表。接下来,会弹出提示,让你安装语言包。你也可以在设置,语言里面安装。

你好,小白,系统更新

在下载软件列表之后还会提示你安装更新,实际上,Ubuntu会定期的从你配置的软件源下载软件列表,然后跟本地版本对比,看是否需要更新。你可以执行

sudo apt-get upgrade

手动完成

你好,小白,驱动

截止到这里我们假设你已经安装完系统更新,如果你可以顺利的连上无线网络,并且没有独立显卡,可以跳过本段。

打开软件中心,找到编辑菜单,软件源选项,然后打开,在弹出的页面中找到附加驱动,选择经过验证的(后面会标明tested)驱动,安装。

FAQ:

  • 手动下载的硬件提供商提供的驱动,黑屏了怎么办?不知道哎

你好,小白,输入法

截止到这里我们假设你已经开机并且安装了语言包。

推荐的输入法有两种:

  • 系统自带的,点击桌面右上角的键盘图标,添加Pinyin输入法
  • 搜狗拼音输入法,安装之后,同样添加sogou pinyin

你好,小白,软件安装

截至到这里我们假设你已经连上了互联网并下载了软件列表。推荐的软件方式有

  • 软件中心,里面的软件多数是经过验证的,还有一个评分可供参考

其它的安装方式:

  • 下载deb包安装,下载对应版本(32或者64)位的,请注意这种安装方式可能破坏系统的依赖关系
  • sh安装文件安装,不推荐
  • 压缩包直接拷贝到指定目录,不推荐,确实需要请继续往后看
  • 编译安装,极度不推荐,确实需要请继续往后看
参考前提:您是新手

你好,小白,文本编辑器

截止到这里我们假设你已经安装了输入法。我们推荐的文本编辑器有

  • gedit(Text Editor),在桌面左上角搜索就可以看到,简单易用
  • sublime3,官方目前不支持中文输入,如果你是程序员,你肯定喜欢它。另外,它是收费软件,而且很贵
  • vim,在软件中心搜索vim即可安装,使用方式参考《a byte of vim》,该书对vim的讲解非常详细,后半部分可能有些过时。还可以参阅vim自带的手册,在终端输入

vimtutor

你好,小白,浏览器

我们推荐的浏览器有

  • chrome,内置flash播放器
  • firefox,系统自带,具有更好的扩展性,界面跟Ubuntu更搭

你好,小白,音乐播放器

我们推荐的音乐播放器有

  • Rhythmbox,系统自带,界面可能不符合windows用户的习惯
  • 豆瓣fm,有很多有有意思的频道

你好,小白,支付

目前可用的支付方式有

  • 支付宝,包括手机客户端的二维码支付和桌面版的插件,桌面版插件安装请继续往下看到sh文件安装

你好,小白,解压缩

ubuntu对常见的格式支持的非常好,双击即可打开压缩文件,如果缺乏对应的库系统会提示安装。

你好,小白,磁盘管理

推荐的磁盘管理工具有

  • gparted,在软件中心下载安装,谨慎使用

你好,小白,Office

推荐的Office工具有

  • WPS,下载deb包双击安装即可。
  • 自带的LibreOffice,勉强可用

你好,小白,图片处理

推荐的图片编辑工具

  • GIMP,从软件中心下载,具体的使用教程请参考Photoshop教程的视频,另外官方网站也提供了详细的说明。
  • InkScape 从软件中心下载,具体使用网上有很多教程,全矢量化处理,非常好用。

你好,小白,3D动画

推荐的3D制作工具

  • Blender,从软件中心下载

你好,小白,QQ

QQ长期不支持Linux,推荐使用

不太推荐的有:

FAQ:

  • QQ不好用怎么办?不知道。

你好,小白,wine

极度不建议。 原因:不稳定

你好,小白,且容老夫来补一刀吧

Ubuntu软件丰富(仅仅对开发者和研究人员而言)

进阶小白

本段包含一些进阶的操作,我想普通用户并不太需要这些。

你好,进阶小白,权限管理

Ubuntu默认的不是管理员权限,执行安装软件等操作时需要输入你的密码。

你好,进阶小白,新立得软件包管理

在软件中心有一个更强大的包管理工具,非常不建议小白使用,尤其是处女座。

你好,进阶小白,FTP上传下载

建议使用软件:

  • FileZilla,从软件中心下载。

你好,进阶小白,文件系统

百科详细解释 Linux介绍中的解释

你好,进阶小白,文件权限

我们认为对此最好的解释

你好,进阶小白,command

只需要看一眼常用命令就行了,百度一大把。

你好,进阶小白,make

主要分为automake的安装参考大神文档 另外最近还有一个cmake火起来了。参考大神文档

计算机相关书单

本段写给有志于讲编程作为全职工作或者工作中大量使用编程的人。不同语言之间没有明确的依赖关系,同一种语言书目之间有从易到难的关系。

得益于上个世界对语言的研究,人类发现不需要使用机器码(010101010001)编程,可以使用类似于自然语言的人造语言编写程序,然后经由计算机翻译成机器语言。根据不同的人爱好不同,语言经常被分为强类型、弱类型,解释型、编译型,对象导向的、过程导向的、函数导向的等等。这些语言相互影响,相互学习,每几年会有一个新的标准(比如C++99和C++11差异就非常大)。

我们建议你多学几种(这个就跟恋爱一样,只有初恋比较青涩,之后越来越顺,一马平川,虽然女孩子分为很多类型),一方面,在不同的场景你需要不同的女孩子,啊,不,计算机语言(比如操作系统用C写,网页交互用JavaScript)。另一方面,特定的计算机语言本身限定了你的表达方式,多了解它们的区别有利于打开思路。

很多编程的教材都类似于五步画马法,我们更希望提供适合自学的,没有各种各样的坑,不需要丰富的想象力脑补就可以学会的书单。

五部画马法

从上到下依次看,C

C语言经历了漫长的演化,现在的它已经不是以前的样子了,但是它仍然适合做你的第一或者第二任女友,啊,不对,计算机语言。所有C语言已经42岁了所以已经不是女神了的思想都是异端邪说。

我们推荐的书:

从上到下依次看,Python

Python简单易用,非常适合带来你的初吻,啊,不,跟计算机的第一次接触,但是有两个非常不一样的标准,python 2和python 3,鉴于本文写于2014年中旬,我们推荐python 3。

我们推荐的书:

我们不推荐的书:

从上到下依次看,算法

在有了基本的语法之后,我们仍然需要一种方式把基本的语法组织在一起解决实际问题,这时候你就需要算法了。

我们推荐的书:

  • 《编程之美》,标题过于夸张,实际上主要讲了一些很有意思的算法
  • 《数学之美》,没有标题的那么夸张,但是不妨花一个下午看一下。
  • 《算法导论》,非常厚,但是很值得花时间看完,虽然很多计算语言自带一套标准库实现了很多算法,但是对算法的掌握依然很重要。

我们不推荐的书:

从上到下依次看,设计模式

世界上本没有这种程序的写法,写多了也便有了这么多种设计模式。

  • 《 Head First Design Patterns》,head first系列最好的几本书之一,讲的很清楚,代码使用Java。
  • 《大话设计模式》,大话系列最好的几本书之一,编程语言使用C#,相对于上一本行文略显不通畅,但是所有的设计模式都讲全了。
  • 《设计模式》,代码使用C++和SmallTalk编写,微言大义,非常适合买一本放在书架上。

从上到下依次看,C++

本段假设你已经会基本的C语法(但是C和C++是两种不同的语言),C++的程序员很贵,因为它非常复杂,在看完以下书单之前,我们不推荐你在简历上写“精通C++”。

我们推荐的书:

从上到下依次看,Java

Java是一门用途广泛的语言,当然本次我们只针对java语言来说,没有针对web跟安卓来讲。

我们推荐的书:

我们不推荐的书:

从上到下依次看,Golang

Golang是google推出的服务器编程语言,对多线程支持非常好。

我们推荐的书(其实写的都不是特别好,只是目前可以找到的书非常少):

我们不推荐的书:

从上到下依次看,JavaScript

JavaScript是Html5钦定的脚本语言,在后端也有广泛的用途。

我们推荐的书:

  • 《JavaScript语言精粹》,它介绍了作者认为比较好用的JavaScript功能的一个子集合,表述方式可能并不易懂,但是讲的很不错。
  • 《JavaScript权威指南》,全面的Javascript语法书,很多地方讲的并不清楚,比如面向对象的部分。

我们不推荐的书:

从上到下依次看,git

git是一个强大的分布式版本管理工具,功能强大。

我们推荐的书:

从上到下依次看,操作系统

每天都有很多新手发问,我想深入学习一下Linux,需要看哪一方面的书,有人会推荐一本厚厚的命令手册,我更喜欢推荐操作系统的书。

我们推荐的书:

  • 《现代操作系统》,作者很牛气,该书不难但是相当的厚。而且看完之后会让人感觉脑洞大开

从上到下依次看,网络

我们推荐的书:

从上到下依次看,数据库

受作者的领域所限,推荐的数据库类型非常少,欢迎补充。

我们推荐的书:

从上到下依次看,硬件及汇编

我们推荐的书:

从上到下依次看,编译原理

编译原理虽然日常工作用不到,但是看完了可以知道计算机语言怎么变成机器语言的。

我们推荐的书:

从上到下依次看,项目管理

我们推荐的书:

不属于以上类别的书

作者:夜域诡士

我曾经看过一篇电影,里面是这样说的,你如果要想理解一个人的想法,那就他做什么,你也做什么.我也曾经问过别人怎么才能学好Linux内核,大多数回答是买本教材仔细研究,但我认为这是不够的,我认为至少要做一下介绍的一个才算是高手(你只需要会C和汇编就好了)

方法一:编写你自己的操作系统

有的人认为这可能是疯狂的想法,这貌似是很厉害的人物才会去做。其实不然,也不需要你做多么强大功能,就算你的系统只能看一张图片,那么我也同样的恭喜你,你成功了。即使你自己写的系统功能不是很强大,但它足以说明你对Linux内核理解的程度已经是相当不错了。这个方法也许是四种方法中最难的,也是最快的,最有效的

方法二:编写写一些内核模块!

这个想法比起上一个要显示很多,如果你已经再用Linux了,那么你编写一个内核模块是相当的容易,即便是你写了一个模块,让它打印出“hell ”到内核日志上,他的代码量是相当少的,基本上只需要写一个简单的进程和一个简单的函数,就可以搞定的事情。如果你去尝试它,并且成功了,那么我们也会恭喜你。编写一定功能的内核模块是比较困难的,你可以先想一个特定的功能,然后下载Linux内核源码,开始阅读它,再到谷歌上面去搜索。这里有几个内核模块https://github.com/jvns/kernel-module-fun你可以研究一下

方法三:阅读内核源码

这个方法听起来很愚蠢的样子,但不是你想的那个样子,实际上这也是对我们能力的一种考验,如此庞大的源代码,考验你的坚持,考验你的勇气,同时考验你的能力。在很多时候你会感觉无能为力,但我希望采用此方法的人,在阅读是不防做一下批注,你是怎样理解的,按照博客的形式发表出来,这样对你也有帮助,对我们也有帮助。

方法四:参加一次Linux内核培训!

这个方法需要有一定的资金和时间,当然也要靠你自己。找个培训班的,培训班自己问度娘了

Linux内核团队参与了GNOME女性拓展实习项目。它是惊人、奇妙并且令人非常愉快的一个活动。这意味着,如果你是一个女人并且愿意花费三个月时间在内核开发上,你就能参与内核的开发,并且不需要任何的经,还能得到一些报酬(5000美元)。

一年一度的 Google Summer Code 2014已经启动。今年是 Google Summer Code 第十年。这项活动是为了鼓励全世界的大学生使用开源软件进行开发。Google 将组织引导学生为各种开源项目编写代码。在过去的九年中,已经有来自世界各地超过100个国家7,500成功的学生参加了这个活动。

Google Summer Code是提供大专学生开发者年龄在18岁以上津贴编写代码的各种开源软件项目的全球方案。我们曾与开源,自由软件,以及与技术相关团体在为期三个月的识别和资助项目。公司自2005年成立以来,该计划已汇集了来自世界各地超过100个国家7,500成功的学生参加,逾7,000导师,产生超过50万行代码。通过代码的谷歌夏季,接受学生的申请是搭配从参与项目的导师或导师,从而获得接触到现实世界的软件开发方案,并在与他们的学术追求领域的就业机会。反过来,参与的项目能够更加轻松地识别和带来新的发展。最重要的是,更多的源代码创建和发布所有的使用和受益。

转载注明出处:Linux中国,夜域诡士