A collection of documentation to help security and IT engineers get started with programming and automation. Feedback, corrections, content, and topic suggestions are appreciated and welcomed.
This is a collection of live documents and content will be updated as needed.
For more information on contributing, please check back shortly. Currently I’m working on getting the foundation of the project completed, after which I’d happily accept meaningful contributions.
Project Introduction
Programming and automation are great tools for any IT or security engineer (or anyone wanting to finish their tasks automagically!). They allow you to build new tools or to combine already existing tools. These tools can improve and speed up already existing IT and security tasks.
The goal for this documentation is to help introduce people who are interested in learning more about programming and automation. I’m not looking to teach someone how to be a professional developer, but looking to help encourage and grow new hackers, tinkerers, and builders. I’m looking to provide the tools and direction to inspire curiosity and passion for programming. Remember there’s never only one way to solve a problem. I’ll work to provide you with the tools to solve the problems you’ll encounter.
Most importantly, stay focused on continued learning. Keeping your skills sharp by programming frequently and always looking for new things to automate. Don’t get discouraged when something doesn’t work perfectly, coming back to a project later may expose a new way to solve a problem.
This document is only the start. After reading this, we’ll go step by step introducing some fundamental Python concepts, providing you with the building blocks you need to start putting your own projects together.
Table of Contents
Part 0 - Introduction and Getting Started
- 0.1 - Introduction to programming
- 0.2.0 - Setting up a Python development environment - Windows
- 0.2.1 - Setting up a Python development environment - Ubuntu Linux
- 0.2.2 - Setting up a Python development environment - OSX
Part 1 - Basic building blocks in Python
- 1.1 - Python
print
- 1.2 - Python variables
- 1.3 - Python
string
,integer
, andfloat
- 1.4 - Python
list
,dict
, andtuple
- 1.5 - Python user input
- 1.6 - Python loops
- 1.7 - Python files
- 1.8 - Python error handling with
try
andexcept
- 1.9 - Python command line arguments with
argparse
- 1.10 - Python configs with
configparser
Part 2 - Intermediate Programming Concepts
- 2.1 - Using version control with Git
- 2.2 - Project planning: Understanding the problem and coming up with a solution
- 2.3 - Installing and using 3rd-party Python libraries
- 2.4 - Python Virtual Environments and dependency management