当前位置: 首页 > news >正文

让生活多一些 Pythonic

远离内卷,让我们慢慢的品味生活,保障是我们永恒的主题,我是石巍。

今天,咱们聊一聊 —— 用手艺改善生活体验 —— 让生活多一些 Pythonic

所谓 Pythonic 就是很 Python,营销的广告从 99元学 Python 到 9块9 处理 Excel,再到如今免费送,这气氛就像如果你还不会写 Python 你就不是社会人了。

Python 手艺人

其实,会写 Python 就像会做饭一样。但在市场营销下,却渲染得是个人人都得会的技能,而实际上,就像并不需要人人都能成为会做饭的厨师一样,也并不需要人人都是 Python 程序员。倘若能炒个家常菜,便能让生活充满人间烟火,稍微会写几段 Python 代码就能让生活得到改善。如果你不会做饭,你也会发现,这完全不影响你体验舌尖上的美妙,下馆子、点外卖,生活变着花样的让你享受。所以,如果你不会写 Python,不会用 Python 处理 Excel,也完全不用焦虑,你要的只是最终的展示,至于用 Python 还是用饭勺,真的没有那么重要。

当这个世界还在拼命宣传用 Python 做表格做汇报在职场炫技的时候,我们完全可以静下心来,看一看这种手艺能给我们的生活带来怎样的新鲜。

为什么说 Python 是门手艺呢?

如果你需要一把椅子,那么只要会木工,就可以量身定制一把。同样的,如果你需要一段程序,那么会编程的话,也可以量身定制编写一个。所以,从本质上讲,都是靠手的技能做出的工作,可不就是手艺么。

生活中也可以用 Python

我用 Python 处理过 Excel,但没有用来生成图表,也许不难吧,但我的确不会。

最近,因为一些特殊的原因,我得到了一个原始需求 —— 做饭

做饭对我来说,略显无奈,虽然现在有很多 APP 解决了哪里买和如何做的痛点,但对于我这样一个厨盲来说,并不能解决我面临的问题。

比如炒个香菇青菜,做菜 APP 告诉了我青菜香菇放多少,配菜如何配,但其实我知道的菜名屈指可数,如果靠浏览 APP 来获得菜单,一个一个照着做,我想,我一定是非常热爱烹饪,才会把每天的时间都奉献给了烹饪。

不过,就像游戏中打怪升级一样,我在半路获得了一本武功秘籍 —— 一个长达 15 页的健康餐 PDF,它告诉你如何规划健康减脂餐,如何配置每天的卡路里,这对于心中有谱的人来说,已经很好了,有参考可依,根据食材清单,一天的饭菜已在心中。可是,像我这样一个厨技为负,连续剧活不过第一集的人来说,如何能在保住大脑的情况下,从 15 页文档中的食材清单里,汇总出一周菜单呢?

于是,我的第一个内驱需求产生了:随机生成菜单

研究了一天的秘籍,把菜品按类整理,按照卡路里组合规律,从各类菜品中随机选择搭配,就这样有了第一个成品:用一条命令即可生成一天、一周甚至一个月的菜单,并且菜品尽量不重复。

为了方便获取菜单,我还把它做成了网页版本,只要通过浏览器访问就能每次随机生成菜单。

我满心欢喜,终于可以跟那 15 页的秘籍 say goodbye 了。

然而,当我尝试去采购食材的时候,我又陷入了沉思。

我总不能按照每顿菜量去采购吧,那样不但零零散散,还容易造成量小无法采购的囧状,毕竟,没有那时间天天逛菜场,汇总集中采购才是科学的做法。

所以,这第二个内驱需求也随之产生了:汇总采购清单

在经过一系列的加减汇总处理之后,我吃惊的发现一周的采购清单长到难以接受,究其原因,原先美好的愿望 —— 每天不重样,却给采购带来了巨大的压力。

于是,我不得不再去修改菜单的搭配策略,尽量不重样的情况下,又限定了一轮采购周期中菜品的种类,好让集中采购更容易一些。

就这样,又花了一整天的时间,一个很糙,但可以凑活用的生活小工具投入使用了。至于成品的样子,可以访问网址 https://will.bowxeon.com/health-menu/week

不必只迷恋技术

