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/
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.
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.
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.
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.
https://old.reddit.com/r/linuxupskillchallenge
The other two links in clickable form as well:
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.).
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.
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.
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.
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
It's definitely doable, and becoming more and more common (at least from the candidates and initiatives I see at AWS).
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.
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.
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 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.
[0]: http://snori74.blogspot.com/2020/04/linux-upskill-challenge....
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.
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.
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.
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!)
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 :)
> [ 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://molecule.readthedocs.io/en/latest/
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.
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!
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")
https://github.com/webpro/awesome-dotfiles
...
awesome-sysadmin > resources: https://github.com/kahun/awesome-sysadmin#resources