识字曾经是抄写员和牧师的领域。 后来,世界变得更加复杂,要求每个人都阅读和写作。 计算机也是一种识字形式,但如果只有程序员这个神职人员才能理解它,对于我们复杂的在线世界来说是不够的。“学习编程”已成为所有年龄段教育的口头禅。 但是,在清除炒作之后,为什么人们需要学习编程? 它到底能给我们带来什么?
不是每个人都需要成为软件工程师,但几乎每个办公室工作人员都将笔记本电脑作为日常工具。 计算机是如此巨大的生产力助推器,因为它们支持为这些工作人员设计的大量程序和应用程序市场。 但是商业和开源软件都存在“最后一英里”问题:它们不会自动化所有可以想象的任务。 仍然有一些计算琐事需要大量重复(并且相当无脑)的打字和点击。 即使您有一个实习生来推动这些任务,它们也是需要人的任务,因为没有软件可以自动化它。 这些任务对于软件公司来说规模太小或太具体,无法经济地创建自定义解决方案。
这就是日常编程可以拯救的地方。 一点编程知识可以让任何人编写小脚本来完成这些任务,并节省他们数小时(或数周或数月)的精力。 虽然 Excel 具有可编程宏,Outlook 具有可配置的电子邮件规则,但在像 Python 这样的真正编程语言中进行编码具有更强的适应性和强大的功能。 尽管它以类似于“火箭手术”而闻名,但编程只是一种像驾驶汽车一样的技能。 您在参加驾照考试时可能感到紧张,但之后操作机动车辆就成了现代生活的日常部分。
我的最新著作用 Python 自动化繁琐的事情跳过了计算机科学,只教授足够的 Python 编程知识,以达到实用的技能水平。 每个人都掌握这些技能非常重要,因此我在 AutomatetheBoringStuff.com 上根据 知识共享 许可免费提供该书的在线版本,此外还通过 No Starch Press 出版印刷版。 本书的第一部分是针对流行的 Python 语言的初学者的通用编程教程。 第二部分介绍了可用于自动化任务的 Python 模块。
但是人们将能够编写的这些任务是什么? 我发现它们通常分为六类
1. 收集数据,格式化数据
正则表达式(第 7 章)允许您对计算机进行编程以进行文本模式匹配。 您一直都在自己进行模式匹配:文本模式是您如何判断 415-555-1234 是一个电话号码,而 4,155,551,234 不是。 如果您知道正在寻找的数据的一般模式,您的笔记本电脑可以比您滚动浏览文档更快地收集您需要的确切信息。
假设您有一个过去五年每月销售数据的庞大 PDF 文件。 或者您可能有 60 个单独的 Excel 文件形式的数据。 或者它位于一个网站的多个页面上,要求您在浏览每个页面后单击“下一步”链接。 我们需要的数据通常采用不方便的格式。
Python 有几个模块可以从 PDF、Excel 电子表格、Word 文档、网站、CSV 文件和其他格式读取数据。 从数千个文件中读取数据对您的笔记本电脑来说不是问题。 一旦您的程序加载了这些信息,它就可以以您的组织需要的任何格式输出。 这肯定比手动复制和粘贴文本要好。
2. 一批指令
您可能学到了一些键盘快捷键:按 Ctrl+A、Ctrl+C 比将鼠标移动到菜单并单击“编辑”、“全选”,然后“编辑”、“复制”要快得多。 想象一下,如果您可以创建自己的快捷方式。 编写一个可以启动其他程序或执行现有命令的程序(第 15 章)可以让您将多个步骤变成一个步骤。 您可以编写程序来控制键盘和鼠标(第 18 章),自动填写表格等等。 这是一种可以长期节省您大量精力的技巧,特别是对于您经常执行的命令。
3. 批量文件操作
将文件复制到闪存驱动器很简单。 但是一些文件操作并不那么简单。 如果您只需要复制在过去一周内具有修改时间戳的文件怎么办? 或者如果您需要重命名数百个文件,以便根据它们所在的文件夹在其名称中添加前缀怎么办? 而且您需要对分布在几个不同文件夹中的文件执行这些操作? 编写一个程序来根据您的特定标准复制、移动、重命名、删除或压缩(第 9 章)可以快速准确地为您完成此类文件归档。
4. 自动检查
检查错别字是一项常见的任务,因此经常在软件中找到。 但是检查对您或您的组织的需求特别的问题呢? 假设一位同事每天通过电子邮件向您发送带有电话号码的电子表格,并且您需要知道其中是否缺少区号。 或者您有有时缺少数字的 PDF 报告。 自己查看这些内容既乏味又容易出错。 您可以编写脚本来检查缺少的数据或不符合有效文本模式的数据(第 7 章),从而将自己从这些琐事中解放出来。
5. 通知
也许您有过一次又一次地单击浏览器中的“刷新”,等待网页更新您需要的信息或您想要注册的服务的经历。 这是一种排队等候的任务,计算机可以为您检查,并在准备就绪时向您发送电子邮件或 SMS 文本通知(第 16 章)。 一个长时间运行的程序可以每天、每小时甚至每隔几秒读取一个网页(第 11 章)或其他来源(第 15 章)。 无论您是否使用笔记本电脑,它都可以检查更新。 这样,您甚至不必在笔记本电脑前才能收到通知。 您的程序可以通过短信通知您的智能手机。
6. 报告
编译报告是一项繁琐的工作,但收集和格式化信息可以自动完成(如第一类所述)。 您的报告生成程序可以每天或每周一次启动定期报告(第 15 章),您的代码可以将这些报告通过电子邮件发送给需要它们的人(第 16 章)。 您为对前几类中的程序进行编码而学到的所有技能都可以用于完全自动化地向同事和经理发送定期报告。
如果他们学会了编程,您的同事和经理可以编写代码来自动读取报告以获取任何可操作的信息。
您的笔记本电脑是一个强大的工具,您可能已经在您的职业或个人生活中使用了多年。 您不必仅限于使用其他人创建并出售给您的软件。 通过学习编程,您可以最大限度地提高其生产潜力和您自己的潜力。
要阅读人们为激发自己的想象力而自动执行的任务的示例,请查看 Reddit 上的此对话。
6 条评论