I am trying to argue Unix/Linux course back to computer science curriculum in my university even as an optional course. ”Jimi really thinks or wants so” isn’t a good argument, what pedagogic reasons are there, or anything else which I could use to convince my university? For me Linux is so obvious, that I’m having a hard time finding objective reasons.

I would really appreciate any help, if you don’t know, I would really appreciate if you decided to boost this


So far I have heard that ”it isn’t necessary to know linux if you are just an programmer”, that is the response I got last time when I asked, but now they are designing a new curriculum so there is real possibility of getting it back.

My computer science student organization allowed me to use their official channels for this so it seems even more possible to achieve something

Thank you everyone for your insanely awesome support, without it I wouldn't been able to write the comment! 🤩 The message was written in Finnish so I used machine translation and light proofreading to add the results in English here:


With your comments and help we managed convince Finnish student union representatives so that SYL (National Union of University Students in Finland) as an organization will study the concepts of free software!

I am very hopeful that they find it beneficial to students and begin to promote the practises to other organizations like the Ministry of Education and Culture which they regularly meet with

@jimbo nowadays people use containers everywhere to deploy software. Containers are linux. If you want to do more than writing software in an IDE you'll need some basic linux skills no matter what.

Same for CI/CD pipelines, these all run on/in linux. If you want to do anything on IoT devices you'll most likely hit linux. Basically anything that isn't your Windows desktop will force you to do some linux.

@jimbo then there is the point of using Linux for learning by example. If people want to learn how to code any kind of application, use a linux system to base it on, download the corresponding source code for all libraries and show them how to deep dive code down to the syscall level and maybe beyond that.

Take Raspberry Pis and do projects based on these. Take an OpenStack environment and let them build HA clusters. All stuff we did at my university.

@jimbo and of course learn the community aspects of things. Show projects show how to work on and with projects. There is nothing that brings you easier into a job than showing that you can maintain (large) free software projects.

And finally, finally, from a pedagogical point of view it makes sense to teach concepts instead of product and since Microsoft, Google, Apple and friends love to teach products, using linux as the less known platform helps to focus on the concepts.

@jimbo you still have to learn git and version control aren't you?
How about cpu, memory or i/o (hardware optimisation) ? And network?
All of this are easier learn on linux (mainly becose it's open)

An OS is a tool like any other. Sure, you don't *need* to know anything about them to make a good solution to a problem, but it helps a ton to know the tools you are working with.

You can apply the same logic to practically any course (why even bother with PL's if assembly is Turing complete?), but we consider those to be of great value, even essentials in the engineer's toolbox.


If I had to respond to that, I'd probably provide a nicer version of this:

It is absolutely necessary to know Linux for Android development, robotics, machine learning, web development, and high performance computing.

Android is Linux. All Android development requires Linux. Moreover, Android is not just phones. Many IoT devices run Android. IIRC, even vehicles use Android for dashboard tablets.

ROS (Robot Operating System), an extremely popular robotics system, is only officially supported on Linux. Other platforms, like Windows, only have experimental support. Far from being a fringe framework, ROS is extensively used by academia, industry, government.

All major machine learning stacks, like Tensorflow, are primarily supported and used on Linux. The GPU clusters used for machine learning are often in Linux. Tensorflow is extensively used by academia, industry, and government.

The two most popular web servers are Apache and Nginx. Both projects are open source, so they're closely intertwined with the Linux world. Apache doesn't provide first party Windows support. Third parties provide Windows versions.

Linux is the only viable operating system for high performance computing. The top 10 super computers in the world use Linux. More than 90% of the top 500 run Linux.

If a programmer isn't expected to do Android development, robotics, machine learning, web development, or high performance computing, then they may not need Linux, but what exactly *are* they doing then?
@jimbo since it's free and open source, you get much deeper understanding of how an OS works and how to write OS components. Much simpler interactions with the OS and no "magic". Also, C/C++. Better for learning how software works. Making bash scripts and automations is also programming, I think.

(Assume GNU/Linux)
Sign in to participate in the conversation

Mastodon instance monetized using web monetization protocol (optional) which is privacy respecting way of funding sustainable internet services. From Finland, for English and/or Finnish speaking users.