Programming for SysAdmins

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

Concepts, Tools and Techniques

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

1 Python (programming language). (2014, October 28). In Wikipedia, The Free Encyclopedia. Retrieved 02:07, October 29, 2014, from http://en.wikipedia.org/w/index.php?title=Python_(programming_language)&oldid=631489987
2 PowerShell. (2017, June 22). In Wikipedia, The Free Encyclopedia. Retrieved 19:25, July 4, 2017, from https://en.wikipedia.org/w/index.php?title=PowerShell&oldid=787006553
3 Lean software development. (2014, August 28). In Wikipedia, The Free Encyclopedia. Retrieved 21:52, October 18, 2014, from http://en.wikipedia.org/w/index.php?title=Lean_software_development&oldid=623158760
4 Git (software). (2014, November 19). In Wikipedia, The Free Encyclopedia. Retrieved 19:17, November 25, 2014, from http://en.wikipedia.org/w/index.php?title=Git_(software)&oldid=634539818
5 Test-driven development. (2013, October 9). In Wikipedia, The Free Encyclopedia. Retrieved 06:00, October 12, 2013, from http://en.wikipedia.org/w/index.php?title=Test-driven_development&oldid=576503904