学习 Linux 需要编程技能吗?

1 位读者喜欢这篇文章。
open source button on keyboard

Opensource.com

几个月前,我参加了 edX 提供的Linux 入门课程。这是一个 18 章的课程,包含大量阅读材料、一些视频以及对你的知识进行随意程度的测试。我写了关于前六章的内容以及课程的运作方式,文章名为《当非程序员尝试学习 Linux 时会发生什么》。在本文中,我将介绍课程的前 6 章,我们开始深入研究 Linux 的日常使用。

课程涵盖内容

本课程提供了“了解” Linux 的实用指南,涵盖了一些最常用的命令。虽然这些主题并不难理解,对于某些用户来说可能是老生常谈,但对于新手来说,如果不很好地理解它们的用途和用法,很快就会迷失方向。

在本节中,我发现自己大量依赖 Google,我想知道如果我已经在编程课程中遇到过这些概念,它们是否会更自然地被理解。

我们涵盖的一些主题包括:

  • Linux 文档
  • 文件操作和系统
  • 读取 (r)、写入 (w) 和执行 (x)
  • 什么是“可执行二进制文件”?
  • 用户环境 su 和 sudo
  • !! bang-bang
  • 文本编辑器:包含关于 vi 和 emacs 的非常详细的信息
  • 本地安全和密码
  • 网络操作
  • ping
  • 命令行:通常允许用户比 GUI 更有效地执行任务
  • wget

如果此列表中的某些项目对您来说很陌生,请不要担心,因为课程中将涵盖它们。

在我的 Chromebook 上安装 Linux

我参加本课程的主要目标是更好地、更深入地理解 Linux。我本不必安装 Linux,但我想安装,所以在开始第 7 章之前,我安装了。我想测试一下我正在学习的一些东西,“学习就是实践”在很大程度上是这样的。

我找到了一篇 Lifehacker 文章,看起来快速且易于遵循。它指导我如何使用 Crouton 安装 Ubuntu。

这相当容易,只是在过程中遇到了一些小问题,对我来说,这只是习惯于在终端中输入命令并学习如何使用和利用 Linux 的一部分。NetSurf 是默认的 Web 浏览器,所以我尝试安装 Firefox。在几次启动失败后,我意识到我需要 sudo

然后我开始了第 7 章。材料中指出:“无论您是经验不足的用户还是资深用户,您都不会总是知道如何使用各种 Linux 程序和实用程序,或者在命令行中键入什么。” 这让我感到安慰,因为我一直在材料和我的 Chromebook 之间来回切换。有一次,我沉迷于调整和自定义我的新 Linux 设置一个小时,然后才回到材料上。这篇文章帮助我调整了字体并安装了 Leafpad 和 Audacious 等程序。

对于非程序员来说,这是一门好课程吗?

总的来说,这不是一门适合希望更好地、更深入地理解 Linux 的非程序员的课程。

这门课程可能适合初级程序员,或者是不太熟悉 Linux 的经验丰富的程序员。有几章内容非常详细和具体。总的来说,具备一定的编程基础知识将非常有帮助。不仅仅是基本的理解,而是基础的理解——就像你在生活中至少参加过一门完整的编程课程所获得的那样。

所以,我想我会修改我的说法。这可能是一门适合非程序员的课程,因为编程可能不是你的日常工作或爱好,但最好是在介绍计算机科学和编程之后再学习这门课程。我计划接下来学习这门课程。所以,我会稍微退后一步来赶上进度。然后,我想再次向前迈进,学习 Linux Academy 的这门课程,了解如何安装和自定义 Linux 作为你的桌面。

如果你是一个对学习这门课程感兴趣的非程序员,那就去学吧。为什么不呢?它是免费的,由 Linux 基金会专业制作,而且有时当你跳入深水区时,你会学得更快。我有点像我知道自己在做什么,也知道材料在说什么,即使我只理解了一半。这在两个方面帮助了我。一方面,在某种程度上,你需要浏览新的材料。你可以回去重读和重考测验,但是当势头真正需要站在你这边时,你必须找到一种方法来坚持下去并到达终点。因为我一直在前进,所以我也能够从大部分不熟悉的信息的广阔领域中收集到一些宝石。对于我确实认识到的东西和我以前做过的少数事情,它们变得更有意义了。

最后,无论你是谁,无论技能水平如何,都戴上能促进创造性思维的音乐。如果你想要一些建议,请 ping 我。

User profile image.
Jen 领导 Red Hat 数字社区团队的社区经理团队。她与丈夫和女儿 June 和 Jewel 一起住在罗利。

13 条评论

很棒的文章!我以非程序员的身份学习了 Linux。我一路上从其他愿意分享的人那里学习了编码和编写脚本。这就是我喜欢 Linux 和开源社区的普遍原因,乐于分享。

这里的问题是,你用这样一篇文章来喂养反 Linux 的鲨鱼。
Linux 提供的是摆脱 MS 和 Apple 创建的框框的自由,这个框框说:“你应该只使用我们提供的软件或别人卖给你的软件。你太笨了,无法摆弄我们给你的 GUI 下面的任何东西。
它只是工作。它只是按照我们想要的方式工作,而不是按照你想要的方式工作,因为我们比你更了解。”

