Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Linux sysadmin course, eight years on
780 points by snori74 on Sept 5, 2020 | hide | past | favorite | 83 comments
Almost eight years ago I launched an online “Linux sysadmin course for newbies” here at HN.

It was a side-project that went well, but never generated enough money to allow me to fully commit to leaving the Day Job. After surviving the Big C, and getting made redundant I thought I might improve and relaunch it commercially – but my doctors are a pessimistic bunch, so it looked like I didn’t have the time.

Instead, I rejigged/relaunched it via a Reddit forum this February as free and open - and have now gathered a team of helpers to ensure that it keeps going each month even after I can’t be involved any longer.

It’s a month-long course which restarts each month, so “Day 1” of September is this coming Monday.

It would be great if you could pass the word on to anyone you know who may be the target market of those who: “...aspire to get Linux-related jobs in industry - junior Linux sysadmin, devops-related work and similar”.

[0] http://www.linuxupskillchallenge.org/

[1] https://www.reddit.com/r/linuxupskillchallenge/

[2] http://snori74.blogspot.com/2020/04/health-status.html

I'm speechless, @OP. It ceases to amaze me that people who aren't in a position to generate value for others often generate more of thereof than a regular, healthy individual. I'd like this world to be inhabited with more people like you. I know myself how it's like to live with a deliberating illness, so let me just say that I'll be praying for your recovery (and if that's not possible at least less pain and a better "reinstatiation" prospects in the future if a reincarnation is a thing).

It seems that I'm going to make it regarding my health challenges, so I promise to make a good use of the Linux skills that your course is going to help me to systematize. Thank you. I'd not get into tech without what have happened to me. Being forced to be on a "lock-down" for 2,5 years I got myself step by step into an amazing world of technology which with my skills getting more polished made me feel I might be actually able to transcendent my body's limitation. I can only hope that something similar could still happen to you regardless of the discipline involved (I know that there's probably nothing worse than not being able fully commit to one's life).

Take care, buddy.

Ha, ha, my original goal was to make a tidy pile of $$, but also a desire to teach and share. The feedback I get is certainly bouying me up as I go forward toward that big unknown. Thanks for your thoughts.

Hi Steve. I took your original course 8 years ago. I wasn't aiming for a sys admin career - just wanted to be comfortable maintaining a server for my site. It worked well for that.

I emailed you a few times, and you seemed like a genuinely nice guy. I just wanted to chime in and say thanks and wish you the best of luck for both your health and the legacy of this project.

Thanks, I did dig through my emails and got in touch with a few of The Originals. You guys were willing to buy a "pig in a poke" - I gave out no outline or Table of Content (still don't!), and you paid Real Money to get content into you email each day for a month. These youngsters are getting it all for free! Thanks again. - Steve

Good stuff. Thanks for all the effort you've put into it.

One suggestion: Make it more obvious that the courses are on GitHub.

I make a point to avoid reddit as much as possible, which means I don't know how to interact with reddit's interface. When I tried to view the course via reddit, I had a lot of trouble locating the actual lessons. They were out of order, and I had to shift through other users' threats ('I missed day X!' 'Here's my journal on my progress...').

Honestly, had I not randomly clicked on the GitHub repo, I would've moved onto something else. I'm glad I didn't, but yeah... pushing people onto reddit limits your audience.

Thanks, and I appreciate your comment. Things do get a little messy, but overall I've been happy with Reddit as a platform - once I figured out to pin a big FAQ ("How This Works") posting. Noone seems to read the sidebar :-(

The sidebar might not be loading for everyone. Mine doesn't unless I browse old.reddit.com on a computer, for some reason.

Reddit also cripples their mobile experience on web, so unless your audience is existing redditors on computers or with the app, they're likely getting a poorer or more inconsistent experience than you see.

Thanks for the great work, I hope to revisit it without the hurdles someday.

Mobile clients don’t show the sidebar, and new reddit de-emphasises it.

Clickable subreddit link using the old reddit interface that lets you see the content on mobile even if you aren’t logged into reddit:


The other two links in clickable form as well:



Thanks, that old interface really was much nicer...

i was honestly kind of glad when they introduced the new interface once i figured out that i didn't have to request the desktop site every time I open a new reddit tab anymore by just going straight to old.reddit.com

As the author of 14 college Linux administration textbooks since 2001, and someone who has taught IT in the college space for 22 years, I must say that I thoroughly enjoyed going through this resource!

