This week, I've been working on learning DevOps things. From wikip, a definition:
DevOps is a set of practices that combines software development (Dev) and IT operations (Ops). It aims to shorten the systems development life cycle and provide continuous delivery with high software quality.
In plain English, I call DevOps something like "looking into how to take software that people write and get it where it needs to be to get work done".
Different people do different jobs: e.g. designers design fancy apps, web programers write code to implement fancy apps, and analysts crunch numbers to figure out how to make money off those fancy apps.
DevOps is smashing all this work together into something that does work in the real world. It is trying to automate much of the process, making it easy to scale operations, do fast fixes, etc.
Applying Knowledge from Hobbies
I decided to look into this field because I already enjoy doing things like configuring linux, working with command line tools, etc.
I was having trouble finding programing/coding projects that interested me because oftentimes, the software I might want to write already exists—it just needs to be configured and run somewhere. For example, this blog that you are reading was made using a static site generator. It could be interesting and educational to go write my own static site generator, but really this program does everything I need it to do. I just write text in an easy to read/use language (markdown) and web pages get generated—amazing! I can publish a live journal here, backed up/preserved by our friends at Github x Microsoft.
Compared with this site, there are more complicated projects (such as ones that have interactivity) one may want to deploy. Dumping a bunch of HTML pages and images (examples of static assets) on the Internet is often not hard. How about deploying a program that interacts with some database? A place to submit a form to?
Setting stuff up automatically
Much of DevOps is writing configuration files (which are declarations of how stuff should be). These files get read by programs that run other programs (that run other programs, that run other programs...).
On a local level, doing this has been great fun. DevOps sounds like an in-demand place to do similar things, at scale.
Future goals
As a direction for what to learn more about, I think that learning more about the operations part of DevOps and how to coordinate people and teams is a good direction to move into for a future involving building useful things to help us all live better lives.
/end-sales-pitch