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


Linux Command Line and Shell Scripting Bible Linux Command Line and Shell Scripting Bible - Linux Command Line and Shell Scripting Bible is your essential Linux guide. With detailed instruction and abundant examples, this book teaches you how to bypass the graphical interface and communicate directly with your computer, saving time and expanding capability.

Linux Bible Linux Bible - Linux continues to be an excellent, low-cost alternative to expensive operating systems. Whether you're new to Linux or need a reliable update and reference, this is an excellent resource. Veteran bestselling author Christopher Negus provides a complete tutorial packed with major updates, revisions, and hands-on exercises so that you can confidently start using Linux today.

Learning Python Learning Python - Portable, powerful, and a breeze to use, Python is the popular open source object-oriented programming language used for both standalone programs and scripting applications.

Modern PHP: New Features and Good Practices Modern PHP: New Features and Good Practices - PHP is experiencing a renaissance, though it may be difficult to tell with all of the outdated PHP tutorials online. With this practical guide, you'll learn how PHP has become a full-featured, mature language with object-orientation, namespaces, and a growing collection of reusable component libraries.