它是与生俱来的。先是 Linux,然后是 bash 脚本,...,也许还有一点 Python,....

我不认为你需要成为程序员才能学习 Linux,但我认为你必须对计算机本身更感兴趣。满足于操作设备而不了解其工作原理,并且对它的工作原理没有真正兴趣的用户,不会有动力去学习 Linux。就此而言,他们也不真正了解 Windoze。很高兴你想了解更多。

我已经使用 Linux 超过 12 年了,我一点编程都不懂。你不需要在安装和使用 Linux 之前阅读一本书。你不需要参加课程。你需要一个搜索引擎,订阅 LinuxQuestions(或同等网站),一些天生的好奇心和掌握足够方面的愿望,以便启动和运行。如果你是 Windows“高级用户”,那么 Linux 将会很容易。
与 10 年前相比,如今的发行版更容易安装和使用。您可以安装和使用大多数 Linux 发行版,而无需触摸命令行一次。

是的,你不需要懂编程就可以安装 Linux。但我在这里谈论的是在你的笔记本电脑或台式机上在日常生活中使用 Linux。为此,你确实需要接触命令行。如果你熟悉编程,那么进入命令行的门槛就会降低。但是,也许有更简单的方法来加强这方面?欢迎提出建议。

我也在慢慢学习 Edx.org 的课程。阅读量很大。

我碰巧正在帮助一群非程序员学习 Python 编程。我们认为 codecademy.com 上的 Python 编程课程确实有助于降低入门门槛。它非常互动,而且非常注重实践。我们对两件事充满信心。首先,通过完成内容,我们将学会如何编程;至少是基础知识。其次,根据他们课程的设置方式,我们有信心我们实际上可以完成它!这很重要,因为一些学生尝试过通过书籍和当面授课来学习。

Codecademy 通过网站拥有这种很棒的学习环境。该页面内置了实时 Python 解释器,侧面有一个小框,显示代码和语法错误的结果。此外,这种学习环境还内置了课程内容的“智能”。它使用作业的详细信息进行编程。因此,它会检查您是否使用了作业中提到的变量以及是否按照指示使用了函数。

如果 Linux 基金会课程的内容在 Codecademy.com 环境中就好了。尤其是在如何使用命令行方面。

回复 ,作者 Jen Wike Huger

我一直对这门课程感到好奇,只是还没有抽出时间,所以我很高兴能够“先睹为快”课程的覆盖范围和初步输入。

我认为你的问题说明了让人们开始使用 Linux 的艰难之路;吸引每个人的经验水平、兴趣和能力。有些人需要真正轻松地入门,而另一些人则准备好跳进去并开始破坏东西(-呃,我的意思是探索系统 ;) )。

Apple、Microsoft 和 Linux 在设计师开发的用途上都运行良好。一旦你走出这个“预先计划”的领域,事情就会变得棘手。美妙的是,Linux 的入门门槛非常低;易于访问、资源丰富且文档更好。

我发现 Ubuntu 对于让人们“涉足”很有用,因为它将重点放在学习“引擎盖下”的知识,而不是因试图获得一个工作和可用的系统而感到沮丧。有时从“头开始”使系统工作可能需要更多的 Linux 知识来理解正在发生的事情(或需要做什么)。

我也曾遇到过人们在运行 openSUSE 或 Fedora 时寻求帮助,我很高兴在命令行中,它们看起来和行为都相同(略有不同)。我通常发现这些人更懂技术,但不一定是开发人员。

多年未使用 Crouton,我想知道在 Chromebook 上运行它是否增加了不必要的复杂性,而不是在基于基本 Intel/AMD 的系统上安装。

实际上,我是在参加了一个在 Red Hat Linux 终端上运行大型机程序的无关课程后才开始接触 Linux 的。有机会使用它确实让我有信心尝试 Linux。

感谢 Drew 花时间回顾你的经验以及我接下来学习 Linux 的一些想法。我只需要找到时间回到我的 Chromebook 上,看看它会把我带到哪里。很高兴知道那里有文档可以提供帮助。

回复 ,作者 dragonbite

我非常喜欢阅读 Linux 用户的故事。我更印象深刻的是,进入 Linux 的第一步是在 Chromebook 上,尤其是使用 Crouton,因为在过程中可能会遇到一些小问题,例如让软件中心工作。我写了一份指南,展示了安装 ubuntu 后要做的 30 件事,这与你的文章中链接的指南类似 (http://linux.about.com/od/Blog/tp/30-Things-To-Do-After-Installing-Ubuntu.htm)

我用 Python 和 {{{sigh}}} VBA(在 MS 环境中时)编写代码。显然,用 VBA 编写代码从来没有帮助我接触到 Linux 的更精细之处,但是,Python 在某种程度上也没有。我确实在命令行中工作过一些(喜欢 ffmpeg,多么令人难以置信的快速、强大的工具!),并从 git / trunk 编译我自己的 Blender3D,但老实说,我发现我所做的大部分事情以前都做过了,所以 99% 的时间,我都在复制和粘贴别人的作品。我想我是一个相当随意的(而不是“高级”)Linux 用户……嗯,考虑一下发行版:Mint?应该说明一切了。:)

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.