I think it will benefit many who have basic Linux knowledge but need to refine and further apply it, as well as students who are currently taking a course on Linux, or a course that requires Linux knowledge (development, Cybersecurity, devops, etc.).

Wow, thanks Jason!

Great work I've seen while doing my regular github foss browsing (by most recently updated), and thank you for putting CC4 on it. I also want to say I like the general format at least on github (not a reddit fan these days).

Constructive criticism: to me, this is a bit too barebones. There are quite a few extremely similar ones out there with essentially the same content but not as nice a format. You might consider doing the next tier course for those who aren't completely green but are trying to get past that initial hurdle which what many of them are trying to do.

As for what exactly, I would say an extensive focus on the entire systemd ecosystem would be a great starting point for example. Go ahead and go into nf/iptables, etc.

One other thing, I think a proper table of contents would be a good simple addition.

Yes, I've commented in a number of places that this is essentially Part I of a two part intro to the absolute minimum I'd like a newbie sysadmin to know.

It's likely that I'll put a tentative ToC for Part II into somewhere like /r/linux of /r/sysadmin for comment and discussion.

Thank you very much for this! I am sorry that I did not know about it sooner.

Anyway the question for HN - is it too "late" for a person to consider career change in 33? To clarify, I am not in IT business, my formal education (and job) is in business administration, however with recent and important changes in my private and work life, I am considering to bite the bullet. Initially, I considered back-end development, but actually Linux sysadmin might be more appropriate for me.

Not too late. Professional experience in anything technical/analytical/complex would keep your mind adaptive enough to deal with computer systems and work effectively with others.

On that note, programmers used to consist of mathematicians, engineers, and scientists, until there was a growing shortage of programmers, at which point project managers, accountants, and other comparable professionals trained to become programmers. [1]

1. The Future of Programming - Uncle Bob Martin https://youtu.be/BHnMItX2hEQ

You are 33 years old. Consider how long your whole life has lasted since you were born. If you retire at 66, you still have another 33 years of career left. If you enjoy computers you don't need to stop at retirement age either. Plenty time for a career change, go for it :)

I made the decision to change careers into IT when I was 32-ish. Did self-study for a year, and then worked as a junior sysadmin at a SaaS company for a year. Now I work at AWS.

It's definitely doable, and becoming more and more common (at least from the candidates and initiatives I see at AWS).

Do you mind briefly discussing how you made the switch? What courses did you take etc? I am considering switching into IT and would love to hear how others did it. I am currently enrolled in the Google IT course.

Same answer as "is it too "late" for a person to consider career change in 22?"

Make sure it's a career in something you actually like and can foresee to some degree of confidence that you can continue being interested in, and honing your skill in, for a while.

We've got a junior devops chap that is in his late 30s and has never worked in IT, so it's possible

I'm 35 and am about 9 months I to a new job as a trainee System Administrator. You can do it.

Ive started my career as a sysadmin basically and would just like to throw on a tiny remark: inherint to the job is being available 24/7 in case something goes wrong in the live platform. It's not necessarily bad, it's just something you should keep in mind

Nope. I got my first trainee developer role at 37/38. 4 years later and I earn double what I did before I started being a developer and there is pretty much zero chance of me getting that much more in my old role, definitely not in 4 years.

Do you mind briefly discussing how you made the switch? What courses did you take etc? I am considering switching into IT and would love to hear how others did it. I am currently enrolled in the Google IT course.

I applied for a trainee role in my current organisation, no coding experience required they wanted people with business knowledge and to train them up. Took a pay cut to start too. They offered training courses and I did a lot of study myself. I was doing a degree level apprenticeship, which I started 3 years in, but it actually wasn't very good. Lots of self learning and pluralsight, udemy courses. I have collegaues who went the route of coding bootcamps and were successful in getting junior roles.

I switched to IT at 40. Doable. But Swede so a lot of options like paid paternity leave, tuition free university and so on made it easier.

If you do some formal training for a few months you should be fine. If possible get someone to sponsor you.

I worked in non-it but programming-is-useful roles until age 35. Now I’m a sw developer. I don’t particularly recommend for or against as it’s a personal choice after all. But feasible, yes absolutely.

Absolutely not impossible, if you like Linux, etc - go for it!

I switched from being a math teacher and union official to web developer at 35 and have loved it!

Seems very interesting. I checked out the site and I want to find out why lessons need to be dished out weekly via Reddit. I'm curious. What is the rationale/history behind this? And why Reddit?

