行动者内刊

极客时间创作大使2023年度复盘

极客时间 极客时间创作大使

01|罗耀龙:茶艺师为什么有胆量用编程解决问题

讲述:罗耀龙 大小:9.81MB 时长:00:10:13
00:00
1.0×

你好,我是罗耀龙,很高兴在这里和你遇见。

这是我的2023年复盘,希望借这个机会把我的故事讲给你听,也期待能给你带来一些启发。

当茶艺师偷学编程

我想先分享一下2023年3月份我周报里的一段内容。

【里程碑事件】使用Go语言完成XX项目重构

目标:抖音直播间辅助拣货打包快递工具,从原Python测试脚本,重写成正式的Go语言程序

本次重构优化清单:

  • 代码、配置、处理文件分离,确保项目代码安全以及容易维护
  • 使用Go语言struct - interface特性,优化商品信息维护以及后续功能增强
  • 选择命令行界面,提升操作的流畅程度

后续规划:将该项目调整为微服务架构

不知道你看完啥感受,是不是觉得这项目特别简单。我得先补充介绍一下背景信息。

我是一位茶艺师,在深圳的一家茶庄里工作。或许你不太了解茶艺师是干什么的,简单来说,茶艺师就是运用茶相关的知识,展露茶冲泡技艺,引导到店的客人购买茶叶的“销售员”。

上面分享的周报内容,就是这样的一位茶艺师,靠着自学的编程知识,给自己的茶庄写程序。

这到底是咋回事儿呢?听我细细说来。

时间要再往前推大半年,那时我在偷看编程相关的书,结果呢被现场抓包。茶庄老板把我拉到茶室里,质问道:“你在偷偷看这些书(编程相关的书),你是不是不想干了?”

老实说,我当时着实被吓出一身冷汗。

幸好老板没有立刻让我滚蛋。这么一来我的想法是,编程还是得学,但是要尽力隐藏好自己,同时本职工作要做好,至少别出纰漏。

故事到这里要有转机了。茶庄为了另谋生路,决定要在抖音直播间上卖货。老板给我了任务,“每天的直播间发货,你来负责。”

这里给你翻译翻译,这个活儿是这样的:

  1. 手工整理抖音直播间的下单信息,统计出是谁(也就是下单者)买了什么东西;
  2. 给下单者准备好对应的商品,打包;
  3. 根据下单者信息,叫快递,获取返回的快递单号;
  4. 通过下单者信息,将快递单号与抖音订单号一一对应,手工填回抖店标记发货。

这已经是我在干了几天后摸索出来的标准流程(SOP)了,不出意外,老板要来加需求了:“保留下单者的信息。”

表面看着挺简单的,但想想,如果订单的数量多起来,我还能手工操作过来?难不成一整天给他一条条地复制粘贴?

肯定不行,我决定用编程来解决这事。

当然,我没忘记做好隐藏,在没人看到且不影响工作的情况下搞开发。很快,我设计出一条给程序用的操作思路。

  1. 获得所有的下单者信息(这个还得是手操);
  2. 将下单者信息与抖店订单一一配对(抖店订单可以导出,但是收件人信息全部加密),并且按照下单者的手机号码为【唯一标识】排序,得到了可用于拣货打包的表1;
  3. 将去重后的下单者信息,填入快递公司的下单导入模板,生成表2,这样的表2“喂给”快递公司的网页下单应用,就能批量下单,获得带有快递单号的表3;
  4. 将表1与表3,通过【唯一标识】下单者的手机号码,将抖音订单号与快递单号一一对应,生成表4;
  5. 将表4“喂给”抖店网页应用,就能完成抖店订单的批量发货。同时表1给老板,其他文件自动清除;
  6. 工作结束。

按照这思路,我很快就用Python写出了一个脚本,并且用了起来。经过几天的实战使用,中间我还迭代过几版,实实在在地感受到工具为自己省事。假设有25单,不用工具至少40分钟,用了工具10分钟不到,最重要的是还不用花大量精力来一一核对信息。

这时候我觉得火候到了,这才把老板叫过来,向他展示工具。 老板简直像发现了新大陆,拉着我在外面走廊一圈一圈地转,足足聊了有2个多小时。

