「2016 与我的数字生活」年度征文入围作品

今年,我们在  2016 年度盘点 中举办了一次大型年度征文活动,鼓励大家围绕「数字生活」为主题,回顾刚刚过去的 2016 年。我们给予最开放的选题、最自由的投稿方式、有史以来最丰厚的 奖品,以及跨越春节的两个月充足时间,等你参与。你可以 点此查看 活动规则和奖品清单。

本文是「 2016 与我的数字生活」征文活动的第 32 篇入围作品,我们会在两个月的活动期内,不定期从收到的投稿中挑选发布优秀的文章,你可以 点此查看 之前的入围文章。所有经此发布的文章,即为已入围征文活动。本文仅代表作者本人观点,少数派仅对标题和排版略作调整。


每个人的一生,都会有几个对今后的人生影响深远的时间节点,比如高考填志愿的那一天。在志愿表的学校那一栏,我写下「华南理工大学」,但是,是读会计学?还是软件工程?一念之差,会计学成了第一志愿,后来我也如愿被录取了。但接下来的大学四年,我过得心不在焉,那感觉就像在和一个不喜欢的人谈恋爱。

但大学仍然是快乐的——我开始折腾数码产品,从诺基亚 5300 开始,到各主流系统机型都折腾个遍,泡论坛、下载 App、刷机……作为「搞机党」,进阶的道路在我眼前,但我不会写代码。

毕业后,我留在了当时实习的审计事务所,开始朝九晚五上班族的生活。在某些灵光乍现的晚上,我也想过,要不要自学编程呢?教材买了一大摞,但每次学不了几天就放弃了,倒是学会了几种语言的「Hello World」。

IMG_5210.JPEG

在这反反复复的过程中,当然会有自我怀疑——「我是不是根本就不适合做编程」 「现在开始可能太晚了」每当这时候,我的老婆小饭就会甩一颗「知乎牌鸡精」给我「种一棵树最好的时间是十年前,其次是现在」。

2016 年春节,我开始第 N 次重新学习写代码,依然从 Hello World 开始。

人生苦短  我用 Python

看了很多资料后,我发现对于我这样零基础的外行来说,Python 可能是上手的最佳选择:

  • 语法简单直白,便于理解学习;
  • 有大量开源的第三方包,能用已有方案快速解决问题;
  • 学习资料丰富,你遇到的问题很多人也遇到过,只需 Google 一下就有解答;

如果门槛没那么高,就更容易坚持下去。当学会第一种编程语言后,就大致了解了编程的思路,之后再去学其他语言就不会无从下手了。

坚持的动力,来源于真正的需求

大家背英语单词可能有过这样的体验:从第一个单词「abandon」开始,背不了几页就真的abandon(放弃)了,过段时间又重新开始。学代码也是如此,这次我之所以能坚持下来,是因为我遇到了真正的需求。

看了一段时间的《Python 基础教程》之后,我想做个东西练手。正好那时候对现存的 Instagram 第三方存图 App 都不太满意(清晰度低、失败率高、广告烦人等等),于是就自己用 「正则模块」写了个小脚本。

WechatIMG4.png

QPython for Android  

但这个小脚本只能在我自己的 Android 手机上用,小饭的 iPhone 用不了(当时还不知道 Pythonista 的存在)。那时的我连最「hello world」的 iOS App 也写不出来,于是我想到利用微信公众号的开发者接口,将这个功能在公众号上实现。这就是我的公众号「inskeeper」的由来。

IMG_5178.JPG

2016 年 3 月 24 日,「inskeeper」上线,我在朋友圈告诉了朋友们,他们成了第一批用户。与 App 不同的是,公众号自带的对话框让我能收到很多来自用户的反馈。

比如,最开始的存图页面就是一张图片而已(因为啥也不会),后来有用户说想拷贝 ins 图片的配文,我就去 W3school 学习 HTML、CSS 做出来一个简单的存图页面,这样就能获取到相关文字。

IMG_5180.JPG

当知道用户拷贝文字是为了完成翻译,我就继续去 W3school 学习 Javascript、Ajax,利用网易的接口做了个翻译按钮(但由于使用人数太多,免费 API 调用频率在第一天就用超了)没过几天 Instagram 官方也上线了类似的翻译按钮,于是我把翻译功能由按钮改成对话框式翻译,这样既能减少 API 使用次数,还能支持「中译外」。

IMG_5183.JPG

 后台经常有用户问「XXX(通常是明星)的 Instagram 账号你知道吗」,我灵机一动,可以建一个 ins 明星资料库!于是我去 菜鸟教程 学习 SQLite,现在用户只要回复明星的名字,就可以直接查看保存该明星的 Instagram。

IMG_5185.JPG