When I learn a new subject I prefer having everything available so I could go through it at my own pace. I understand people learn differently so I wonder if this kind of approach works well for other people who learn differently from me.

Wish this project the best.

Although I say repeatedly that each 'lesson' has about two hours work in it I worry that were lessons available, students will just skim though the whole lot "in one go".

I also believe that 'forcing' students to ssh in daily for a month gets a bit of muscle-memory working, and proves that they have the required stickability. (The initial paid version reported such things back to their employer!)

In fact, all lessons are available via Github, but I try to avoid pointing this out :-)

I really wanted a good discussion forum, and I'm not a great fan of much of the classic forum software. While Reddit gets a good bit of stick for some of it's subreddits, if you pick those you visit well the content can be very good - and the upvoting etc works pretty well imho.

[Edit: added comment on stickability]

> I worry that were lessons available, students will just skim though the whole lot "in one go".

I think this is a common pitfall of a number of beginner courses. Personally, I view it as kind of an arrogance of "I know better what you need than you do".

As a user, I think you have no say in how I consume any content.

> The initial paid version reported such things back to their employer!

The employer has no right to know anything about me other than what I do during my 8h of paid time. I can share whatever I want of course, but a feature like this seems like it supports an unhealthy work relationship.

Well in a sense, I do "know better". There is a real benefit to setting up a VPS "fully exposed to the Internet (another thing that some struggle with); A real benefit to taking a day to investigate each day's lesson; A real benefit to getting into the habit of ssh-ing daily.

But hey, having run this for a long while, I'm well aware people are coming from all sorts of backgrounds, having all sorts of crazy things going on in their lives etc - so however they do it is fine by me.

So, those that simply read it through - OK. Those that run it in a VM on their laptop - OK.


I disagree that you know better. Research shows doing something daily and habitually is beneficial, but you shouldn't dictate that I need to do your content daily.

For example, in the past, I have often gone through coursera courses that were supposed to run for months within weeks, because I had a lot of time to dedicate to the courses.

I made going finishing courses a habitual activity, but I personally have designed it to suit my needs. In other words, I have tweaked the pace greatly.

You're consciously crippling your content with the idea that someone will benefit from slow pace. If a user wants to refresh some things, fill some knowledge gaps, or just take a look what the subject matter is about without the need for deep learning, you're adding friction to the process (and they'll likely not return the next day).

Now, don't get me wrong. If you get something out of it, e.g. Netflix releasing an episode a week for whatever gains they get, that's fine. But, if someone told me "read this book, you get 10 pages a day," I'd consider it a waste of my time.

My 2c.

I get your point, but this sounds like you didn't read the post you're replying to.

At least the way I read their post, snori74 isn't presenting some absolute position of authority, but rather is describing their experience from running the course (and I assume working as a sysadmin) as to what is effective for the students.

Putting forward what works best for most students doesn't exclude other ways of consuming the content. A student motivated to consume the content more quickly can easily discover the github themselves, or ask the question on reddit.

Your preference for consuming the content all-at-once is a valid one, however it's right for the content creator to set up the course in a way that maximises the outcomes for student - especially when there is an easy fallback to the all-at-once model.

I'll also add that having a 'class' of students doing the course with you is something that a lot of people would appreciate, as they can discuss the challenges and successes they see with people experiencing the same things at the same time.

Ironic user name, BossingAround.

Care to enlighten me why?

He has a blog post[0] where he mentions some of the reasoning for doing it this way. Seems like in part it’s to be able to foster discussion around each lesson.

[0]: http://snori74.blogspot.com/2020/04/linux-upskill-challenge....

I used to teach. Some students can be left alone and learn at good pace, on their own. Others need the regular cadence and guidance. EG: we meet every Monday, next we talks about X.

There are many different learning styles. Your style (mine too) (perhaps autodidact) does terrible in rigid structure, others need it - even for subjects they are enthusiastic about.

I'm a regular user but having been around for a while (and done some web dev) this course doesn't seem to go further (except in a few extensions) than my current knowledge/experience. I've written bash scripts, configured Apache/Nginx, setup a mail server with spam filtering, used git to a basic level, all that kinda stuff ... what's the next step for a taste of what being a sysadmin is like?

The next step is setting it up to randomly wake you up in the middle of the night with obscure messages.

What sort of obscure messages though? Are there gru? ;o)

Thank for building and making it available for everyone for free. Sorry about your health. I hope you feel better.

well, that's awesome. sorry to hear about your condition though.

