趁女儿睡着了,我终于有时间写篇 2016 年的总结,希望能赶在新年第一天结束前写完。这一年对我来说很特别,我做了很多技术和非技术的尝试:

  1. 写了一本书《Python Web 开发实战》,到现在已经印刷了 7k 册,还有 3k 册正在筹划中。这本书未来还会输出到台湾。凭借此书我还获得了博文视点「优秀作者」殊荣,呵。
  2. 9 月份弄的知乎专栏「 Python 之美 」,有 7k + 订阅者。虽然于 11 月初就不再更新。
  3. 11 月 15 日开始弄的微信公众号「Python 之美」到现在已经超过 2400 的订阅者。当然距离一些大号还是很遥远的。
  4. 在开发者头条的独家号「 Python China 」已经有 15k + 的订阅者,总排名第 15。
  5. 从 12 月初开始在 掘金 写专栏,其实就是把我的文章顺便拷贝上去,现在已经获得 1k + 的喜欢,我也有了 1k + 个关注者。
  6. 在 12 月 27 日举办的首次知乎 Live Python 工程师的入门和进阶 ,获得 3k + 人参加,4.5 星评价。也算验证了知识变现。

这一年除了技术,我也学到了很多其他方面的成长和理解。今天和大家分享下。

写书

如果你不断的学习,在成长的路上会遇到多个瓶颈。我在去年也遇到了:学习 Python 进入一个迷茫的阶段,不知道下一步该怎么提高了,这个时候通常有三个选择:学习一门其他的语言、朝着管理的方向、换个工作 / 行业(比如转行去做 PM),当然还有一个选择,就是继续深入 Python,但是需要重新审视自己和 Python 这门语言。现在的互联网环境太浮躁了,相信很多人会选择第一种,学习下其他语言。我 Python 还学的远远不够,因为我知道有哪些东西我不会,没学好,没尝试过。

在 Live 里面也讲过我之前的一个面试的故事。当时我学习了很多 web 框架,但是没有一个足够深入,面试时面试官问题问的都很深入,弄得我很尴尬。

参加过 Pycon2012 的北京场,当时有很多出版社都在摆摊,我就无聊去翻,那个时候我应该连语法都没学全,但是可能面相比较老成,其中某出版社的工作人员,可能也是个编辑,问我:「有没有兴趣写本书?」我当时还是很懵逼的,我当时说:「一个东西你不学习 5-10 年甚至更久,怎么有资格写书呢?」嗯,后来这个出版社的书我就很少买了。

我记得最早是在 2013 年的时候,Puppet 当时很火,出了好几本书,可能由于在国内算玩的很早的,当时还有编辑邀请我写书,我显然是写不了的,因为已经不是一个运维了。说句题外话,当时竟然没有人找安居客的人写 puppet 的书我还是很惆怅的。再后来也有人找我写书,我都是婉拒了,因为我觉得还是得沉淀下,直到去年年底。

这本书我有很多值得骄傲的,但是也有一些遗憾的。如果现在让我再写一本显然我会写的好的多(虽然暂时我并不会再写了,2018 年之后,Python 3 假如开始露头之后倒是可以找我聊聊)。非常感叹国内的出版环境,希望越来越好。如果有同学正在写书,可以看看 写一本技术书籍 ,希望带来点灵感。我非常希望在国内写过书的作者们都能出来分享一些经验,也希望出版社能对写书做一些系统的培训,而不是作者摸着石头过河,徒增很多弯路。

下一本书,我想写一本开源图书。

知乎 Live

