The students will need to learn a scripting language that can help them organize bash scripts.
Ruby has an excellent backtick api to execute shell commands.
In pry:
puts `echo "hello from ruby"`
Python would be another great scripting language that is easy to pickup.
Python executes system commands very easily with the os.system
method.
In the python shell:
import os
os.system("echo 'hello from python'")
Bash will be a main focus. Terminal commands will be the most crucial here.
Absolute paths and relative paths are a pain at first, but will be very imporant.
Teaching about aliases and ENV vars will be the most important right out of the gate.
The new way to set OS init scripts and wrap Ruby/Python/Bash scripts as a service
OSX is nice because it is user friendly, has some of the best window managers out there, and is very reliable.
Students will need to learn how to spin up Ubuntu, and CentOS VM's using Vagrant.
Need I say more?
The students will need to learn about various HTTP protocols.
How to write GitHub Ruby/Python Scripts using GitHub script tokens.
A good final project for Mod1 should be to make a long polling CI. Webhooks for extra credit.
While there are plenty of ready made boxes
out there, the students should focus on getting a Vagrant Box that is just a base OS.
Then they should learn how to write scripts, pull custom scripts from github, and run more scripts to build a Rails ready machine.
This is notoriously difficult, and would be a great second project.
Apache should be the first thing they learn when dealing with reverse proxies.
The LAMP stack is still huge, and Ops jobs will be plentiful in that world.
The benefit of this, is that PHP and Apache are dead simple.
Nginx, is pretty weird compared to Apache at first. However it is one of the best reverse proxies out there.
Setting up SSL certificates should be part of a project using Let's Encrypt
Add more things!