我们在「inskeeper」的推文中有一个「今日壁纸」栏目,专门推荐 ins 上的美图博主。但 ins 的图片大多是正方形,经常会有用户留言「图片比例不对,不适合做壁纸」。某天我在朋友圈看到有人发了一张「正方形图片在前,背景高斯模糊」的壁纸,当时就觉得可以直接用 Python 做出这种效果,正好解决了 ins 图片比例不适合做壁纸的问题。

那时候刚好「十一」放假在老家,没带电脑,于是我用手机端的「Pythonista」学习了 Python 的 PIL 模块,开发出 inskeeper 的「自制壁纸」功能。除了上文提到的风格(下图左)之外,还增加了全新的 Expand View 模式(下图右)

info.jpg

 后来为了更好的体验,我将这个壁纸功能单独做成了微信小程序「IN 壁纸」。你可以看到,它的 UI 很简单,图标都是我用 PPT 上的简单几何图形拼接的,因为不会用 Sketch 等工具。这也是我现在需要恶补的一块(UI设计)

info2.jpg

许多个白天和夜晚,我坐在电脑前,一关一关去攻克那些陌生的「怪兽」。是用户不断的需求让我坚持了下来,有那么多人在用我的产品,我想让它变得更好。

随着「inskeeper」的成长,它的用户组成也越来越复杂:技术派、追星族、美图党、文艺青年、设计师……其中追星族这个群体的特点尤其鲜明,于是这个月我为他们开发了一个全新的公众号「ins 爱豆」,实现了之前由于个人号权限问题无法完成的「明星更新 ins,马上通知你」的功能:

IMG_5189.JPG

当然,由于基础知识不牢,见过的场面少,自学也会走不少弯路:比如最近给「ins 爱豆」做用户数据存储,由于设计上的低级错误,导致访问量稍高一点就 CPU 飙升,折腾了好几天才发现错在哪里。

IMG_5172.PNG

这些掉进去的坑,也是成长的过程。那些靠 Google 解决不了的超出经验外的问题,如果你周围有一两个程序员朋友可以请教,也许一个关键词的提醒就能豁然开朗。 

从数字生活的消费者成为生产者

2016年,因为学习编程,我的生活也发生了很多变化:

做了公众号之后,我开始规律性地写文章:比如某些图像编辑 App(如 SnapseedVUE的使用技巧;比如 MacBook、AirPods 的使用体验;比如开发完一个小程序后,对小程序的看法……

IMG_5198.JPG

 我认识了一些志趣相投的朋友,还发现了「少数派」这个地方,也开始在这里分享一些更「少数派」的东西;有一位少数派用户表示我的文章对他有用,还特意发微信红包打赏。看到自己的创造得到别人的肯定,确实是一件开心的事情。

111.jpg

 会写代码之后,「搞机」折腾就能玩出更多花样——用乐高 EV3 做的简易延时摄影小车:

14717606_1091656557598274_1957820628102807552_n.jpg

用树莓派的和 HomeKit 搭建的,Siri 控制台灯:

ezgif-3-068ea4a14d.gif

如果你也想做这样的台灯,可以参考 JohnHarrod 这篇《智能宿舍搭建 1 | 借助树莓派与 HomeBridge ,将 YeeLight 彩光灯接入 Apple HomeKit》

工作环境&生产工具

作为一个自由职业者,工作就是在自己家,下图是我的工作台和部分「生产工具」:

IMG_5006.JPG

以下是我主要使用的设备清单(因为都是比较常见的品牌产品,就不作太多的介绍了)

  • MacBook pro 15" with Touchbar  笔记本
  • Filco Minila Air  机械键盘
  • Magic Trackpad 2  触摸板
  • LG 5K UtralFine Diskplay for Mac  显示屏
  • Bose Soundlink mini 便携音响
  • iPhone 7 plus  手机
  • Apple Watch 2  手表
  • AirPods  无线耳塞
  • AKG K3003  有线耳塞
  • iPad Mini4  平板电脑
  • LG G5  备用测试机
  • Sigma DP2Q  相机

重点推荐一个设备——「紫米」移动电源 + 移动 Wi-Fi 组合,配合运营商的日租卡*套餐,出门在外再也不用担心流量不够用了。

*具体套餐情况,致电运营商咨询,各地套餐情况不同。

IMG_5208.JPG

PS. 上面的电路板是用 3M 胶把「树莓派 Zero + Wi-Fi 网卡」粘在上面,做成了一个便携 Linux 系统,可以随手练习 Python 等。

最后的一些话

直到现在,偶尔我也会想,如果十年前高考志愿表上的顺序反过来,会怎么样?也许我已经是个很厉害的程序员了?

但「悟以往之不谏,知来者之可追」,庆幸的是,我找到了自己喜欢并擅长的事,并且似乎有越做越好的迹象。2016 年也成为我人生中另一个重要的时间节点。


(如果你喜欢这篇文章,我们鼓励你在文末点赞和评论,这会成为 征文活动 最后评奖的参考之一,你可以 点此查看 之前的入围文章。