最近一个多个月开始,我开始了一种新的学习方式:每天上下班都是在听购买的知乎 Live,类型各异,比如旅游、育儿、英语、美食,当然也有技术。我非常支持技术变现,也感谢知乎提出 Live 这种形式,虽然渐渐的也能发现一些滥竽充数的,不过目前总体来看还是朝着好的方向在走。为了赶上在上坡路时候才尝个鲜儿,也是为了让知友在看 Python 相关的问题时,我的 Live 都出现在右侧「相关 Live 推荐」中,我也开了一场。感想很多:

  1. 准备的问题的数量不要太多。我准备了 12 个问题,当时还是尽量朝着一个 Live 把我想表达的、自认为最有意义的问题都列出来。而且也比较自信对时间的把握。结果在我说完第一个问题的时候我就发现,已经差不多用了 20 分钟了.. 当时立刻慌了,再之后的一些问题都做了些简化。本来想预留 10-20 分钟用来 QA 和大家互动,结果问题聊完已经 80 多分钟过去了... 所以再来一次的话,问题还是控制在 8 个或者以下吧,别贪多。
  2. 别太自信。我这个人从念书还是就不爱记笔记,做过一些分享,也基本属于心理默默的打过草稿,却没实际的整体演练一次。提到的问题,大部分我都是像写小说那样写好了底稿,中间有些地方觉得写的不好的或者表达不够的地方加了些标记:我特别喜欢临场发挥出的灵感,因为偶尔在压力下会有特别好的效果。所以最后 4-5 个问题没有写那么清晰的底稿,只是写了一些关键词,句子之类的,也是由于忙没有整理成可读的一段话。结果由于过程中我老关注时间,有时候卡壳,有时候真的是靠临场发挥,说实话并不满意,以后这种场景还是老老实实的写好底稿吧。
  3. 考虑录的语音要重录的情况。在实际的录音中,有时候说完一段话,不满意,比如中间一些词语发音觉得不合适,通常是由于我的籍贯问题,对卷舌翘舌有时候着急了分不清,那就要重录,重录不满意又要重录,这个过程大家都在等你,无形中也是一种压力,而且这种重录的情况也要放在规划 Live 的时间里面,留有一些余地。
  4. 我在听其他的 Live 的时候,直接选择了 150 人可参与讨论,当时比较担心人太多了刷屏,量多也会影响我从大量的问题中向前翻找典型的问题的时间。但事实上其实大可不必,因为知乎提供了「只看主讲人」模式,而且也提供了一个「待回应」的功能,未回应的问题会列出来,很有用。所以感觉 500-1000 人甚至全部可唠也还好。
  5. 使用问题反馈问卷。上面限制能互动的人数,就会造成后面来的同学参加了只能看和点喜欢,我觉得这种方式不好。开 Live 之前,我听过几个 Live,除了学习一些知识,也是在学习经验。我在其中一个 Live 中学到用问卷,不过到我这里就变成了「 Live 问题收集 」,你可以从问题中 12 个问题中选择你最感兴趣的 8 个问题,最后帮助我决定回答每个问题花费的时间和深度。还可以提交你最想了解的问题,这样我在最后整理的时候就能找到一些典型的问题拿来回答,防止前 150 个人不好好利用评论机会造成后面的人有问题没法问。最后我还留了一个私人的问题,就是选择你想了解的 Python 的技术,这简直比精准投放都要好使,这些人都是真的受众,要不然也不会花钱来听 Live 的,主讲人可以用来做各种调查。最后建议知乎 Live 的 PM 解决下「不能互动的参与者怎么更好的参与」的问题。
  6. 知乎 Live 的 BUG 略多,不多说了,Live 中有图...

要不要为知识付费

这个 Live 我在知乎专栏、个人微信公众号、掘金和开发者头条的帖子都有不错的查看量,而且非常有幸的是,知乎官微也发微博推荐了这个 Live。而 Python 话题有 13W + 的关注者。可是最后实际的参与者才 3k+,还是略让我失望,不管有没有人信我失望的不是没挣到更多的钱。

现在我越来越认可凡是钱能解决的东西,就不要浪费时间。比如我愿意对 Alfred、1Password、Evernote、Jitouch 等工具付费,我也会去买优酷、网易云音乐的会员。因为折腾它们会浪费我的时间,这些工具能帮助我提高的工作效率,这些时间,我能多学习一门语言、多看 2 本书、多陪家人很多时间。

人的时间、天赋和精力是有限的,哪怕我一天 24 小时不间断的去学习,所学有限,还会让我活的特别的辛苦。有些东西我可能学会或者理解要花几天甚至几个月的时间,走很多弯路,其实我需要的只是别人给我指一条路;通过别人的经验我能了解到我的方法是不是对的,如果是会更加坚定我走下去的信心,如果不是我就要赶紧停下来尝试用其他方法或者用在 Live 中别人提到的方式试一试。这点钱对我来说,反而非常值得。因为你与和你同样优秀甚至比你优秀的人差的就是一个交流的机会,再举个例子,我旅游经验很少,我听了几个 Live 让我涨了非常多的知识,无论是自己折腾而浪费的时间还是金钱,那么 Live 显然规避了很多风险,提高我的旅行质量,这点钱显然非常值。在我不了解的领域,我愿意接受这个领域的专家的经验和意见。

我在微信公众号和知乎专栏的打赏收入也有 2 百多,嗯,今天叫外卖已经犒劳自己了,非常感谢各位对我的鼓励!

重新审视「关注者」这个身份

我在知乎上面有 11k + 的关注者。我有 2 个 QQ 学习群,加起来差不多 1.5k 呢,其他的关注者上面说到了。

Live 结束后,我无意中发现,购买「聊表心意」的有 25 个人,但是其中是我的关注者的只有 7 个人!

然后,无聊的我就研究了下参与的人中我的关注者有多少,结果也是蛮出乎意料的...