这样一个手工,其实技术本身没有难度,但要做好它,也不容易,需要对场景的理解和体验。

如果想做得更人性一点,比如是否考虑季节对饮食的影响,是否考虑地域对口味的偏好,有没有菜谱的链接,是否有可能一键下单等等。

这样的手工不会给工作带来效能,也不会让自己在技术上得到升华,但它也许可以给自己的生活带来一些不一样的体验,至少,不会比没有它时更糟。

就像木工偶尔也会给自己打造一款木制玩具一样,生活中也不必那么的不苟言笑,我们不必只迷恋技术,让我们自身的技能除了用于工作,也能给自己的生活带来些许美好。

给学习者一些启发

很多朋友,经常会误以为我什么都会。其实你看,做菜我就不会。有一些知识,只是恰巧比一些人略懂那么一丁点。

很多知识的积累,是一个循序渐进、水到渠成的过程。

比如这次,我想自动生成菜单,于是我用上了 Python,后面觉得用电脑敲命令有点不符合家庭使用习惯,于是利用 Flask 渲染出了网页,我想把它方便的部署到一台服务器上,就用 Docker 去做了构建,当然我本来有个用 Jekyll 搭建的网站,所以用了 Nginx 做网关,使得新页面可以公网访问。

这样一看,是不是觉得,每个阶段都是一步一步过来的,知识也是一点一点的了解过来的?每个阶段其实不会用到很深的知识,都是刚刚好的程度。

我经常会说,体会一项新技能,就是在场景中练习它。

只不过每次说完,伙伴们总无奈的表示没有场景。

最终又走上了漫漫深度学习之路,从入门到放弃,倒不是说深度学习不好,只是,人是个情感动物,长期投入而无法看到成果,毕竟是个磨人的状态。

对于没有场景的无奈,我总是会说:场景需要自己去发现和设计

就像法国雕塑家罗丹所说:生活中不缺少美,只是缺少发现美的眼睛。

希望今天的分享能给一些想要学习却找不到实践场景的朋友,带来一些启发。


我是石巍(Will),质量保障、DevOps 效能提升专家。

相关文章:

  • 从研发效能的视角谈“故障复盘”
  • 居家办公的团队协作模式改进思考
  • 盘点下这些年来改变自己的一些重要时机
  • 金融业分布式数据库选型及HTAP场景实践
  • 一场电信诈骗和我擦肩而过
  • 技术分享 | MySQL 设置管理员密码无法生效一例
  • 7个人生工具:SWOT、PDCA、6W2H、SMART、WBS、时间管理、二八原则
  • GoldenGate案例一则:抽取进程无法捕获数据
  • 最近的一些杂感-20220613
  • 针对 MySQL/InnoDB 刷盘调优
  • 技术分享 | MySQL 编写脚本时避免烦人的警告
  • 十多年前的入职第一天
  • 招贤纳士-第23期
  • 技术分享 | MySQL:caching_sha2_password 快速问答
  • MySQL8.0账户system_user权限,你了解吗?
  • chrome扩展demo1-小时钟
  • gcc介绍及安装
  • JavaScript 奇技淫巧
  • JavaScript中的对象个人分享
  • Nacos系列:Nacos的Java SDK使用
  • opencv python Meanshift 和 Camshift
  • Vue.js-Day01
  • vue-loader 源码解析系列之 selector
  • vue脚手架vue-cli
  • 浮动相关
  • 记录一下第一次使用npm
  • 聚簇索引和非聚簇索引
  • 删除表内多余的重复数据
  • 微信小程序:实现悬浮返回和分享按钮
  • 学习使用ExpressJS 4.0中的新Router
  • 最近的计划
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​马来语翻译中文去哪比较好?
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • $.ajax()
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (4) PIVOT 和 UPIVOT 的使用
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (五)IO流之ByteArrayInput/OutputStream
  • (转)Scala的“=”符号简介
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET 反射 Reflect
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • @Async注解的坑,小心
  • @synthesize和@dynamic分别有什么作用?
  • [ActionScript][AS3]小小笔记
  • [AR Foundation] 人脸检测的流程
  • [ArcPy百科]第三节: Geometry信息中的空间参考解析
  • [C#]C#学习笔记-CIL和动态程序集
  • [c++] 什么是平凡类型,标准布局类型,POD类型,聚合体