从此,我就能明着干了,根据茶庄的实际情况,优化升级我的工具。到了2023年的3月份,我终于把工具从Python脚本重构为Go程序。比起简单脚本,现在程序功能已经丰富了不少。更重要的是,顺着给工具升级迭代,我开始并坚持着更加系统的编程学习。

为什么有胆量用编程解决问题

当时我这茶艺师为什么有胆量去想“用编程解决问题”? 是极客时间的这门课给我的底气:尹会生老师的《Python自动化办公实战课》。具体来说,还不全是课程内容,而是单单这标题就给我的脑里打进一束灵光。

“这种重复劳动,程序一定能搞定。”也是就着这灵光,我开始干起来。

说实话,到写这份总结的时候,这门课我是没有完全学完的。对于这门课,与其说是“学”,还不如说是在“用”

  • 快速浏览标题,看能不能与我自己所面对的问题有关联;
  • 点进去看看,看老师讲解例子,我能不能用上;
  • 就算不行,提取一下他的思路,看能不能给我点启发;
  • 有收获,或者没收获,离开,去别处找;遇到新问题,感觉可能在这能有收获,再回来。

因为当时用Python写,因此我也像这样同时去“搜寻”着极客时间的其他几门与Python有关的课程。顺着课程里的指引,跳到GitHub或者Google去看文档。实在实在不行,这才去百度。当然,以上的这些,我都没看完。

我就是这样跳着跳着,把我的Python脚本给“拼”出来了,跑一下,能动。用不了,迭代两三个版本,我就“炫技”似地整出个脚本的可视化界面,可以鼠标选择跑哪个功能,选择文件,也能显示脚本的运行状态,我给老板展示的就是这个版本。当然,这个版本我也是像上面那样“拼”出来的。

反思整个过程,就好像是这样的:

  • 有“自动化办公”这思路,可行,干!
  • 什么语言适合“自动化办公”,Python,安装!
  • 怎么写一个Python文件?查!
  • 如何用Python打开一个文件?查!
  • ……

再抽象一下,就是“带着一个最该解决的问题,寻找自己合适的工具,干活。”

不知不觉,自己的成果就出来了。

而且,在这个过程中我还深刻体会到一点,不要纠结一门课、一本书有没有“读完学完”。

因为不再纠结学完读完这一点,我在读书上反而有了更不一样的感受。给你分享我23年遇到的一本书。

相见恨晚的一本书

这本书的名字是《为自己思考:终身成长的底层逻辑》。偶遇时,我真的感觉相遇恨晚。大多数的书在我看来就是工具。对于工具,我是不会有这样的感觉的。 “相遇恨晚”,这描述的是人对人的感觉。

当我打开这本书,看着里面的文字,我清楚地感觉到,我面前,站着一个人。可能是白皮肤的、黑皮肤、黄皮肤的;可能是油画中智者的脸,或者摩根·弗里曼的脸(可能老是看到他演教授学者),或者某位老师的脸;也可能就是再年老一些的我自己的脸。

就是这样的一个人,看着我,看着我的行动,说着我会觉得“大逆不道”的话。当我缓过神,能品到话中的深意时,他对我浅浅一笑。

“看,你这不就干了吗?”

他说,你想成为作家,就去写你的作品,而不是坐在椅子上想象着自己成不了名。是啊,我就是看到了一个课程标题,就动手写了第一个实用的程序。

他说,允许你放下书本,不必啃完每一本书,也允许你点专栏的“退订”。可不,我就是在书和专栏里找有用的,没找到就先放下。

他说,你们往往会把自己与外在的那层表皮混为一谈,可表皮不是你们。恍然大悟,我这在茶庄训练了快4年的茶艺师,不也居然发展到想学编程开发工具嘛。

他说……

每次拿出这本书,就好像看见他在向我打招呼,“你来啦,自己随便。”听听他说的故事,听听他对事情的看法。但他就是看着我,时不时来一句,“哦,我看到了你的不服气与不认同,没事,你就听听。”看我再次回来时,他笑意更甚,“在我看来,你也干了类似的事却不自知。没事,来,说说看,你怎么想的?”

《为自己思考》这书我还没看完,但有个预感,我还会和他见很多次面,聊很多次天。

好了,这就是我的2023年。我想借《为自己思考》这本书的一句话给自己的2023做个总结,也把这句话送给你。

“我们往往会把自己与外在的那层表皮混为一谈,可表皮不是我们。”