Do you need programming skills to learn Linux?

1 reader likes this.
open source button on keyboard

A few months ago I took the Introduction to Linux course offered through edX. It's an 18 chapter course with lots of reading, some videos, and a casual level of testing your knowledge. I wrote about the first six chapters and how the course works in, What happens when a non-coder tries to learn Linux. In this article, I cover the first 6 chapters of the course, where we begin to dive into the day to day usage of Linux.

What was covered

The course provides a practical guide to "getting around" in Linux, covering some of the most commonly used commands. Although these topics are not particularly difficult to understand, and may be old hat for some users, newcomers will quickly become lost without a good understanding of their purpose and usage.

In this section, I found myself relying heavily on Google, and I wondered if some of the concepts would come more naturally if I had already encountered them in programming courses.

Some of the topics we covered included:

  • Linux documentation
  • file operations and systems
  • read (r), write (w), and execute (x)
  • What are 'executable binaries'?
  • user environment su and sudo
  • !! bang-bang
  • text editors: with very detailed info on vi and emacs
  • local security and passwords
  • network operations
  • ping
  • the command line: often allows users to perform tasks more efficiently than the GUI
  • wget

Don't worry if some of the items on this this list look foreign to you, as they will be covered in the course.

Installing Linux on my Chromebook

My main goal in taking the course was to get a better, high level understanding of Linux. I didn't have to install Linux but wanted to, so before I started chapter 7, I did. I wanted to test out some of the things I was learning, and 'learning is doing' to a large extent.

I found a Lifehacker article that looked quick and easy to follow. It instructed me on how to install Ubuntu using Crouton.

This was fairly easy, with a few hiccups along the way, which for me was just part of getting used to entering commands into the terminal and learning how to work with and utilize Linux. NetSurf was the default web browser, so I tried to install Firefox. After a few failures to launch, I realized I needed sudo!

Then I started chapter 7. The material stated: "Whether you are an inexperienced user or a veteran, you won’t always know how to use various Linux programs and utilities, or what to type at the command line." I was comforted by that as I went along, switching back and forth between the material and my Chromebook. At one point I got sucked into tweaking and customizing my new Linux setup for an hour before getting back to the material. This article helped me adjust the font and install programs like Leafpad and Audacious.

Is this a good course for non-coders?

In general this was not a course for a non-coder looking to get a better, high level understanding of Linux.

This was a course for perhaps a beginner programmer, or a seasoned programmer less familiar with Linux. Several chapters were quite detailed and specific. Overall, an underlying base knowledge of programming would have been extremely helpful. More than a basic understanding, a base understanding—like that you would get from taking at least one, full programming course in your life.

So, I think I'll revise my statement. This could be a course for a non-coder, because coding might not be your day job or your hobby, but it's a course best taken after an introduction to computer science and programming. Which I plan to take next. So, I'll take one slight step back to catch up a bit. Then, I want to launch forward again with this Linux Academy course on how to install and customize Linux as your desktop.

If you're a non-coder interested in taking this course, do it. Why not? It's free, professionally done (by the Linux Foundation), and sometimes when you jump in the deep end you learn to swim faster. I sort of went at it like I knew what was going on and what the material was talking about even when I only half understood. That helped me in two ways. For one, to some extent you need to just get through new material. You can go back, reread, and retake quizzes, but when momentum really needs to be on your side, you've got to find a way to just keep going and reach the end. Because I kept moving, too, I was able to glean some gems from the vast landscape of mostly unfamiliar information. For the things I did recognize and the few things I had done before, they made that much more sense.

Finally, whomever you are, whatever skill level, put on music that faciliates the creative mind. Ping me if you want some recommendations.

User profile image.
Jen leads a team of community managers for the Digital Communities team at Red Hat. She lives in Raleigh with her husband and daughters, June and Jewel.


Great article! I learned Linux as a non-coder. I learned to code and to write scripts along the way from other people who were willing to share. That's what I love about Linux and the open source community in general, the willingness to share.

The problem here is that you feed the anti-Linux sharks with an article like this.
What Linux offers is the freedom to step outside of the MS and Apple created box that says, "You should just use the software that we offer or someone sells you. You're too dumb to mess with anything underneath the GUI that we give you.
It just works. It just works the way we want, not the way you want, because we know better than you."

Its comes with it. First linux, then bash scripts, ...., maybe a little python,....

