2020年初，我开始了新的语言学习。不同于以往的自然语言学习，如法语，德语，英语，今年我要开始系统得学习编程语言，侧重于python和R。其实我对data science 一直有兴趣，但是却一直没有时间。给自己一年的时间来系统学习关于IT automation是个不错的选择。
课程是coursera网上课程Google IT Automation with Python。依旧是课程介绍英翻中。
This new beginner-level, six-course certificate, developed by Google, is designed to provide IT professionals with in-demand skills — including Python, Git, and IT automation — that can help you advance your career.
Knowing how to write code to solve problems and automate solutions is a crucial skill for anybody in IT. Python, in particular, is now the most in-demand programming language by employers.
This program builds on your IT foundations to help you take your career to the next level. It’s designed to teach you how to program with Python and how to use Python to automate common system administration tasks. You’ll also learn to use Git and GitHub, troubleshoot and debug complex problems, and apply automation at scale by using configuration management and the Cloud.
1.Crash course on python. This course is designed to teach you the foundations in order to write simple programs in Python using the most common structures. No previous exposure to programming is needed. By the end of this course, you’ll understand the benefits of programming in IT roles; be able to write simple programs using Python; figure out how the building blocks of programming fit together; and combine all of this knowledge to solve a complex programming problem. We’ll start off by diving into the basics of writing a computer program. Along the way, you’ll get hands-on experience with programming concepts through interactive exercises and real-world examples. You’ll quickly start to see how computers can perform a multitude of tasks — you just have to write code that tells them what to do.
2.Using Python to interact with the operating system. By the end of this course, you’ll be able to manipulate files and processes on your computer’s operating system. You’ll also have learned about regular expressions — a very powerful tool for processing text files — and you’ll get practice using the Linux command line on a virtual machine. And, this might feel like a stretch right now, but you’ll also write a program that processes a bunch of errors in an actual log file and then generates a summary file. That’s a super useful skill for IT Specialists to know. We’ll kick off by exploring how to execute Python locally, and organize and use code across different Python files. We’ll then learn how to read and write different types of files, and use subprocesses and input streams. We’ll also dive into Bash scripting and regular expressions — both very powerful tools for anyone working with systems. We’ll even touch on automatic testing, which allow us to automate how we check if our code is correct. To finish, we’ll put all this together by using the tools that we’ve acquired to process data and generate automatic reports. We’ll also explain how to set up your own developer environment in your machine. This is a key step in being able to write and deploy powerful automation tools.
第二个课程是用Python与操作系统互动。课程结束后，你将能够操纵你的操作系统里的文件和进程。你将学习正则表达式（regular expressions）- 一个非常强大的处理文本文档的工具， 并且你将会学习在linux虚拟机里写命令符。
3.Introduction to Git and Github. In this course, you’ll learn how to keep track of the different versions of your code and configuration files using a popular version control system (VCS) called Git. We’ll also go through how to setup an account with a service called GitHub so that you can create your very own remote repositories to store your code and configuration. Throughout this course, you’ll learn about Git’s core functionality so you can understand how and why it’s used in organizations. We’ll look into both basic and more advanced features, like branches and merging. We’ll demonstrate how having a working knowledge of a VCS like Git can be a lifesaver in emergency situations or when debugging. And then we’ll explore how to use a VCS to work with others through remote repositories, like the ones provided by GitHub. By the end of this course, you’ll be able to store your code’s history in Git and collaborate with others in GitHub, where you’ll also start creating your own portfolio! In order to follow along and complete the assessments, you’ll need a computer where you can install Git or ask your administrator to install it for you.
4.Troubleshooting and debugging techniques. In this course, we’ll give you the tools to quickly identify and solve real-world problems that you might come across in your IT role. We’ll look at a bunch of different strategies and approaches for tackling the most common pitfalls of your code and IT infrastructure. You’ll learn strategies for approaching almost any technical problem and then see how those apply to solving different real-world scenarios. We picked examples that include general system issues, issues with software that someone else wrote, and issues with programs that we wrote. We’ll talk about problems that can affect any operating system, and we’ll also look at challenges specific to certain platforms and scripting languages. We strongly recommend that you’ve taken the prior courses in this program, or already have knowledge of Python and Linux so that you can follow along with our troubleshooting examples.
5. Configuration management and the Cloud. In this course, you’ll learn how to apply automation to manage fleets of computers. You’ll understand how to automate the process for deploying new computers, keeping those machines updated, managing large-scale changes, and a lot more. We’ll discuss managing both physical machines running in our offices and virtual machines running in the Cloud. We’ll start by looking into an automation technique called configuration management, which lets you manage the configuration of our computers at scale. Specifically, you’ll learn how to use Puppet, the current industry standard for configuration management. We’ll look at some simple examples, and then see how we can apply the same concepts to more complex cases. You’ll be a Puppet-master in no time! Later on, you’ll expand your automation skills by understanding how to use the Cloud to help scale your infrastructure. You’ll check out some best practices for handling hundreds of virtual machines running in the Cloud and troubleshooting them when things don’t go according to plan.
6.Automating real-world tasks with Python. In the final course, we’ll tie together the concepts that you’ve learned up until now. You’ll tackle real-world scenarios in Qwiklabs that will challenge you to use multiple skills at once. First, we’ll take a closer look at how to use external Python modules to extend your code’s capabilities, and spend some time learning how to use documentation to learn a new module. For example, we’ll use the Python Image Library (PIL) to create and modify images. We’ll show you some simple examples of how to perform common tasks in the course material, but it will be up to you to explore the module documentation to figure out how to solve specific problems. Next, we’ll show you how to communicate with the world outside of your code! You’ll use data serialization to turn in-memory objects into messages that can be sent to other programs. Your program will send messages across the network to Application Programming Interfaces (APIs) offered by other programs. For those times when your code needs to talk to a person instead of a program, you’ll also learn to send email messages. At the end of this course, you’ll be able to take a description of a problem and use your skills to create a solution — just like you would on the job. In your final capstone project, you’ll be given a description of what your customer needs, and it will be up to you to create a program to do it!