学习 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 领导红帽公司数字社区团队的社区经理团队。她与丈夫和女儿 June 和 Jewel 一起住在罗利。

13 条评论

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

这里的问题是,你用这样一篇文章喂饱了反 Linux 的鲨鱼。
Linux 提供的是自由,可以走出微软和苹果创建的盒子,这个盒子说:“你应该只使用我们提供的软件或别人卖给你的软件。你太笨了,搞不懂我们给你的 GUI 下面的任何东西。
它只是工作。它只是按照我们想要的方式工作,而不是按照你想要的方式工作,因为我们比你更了解。”

它是附带而来的。先是 Linux,然后是 bash 脚本,……,也许还有一点 python,……

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

我已经使用 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 系统上安装。

实际上,我是在参加一个不相关的课程后才开始接触 Linux 的,该课程在 Red Hat 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)

Gary,这个列表太棒了 -- 谢谢你 -- 下次我回到我的 Linux 桌面时,我一定会用上它!

回复 ,作者是 Gary Newell (未验证)

我用 Python 和 {{{叹气}}} VBA (在 MS 环境中) 编写代码。显然,用 VBA 编码从来没有帮助我接触到 Linux 的精妙之处,但 Python 也差不多。我有时会在命令行工作(喜欢 ffmpeg,多么快速、强大的工具!),并从 git / trunk 编译我自己的 Blender3D,但老实说,我发现我所做的大部分事情以前已经有人做过了,所以 99% 的时间,我都在复制和粘贴别人的工作。我想我是一个相当随意的(相对于“高级”) Linux 用户... 嗯,想想发行版:Mint?应该说明一切了。:)

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.