I don't think you need to be a coder to learn Linux but I do think you have to be more interested in the computer itself. The user who is content with operating the appliance without understanding how i works and with no real interest in how it works will not be motivated to learn Linux. For that matter, they don't really know Windoze either. Good on you for wanting to learn more.

I've been using Linux for a little over 12 years and I know zero programming. You do not need to read a book prior to installing and using Linux. You do not need to go on a course. You need a search engine, a subscription at LinuxQuestions (or equivalent), some natural curiosity and a desire to master sufficient aspects to get things up and running. If you are a Windows 'power user' then Linux will be a doddle.
Distros these days are easy to install and use compared to 10 years ago. You can install and use most Linux distros without touching the command line once.

Yes, you don't need to know programming to install Linux. But what I'm talking about here is *using* Linux in your daily life on your laptop or desktop. You *do* need to touch the command line for that. And the barrier to entry with the command line to lower if you are familiar with programming. However, maybe there is an easier way to buff up on that? Suggestions welcome.

I'm slowly going through the course as well. It is a lot of reading.

I happen to be facilitating a group of non-programmers learn Python programming. The course on Python programming we think really helps lower the barrier to entry. It's very interactive and most hands on. We feel confident in two things. Firstly, by completing the content we'll walk away knowing how to program; at least the basics. Secondly, the way their course is setup we feel confident that we can actually complete it! That's big because some of the students have tried learning via books and in person classes.

Codecademy has this awesome learning environment via a website. The page has live Python interpreter built in to the website, with a little box on the side that shows the result of the code and syntax errors. Plus, this learning environment has "smarts" built in for the course content. It's programmed with details of the assignment. So, it'll check if you are using the variables mentioned in the assignment and if you used the functions as instructed.

It would be awesome if the content from the Linux Foundation course was in the environment. Especially on how to use the Command Line.

In reply to by Jen Wike Huger

I've been curious about the course, just haven't been able to carve out the time yet so I am glad to get a "sneak peek" into the course coverage and initial input.

I think your issues illustrates the tough road of getting people started with Linux; appealing to everybody's experience level, interest and capabilities. Some people need to really ease into it, while others are ready to jump in and start breaking things (-er, I mean explore the system ;) ).

Apple, Microsoft and Linux all work great at what the designers had developed for. Once you go out of this "pre-planned" arena is when things can get sticky. The wonderful thing is that Linux has a very low bar to entry; easy access, numerous resources and better documentation.

I find Ubuntu handy to get people's feet wet because it puts the focus on learning the bits "under the hood" rather than getting discouraged trying to get a working and usable system. Sometimes getting system working from "scratch" can require further knowledge of Linux to understand what is going on (or what needs to be done).

I've also had people asking for help when running openSUSE or Fedora, to which I am glad that in the command line, they all look and act the same (with minor variations). These people, I usually find, are more tech-savvy but not necessarily developers.

Without having used Crouton in years, I wonder if running it on your Chromebook added unecessary complexity compared to installing on a basic Intel/AMD based system.

I actually did not get into Linux until after going to an unrelated class that ran the mainframe programs in a terminal on Red Hat Linux. Having the chance to use it did wonders in giving me the confidence to give Linux a go.

Thanks Drew for taking the time to walk through your experience and some thoughts for me going forward with Linux. I just need to find the time to get back into it on my Chromebook and see where it leads. Great to know documentation is there to help.

In reply to by dragonbite

I am a big fan of reading Linux users' stories. I am more impressed that the first step into Linux was on a Chromebook especially using Crouton as there are some little things that can trip you up on the way such as getting the software centre working. I wrote a guide showing 30 things to do after installing ubuntu which is similar to the one that is linked in your article (

Gary, this list is awesome -- thank you -- I'll def be pulling it up next time I get back to my Linux desktop!

In reply to by Gary Newell (not verified)

I write code in Python and {{{sigh}}} VBA (when in the MS environment). Obviously coding in VBA has never been any help getting in touch witht he finer points of Linux, but then, Python sort-of hasn't either. I do work at the commandline some (LOVE ffmpeg, what an incredibly fast, powerful tool!) and compile my own Blender3D from git / trunk, but to be honest, find that most of what I'm doing has already been done before, so 99% of the time, I'm copying and pasting someone else's work. I guess I'm a fairly casual (as opposed to 'power') user of Linux... well, consider the distro: Mint? should say it all. :)

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.