While SysAdmins typically do not develop software applications, they do automate tasks, i.e. write programs / scripts. The concepts, tools, and techniques used by Software Engineers, can and should be applied to the code SysAdmins write. There are lots of programming / scripting languages that SysAdmins might use, my focus will be Python 3.x and Microsoft Windows PowerShell. The goal is to provide a basic overview of Python and PowerShell, and a solid understanding of various Software Engineering concepts, tools, and techniques. There are a lot of good resources available, I will try to provide links to many of these resources as we go.
Python is a widely used general-purpose, high-level programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C++ or Java. The language provides constructs intended to enable clear programs on both a small and large scale.1
Windows PowerShell (including Windows PowerShell and PowerShell Core) is a task automation and configuration management framework from Microsoft, consisting of a command-line shell and associated scripting language built on the .NET Framework and .NET Core. 2
Lean software development is a translation of lean manufacturing principles and practices to the software development domain. Adapted from the Toyota Production System, a pro-lean subculture is emerging from within the Agile community.3
Git is a distributed revision control system with an emphasis on speed, data integrity, and support for distributed, non-linear workflows.4
Test Driven Development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards.5