Well it is what it is. One of the "odd" things is not really knowing how long you've got. Doctors hate to put a date on it, and clearly everyone's trying to push things out - but it makes planning difficult :-)

For this course I now have a small team of helpers authorised to look after the subreddit, the GitHub and the domain name. So hopefully it'll keep going strong after I bow out.

I've also changed the licensing to CC by SA 4.0, so if you think this is a good base you're welcome to develop it as you see fit, including commercially.

I know Linux enough to get by. a little bit more then that, perhaps. but I'll make sure to take a look at the course. if see something I can help with, I'll do it. pretty sure I will learn from it, for sure

besides that, keep a positive attitude. this thing here we call life is just a journey. eventually it will end for all of us. just make sure to enjoy your journey as much as you can doing the things you enjoy doing. sure it would be nice if we could all get paid to do the things we like, but that's not always the case. never fear though, making money is not and will never be a good measure for success. glad to learn that your side project was to perpetuate knowledge.

Thanks for your kind words.

You have an impressive attitude that conveys strength even in the face of the uncertainty you are dealing with. Thanks for creating and sharing this, it looks awesome!

Is Linux admin suitable for women with disabilities? I have a friend who would like this, but I hesitate to recommend it if she would be discriminated against as a job candidate.

Yes! This is techy and certainly not everyone "cup of tea" - most people would run a mile. But everyone is learning to remotely control a powerful server on the Internet ...which I think is cool and empowering.

We're covering the basic Linux skills to do that, and have a vague "junior sysadmin role in big company" in mind.... But nothing stops you using these same skills to create your own website, security scanning service, or get into robotics.