我 fork 了 zhihu-oauth ,添加了 following 接口 ,脚本如下:

import os
import json

from zhihu_oauth import ZhihuClient


TOKEN_FILE = 'token.pkl'
FOLLOWER_FILE = 'followers.json'


client = ZhihuClient()
client.load_token(TOKEN_FILE)
me = client.me()

live = client.live(789840559912009728)

participants = live.participants

participants = [people for _, _, people in participants]
total = len(participants)

if os.path.exists(FOLLOWER_FILE):
    follower_in_live = json.load(open(FOLLOWER_FILE))
else:
    follower_ids = [fo.id for fo in me.followers]
    follower_in_live = []
    for people in participants:
        print(people.id, people.name)
        if people.id in follower_ids:
            follower_in_live.append(people.id)
        elif people.following_count < 1000:
            for _, _, people in people.following:
                if people.id == me.id:
                    follower_in_live.append(people.id)
        print(people.id, people.name, people.id in follower_in_live)
    json.dump(follower_in_live, open(FOLLOWER_FILE, 'w+'))

print('Total Num: {}'.format(total))

in_live = len(follower_in_live)

print('Follower Num: {}'.format(in_live))
print('Non Follower Num: {}'.format(total - in_live))

据说知乎有 5020 限制,也就是不能获取我的全部关注者去求交,所以只能迂回的遍历每个粉丝关注的人中有没有我来确认,但是由于如果一个人关注的人太多遍历起来太慢,为了节省时间加了个限制,所以结果还是有点偏差的,不过应该影响会非常小。结果如下:

➜  python3 zh.py
Total Num: 3037
Follower Num: 658
Non Follower Num: 2379

好吧,参与者只有 21% 是我的关注者。

除此之外,还收到了 116 的赞赏(8 * 4 + 28 * 3)。7 个赞赏的同学中只有 4 个人关注了我...

这让我不得不审视下「关注者」的意义。哈哈~

让 Python 圈子更好

Python 很受创业公司青睐,但是不止一个创业者和我说,其实他们不怎么想用 Python 作为初创的语言。原因很简单,相同性价比下人太难招了。我记得有一天,一个猎头找我,聊得过程中发现她对 Python 有很多偏见,它觉得中国搞 Python 的人也就那几百个..

虽然是个特例,还是让我很有感触。来豆瓣之前,上一家公司有十多个产品线,Python 只有 2-3 个。我都要离职了才发现,好几个人竟然一直以为我是做 ruby 的。囧

我非常认同玉伯在知乎回答《如何评价真阿当的文章:《2016 年前端技术观察》?》说过的一句话。 我稍微加了一小句:

前端风起云涌的类库、框架、工具,各种前端技术交流会议。都是为了两件事:

一是为了更好地写代码, 二是为了写出更好的代码。

我做知乎 Live 是因为看到了前端的几位老师,本来想带个头,但是明显是我一个人在战斗,和前端大 V 们互相捧场互相热烈讨论和卖萌形成强烈的反差,我不得不说,我的参与人数只比小爝的 Live 少 2 百多 (2017-01-25 更:已经反超了),相当不易...

希望越来越多的有实力的人出来让这个圈子更好吧。我面试别人的时候,如果面试者对 XX 有什么想法,我肯定会问那你做过什么尝试和努力?我一直在以我微薄的能力让事情变好。

我的坚持

在 Live 中我并没有说我的越来越努力地原因。今天心情奇怪,唠一唠(没准那天就删掉了)12 年对我有很大触动的三件事:

  1. 某一天,我晚上加班到很晚,坐了一趟差不多末班车的地铁回家。当时看见一个穿的还算干净、年龄大约四十出头的人在沿着车厢乞讨,我看着他从我身边走过,我在想四十岁的时候我在做什么?是发愁子女的学费凑不齐怎么办?是每天上班唯唯诺诺谁都不敢得罪担心自己的饭碗担心被下岗?还是在担心如果不上班的话家里的生计无法保证,而不能不放弃自己的理想去做一些自己不喜欢没有兴趣的事情呢?

  2. 当时一个关系很不错的同事觉得在北京没有前途,父母有帮助在老家找了一份还不错的公务员的工作,不得不离开北京。那个周五晚上我去车站送走他之后,列车驶出站台,四周空空,看着远去的列车,我莫名的感伤,3-4 年之后我会不会还能留在北京,我会不会也要不甘心的选择离开北京?

  3. 当时曾经特意在公司附近的美廉美看奶粉和尿不湿的价钱,发现靠我的工资根本养不起一个刚出生的婴儿。

今年写书、开知乎 Live、在各大技术网站开专栏写文章获得认可等等成绩,并不是一朝一夕,而是基于这些年的扎根。

自己和自己干杯,感谢自己的坚持。