Automating Everything With Python
Tags: python, beginners, startup, career
Published: 2020-02-19 01:15:59

# Introduction
Python is a general language for beginners to get started with programming. Python is used for automation due to a built-in standard library and other tools within the Python ecosystem. 

Which can be useful for anyone besides just a system administrator to automate certain parts of their process to make work much efficient. From data wrangling to just gathering market research data.

Due to this ease of picking up and the python ecosystem. Python is used as part of DevOps, Data Science, Marketing.
 
# Various Use cases for Automation
One of the use cases for automation is in the realms of building a list for sales or marketing purposes. Through the use of data scrappers tools like Selenium, Scrapy, Beautiful Soup to gather data from company listings from Techcrunch, LinkedIn and other industry websites.

The 2nd use case is to setup server configuration like puppet or chef for software deployment in cloud servers or clients. This includes system administration tasks like backing up of files for your backup server.

The other one that I believe is quite common is workflow automation by reducing the amount of time in manual work. Like transferring data from one point to another. It can be as simple as copying data from one excel file to the other, email autoresponders and setting up a schedule to run software to accomplish specific tasks. Like for me, I had a script that changes my desktop wallpaper daily. Which change my wallpaper to their daily bing image. 

# Doing More with Less
Due to the need to automate workflows to reduce the amount of manual work for a specific task and the emphasise of DevOps practices that spread among companies who adopt it.

QA testers & System administrators who want to do more or jump into the path of DevOps bandwagon. They are encouraged to move away from shell scripts and towards Python.

With books like [Automate the Boring Stuff][1] are taught to System Administrations and QA tester to create Python scripts to automate their processes. Like sending a notification alert in email or slack on the test status or hooking it up to CI/CD like Jenkins, Travis CI or CircleCI, GitLab CI to automate the manual work of testing, security compliance to deploy software.

# Tools or Skills to Automate Your Life
The general skillsets and use for automation is the understanding of Python programming and the use of git version control to store the scripts. 

Which course like [Google IT Automation][2] complement with books like [Hacking Sales][3], [Automate the boring stuff][1], [DevOps Hand Book][4] offers a starting point to automation.

Below is the list of Python-related tools to help in automation for specific tasks:

* System Administration
	* [Fabric][5]
	* [Salt][6]
	* [Psutil][7]
	* [Ansible][8]
	* [Puppet][9]

* Sales & Marketing
	* [Scrapy][10]
	* [Selenium][11]
	* [Splash][12]
	* [Pandas][13]
	* [Numpy][14]
	* [Requests][15]

* Software Testing
	* [PyTest][16]
	* [MyPy][17]
	* [behave][18]
	* [pytest-bdd][19]
	* [Karate][20]
	* [Tox][21]

# Conclusion
I hope you will find this article useful for those who interested in using Python to automate your task. 

Which introduces you on the various use cases that Python can be used for automation which does not fall under just the developer realm. This even includes the tools to automate your workflow, test automation or server administration.

If you like this article do **sign up** for my [Adventurer's Newsletter](https://maxongzb.activehosted.com/f/1) for my **Adventurer's newsletter** which contains interesting content I stumble across over the week in the area of **Python**, **Web Development**, **Startup**.

You can also **follow** me to get the **latest** update of my article on **Dev**
The original post was on [Automating Everything With Python - Reading Time: 3 Mins](https://www.maxongzb.com/automating-everything-with-python-reading-time-3-mins/) and cover image by [Dominik Scythe on Unsplash](https://unsplash.com/photos/Sot0f3hQQ4Y)

# Reference
* [DevOps Hand Book][4]
* [Hacking Sales][3]
* [Automate The Boring Stuff][1]
* [Google IT Automation][2]
* [47: Automation Panda - Andy Knight][22]
* [System Adminstration][23]
* [Automate All the Things With Python at Zapier][24]
* [Don't Learn To Code Learn to Automate][25]
* [Continous Integration][26]
* [Behaviour Driven Development][27]
* [Python for System Administrators][28]
* [Why is Cisco is Teaching Me Python][29]


[1]: https://automatetheboringstuff.com/
[2]: https://www.coursera.org/professional-certificates/google-it-automation
[3]: https://www.amazon.com/Hacking-Sales-Playbook-Building-High-Velocity/dp/1119281644
[4]: https://www.amazon.com/DevOps-Handbook-World-Class-Reliability-Organizations/dp/1942788002
[5]: http://docs.fabfile.org/en/2.5/
[6]: https://community.saltstack.com/
[7]: https://github.com/giampaolo/psutil/
[8]: https://www.ansible.com/
[9]: https://puppet.com/
[10]: https://scrapy.org/
[11]: https://selenium-python.readthedocs.io/
[12]: https://scrapinghub.com/splash
[13]: https://pandas.pydata.org/
[14]: https://numpy.org/
[15]: https://2.python-requests.org/en/master/
[16]: https://docs.pytest.org/en/latest/
[17]: http://mypy-lang.org/
[18]: https://behave.readthedocs.io/en/latest/
[19]: https://github.com/pytest-dev/pytest-bdd
[20]: https://github.com/intuit/karate
[21]: https://tox.readthedocs.io/en/latest/
[22]: https://testandcode.com/47
[23]: https://docs.python-guide.org/scenarios/admin/
[24]: https://talkpython.fm/episodes/show/199/automate-all-the-things-with-python-at-zapier
[25]: https://daedtech.com/dont-learn-to-code-learn-to-automate/
[26]: https://www.fullstackpython.com/continuous-integration.html
[27]: https://automationpanda.com/bdd/
[28]: https://developer.ibm.com/technologies/systems/tutorials/au-python/
[29]: https://blogs.cisco.com/developer/why-is-cisco-teaching-me-python