While discrimination unfortunately exists in some places, just avoid those and go forward. As for disablement, you just do what you can at the speed you can. (You're reading this fine, and have no idea what a hassle it was for me to write!)

Thank you for your work. Can I suggest to add a ToC? (I know this is framed as a daily challenge but it will help to see contents at a glance, even naming the chapters).

Thanks for those that got the word out. Looks like we have a "class" of about 1,300 for this month, and its humming along nicely. (There are 5,630 sub'd, but that includes all those from previous classes who've not unsub'd - its an imprecise art!)

What is Big C in this context?


Any reason why the course recommends AWS/DO vs. running something locally with Docker?

The "How This Works" post covers this

Thanks for putting this out there. As an amateur developer who has picked up just enough linux skills to get by over the years, this looks like a great way to fill in some of the gaps in my knowledge without getting too deep in the weeds.

Yup. No way of knowing exactly, but I'd guess that quite a lot of the "students" are in the same boat...

Great work! Was hoping though that you could view the course from the landing page - have you considered moving the course to a simple static website where it could be browsed like www.domain.com/day1/ or something similar?

This is great. And I wish this hadn’t happened to you. I just started a new position overseeing our Linux based Oracle databases and this will be a great asset. I’ll do my best to contribute where I can.

I don't normally comprehend most of what is posted on HN. They are too advanced for me. Probably this one too. But, will try this for you, Sir. This post is not going to let me sleep tonight.


just wanted to you to thank for this fellow myeloma warrior. Happy your asct worked out and with loads of new treatments available hopefully we'll grow old with this :)

Thanks Steve for sharing this. I am sorry to hear about your condition. I am sure as you survived Big C, you will survive the small C as well. Take care and thanks.

Take care! My dad is going through the same shit.

I wanted to point out that Linode has quality Linux hosting for as low as $5 per month. We've used them reliably for years.

Very generous of you, thank you! You've helped a lot of people out with this I'm sure. Wishing you the best.

The links to linuxacademy.com are broken, since it was rebranded to acloudguru.com

Thanks, fixed in Github now, all ready for Monday!

I’ve lurked your subreddit for a while...might finally do it. Thank you!

this is great! thanks for all your hard work and for sharing, snori74!

Definitely going to check this out. Thank you!

There are a number of resources that may be useful for your curriculum for this project listed in "Is there a program like codeacademy but for learning sysadmin?" https://news.ycombinator.com/item?id=19469266 :

> [ http://www.opsschool.org/ , https://github.com/kahun/awesome-sysadmin/blob/master/README... , https://github.com/stack72/ops-books , https://landing.google.com/sre/books/ , https://response.pagerduty.com/ (Incident Response training)]

To that I'd add that K3D (based on K3S, which is now a CNCF project) runs Kubernetes (k8s) in Docker containers. https://github.com/rancher/k3d

For zero-downtime (HA: High availability) deployments, "Zero-Downtime Deployments To a Docker Swarm Cluster" describes Rolling Updates and Blue-Green Deployments; with illustrations: https://github.com/vfarcic/vfarcic.github.io/blob/master/doc...

For git-push style deployment with more of a least privileges approach (which also has more moving parts) you could take a look at: https://github.com/dokku/dokku-scheduler-kubernetes#function...

And also reference ansible molecule and testinfra for writing sysadmin tests and the molecule vagrant driver for testing docker configurations. https://www.jeffgeerling.com/blog/2018/testing-your-ansible-...


https://testinfra.readthedocs.io/en/latest/ :

> With Testinfra you can write unit tests in Python to test actual state of your servers configured by management tools like Salt, Ansible, Puppet, Chef and so on.

> Testinfra aims to be a Serverspec equivalent in python and is written as a plugin to the powerful Pytest test engine.

I wasn't able to find a syllabus or a list of all of the daily posts? Are you focusing on DevOps and/or DevSecOps skills?

EDIT: The lessons are Markdown files in a Git repo: https://github.com/snori74/linuxupskillchallenge

Links to each lesson, the title and/or subjects of the lesson, and the associated reddit posts might be useful in a Table of Contents in the README.md.

Thanks, but most of that would be way over the top for my "newbies".

However, You must be the third or fourth person today to suggest that I add a TOC - so that is something I think I'll need to look at!

Maybe most useful as resources for further study.

Looks like Day 20 covers shell scripting. A few things worth mentioning:

You can write tests for shell scripts and write TAP (Test Anything Protocol) -formatted output: https://testanything.org/producers.html#shell

Quoting in shell scripts is something to be really careful about:

> This and this do different things:

  # prints a newline
  echo $(echo "-e a\nb")

  # prints "-e a\nb"
  echo "$(echo "-e a\nb")"
Shellcheck can identify some of those types of (security) bugs/errors/vulns in shell scripts: https://www.shellcheck.net/

LearnXinYminutes has a good bash reference: https://learnxinyminutes.com/docs/bash/

And an okay Ansible reference, which (like Ops School) we should contribute to: https://learnxinyminutes.com/docs/ansible/

Why do so many pros avoid maintaining shell scripts and writing one-off commands that they'll never remember to run again later?


It may be helpful to format these as Jupyter notebooks with input and output cells.

- Ctrl-Shift-Minus splits a cell at the cursor

- M and Y toggle a cell between Markdown and code

If you don't want to prefix every code cell line with a '!' so that the ipykernel Jupyter python kernel (the default kernel) executes the line with $SHELL, you can instead install and select bash_kernel; though users attempting to run the notebooks interactively would then need to also have bash_kernel installed: https://github.com/takluyver/bash_kernel

You can save a notebook .ipynb to any of a number of Markdown and non-Markdown formats https://jupytext.readthedocs.io/en/latest/formats.html#markd... ; unfortunately jupytext only auto-saves to md without output cell content for now: https://github.com/mwouts/jupytext/issues/220

You can make reveal.js slides (that do include outputs) from a notebook: https://gist.github.com/mwouts/04a6dfa571bda5cc59fa1429d1309...

With nbconvert, you can manually save an .ipynb Jupyter notebook as Markdown which includes the cell outputs w/ File > "Download as / Export Notebook as" > "Export notebook to Markdown" or with the CLI: https://nbconvert.readthedocs.io/en/latest/usage.html#conver...

    jupyter convert --to markdown
    jupyter convert --help
With Jupyter Book, you can build an [interactive] book as HTML and/or PDF from multiple Jupyter notebooks as e.g. Markdown documents https://jupyterbook.org/intro.html :

    jupyter-book build mybook/

From https://westurner.github.io/tools/#bash :

    type bash
    bash --help
    help help
    help type
    apropos bash
    info bash
    man bash
    man man
    info info
From https://news.ycombinator.com/item?id=22980353 ; this is how dotfiles work:

    info bash -n "Bash Startup Files"
> https://www.gnu.org/software/bash/manual/html_node/Bash-Star...


Re: dotfiles, losing commands that should've been logged to HISTFILE when running multiple bash sessions and why I wrote usrlog.sh: https://westurner.github.io/hnlog/#comment-20671184 (Ctrl-F for: "dotfiles", "usrlog.sh", "inputrc")




awesome-sysadmin > resources: https://github.com/kahun/awesome-sysadmin#resources

tell those doctors to learn all of the options for tar or gtfo

Thank you, incredible.

That’s awesome dude!

Thanks for this.

thank you!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact