「作者面对面 (Chat Chat)」是 GitChat 团队出品的一档对话技术写作者的栏目。我们希望通过展示更多 Chat 作者的视角,来分享程序员关于生活和工作的态度,以及学习和成长的经历。立足于写作,但不限于写作。

本期我们的采访对象是专注吐糟 37 年,沉迷于推广 Pythonic 精神的Zoom.Quiet(a.k.a. 大妈)

熟悉 Python 社区的同学不会对他感到陌生:他是 CPyUG 创始成员、 O.B.P 及蟒营工程设计者…… 主持编撰有《可爱的 Python》等技术图书,坚持用 Pythonic 感化国人进入 FLOSS 世界进行学习、分享、创造……

作为 GitChat 最早的作者和用户之一(有饭桶指数为证),我们和 Zoom.Quiet 聊了聊他多年混迹开源社区的经历,以及他在 Python 方面的爬坑心得。最后,他还根据自身 17 年远程协作经验,和大家分享了一些小秘诀。

能否介绍一下你自己和你正在做的事?

  • Indie Hacker

  • 蟒营™开源网络课程

  • 写文章

  • 自学 Elixir,准备开发一组系列,完成自动生成被动收入的目标(当前进度 14.2%,所以没什么可公开分享的)

你好像一直在从事 Python 相关的工作,是什么契机让你选择了 Python 并一直坚持到如今?

2000 年自学 PHP 时,才知道有开源技术社区这种东西。然后顺着 Yanhoo 分类目录乱看,尝试了各种开源开发语言:

  • lua

  • lisp

  • io

  • ...

结果无意中发现了 Zope,感觉这比 LAMP(Linux/Apache/MySQL/PHP) 要 COOL 太多了,将开发/测试/发布/运营/...都混合在了一个界面中。当时业界也非常推崇,甚至于中国图书也及时出版了,所以我赶紧入坑,然后发现 Zope 是 Python 开发的, 要想真正用起来,还得学 Python。

但是当时有关 Python 的中文资料非常少,官方文档也不多,也没什么中国社区。所以,我在 CZUG(中国 Zope 用户组) 社区中潜水很久,不得其门而入。最后,还是用以往自学 Flash/AcrionScript/JAVA/PHP/... 时的办法,硬着头皮作个项目出来。在 windows NT 环境中跌跌撞撞,用了一个月业余时间,才完成了一个自动化天气预报脚本。从此拜服在 Pythonic 精神光辉中,并结识了越来越多开源技术爱好者,超过职业环境中可以接触到的人物。很快,我也因为 Python 自学能力,获得了北漂机会。

进而在领导支持下,在北京一起创建了 CPUG(中国 Python 用户组),并以 BPUG(北京 Python 用户组)的名义,定期组织线下技术分享活动。进一步遇到更多技术高手,比如说豆瓣创始人阿北就是在 BPUG 会课活动中发布豆瓣的,哲思社区创始人/好看薄创始人/...也都是在会课上遇见的。

所以,因为 Python 技术带给我更大的可能性,以及随之而来的中国 Python 社区又赋予我更大的视野,从而坚定了我的 Pythonic 精神信仰,并乐于分享/推广/实践。慢慢的,这种在工作之外,社区之内的持续输出/贡献/组织/顾问/...行为变成了我的一种生活方式。从此我不再为组织一次组织而紧张,而是自然的期待,从容的联系。

到如今,已经没有「坚持」这种情绪了,一切都是自然而然的。

在多年的工作中,有遇到过什么大坑吗?你又是怎么爬出来的?

几乎每年都有大坑,但是多数和技术无关,都是市场/决策/产品/...事先埋的雷,所以就不说了。

只说一个大家关注而且也争论了很多年的坑:

到底项目用 Python 2 还是 Python 3?

上个阶段创业时期独立进行技术架构时就遇到了这个问题,Python 界已经决定 2020 年终止 Python 2 的维护了,所有关键模块也都在陆续迁往 Python 3。

但是深入探索后才发现:

  • Python 3 的激进态度,可能对语言本身的发展有好处;

  • 但是,不兼容历史版本的决策,给社区造成的撕裂远远不可能按照社区官方的决议来弥合;

  • 因为,太多第三方模块是其它社区开发的,当初的开发者早已老去,而领域问题又没变,导致很多优秀的遗留模块根本没有迁移的动力和理由;

  • 特别是和硬件相关的模块,涉及有关厂商的硬件驱动,而市场上基于免费公板生产出来的对应硬件兼容驱动都是非常古老的,还都没开始用 Python 3 来重写。

于是权衡再三我作出了反直觉的决策,用 Python 2 来完成原型系统

  • 真正下决心后,快速根据一个开源同类产品调通了核心功能;

  • 然后发现 Python 2 的生态远远比 Python 3 的生态稳定得多;

  • 甚至于,在 Windows/Linux/macOS 跨平台应用的开发/测试/部署过程中,也明显感觉 Python 2 的可选余地比 Python 3 多;

  • 所以这个坑也就自然一步步填上了;

  • 当然如果这个项目还在继续的话,肯定是得逐步将关键组件用 Golang 重写,从而提高性能,甚至于替代 Python 2 原型。

今年开工有点特殊,疫情之下,你是怎么工作的?对于程序员远程工作你有什么看法?

其实还好,因为本质上从 16 年被创业以来,俺已经处于全职 SOHO 状态有 4 年了。更加何况从 03 年开始进入 Python 技术社区尝试贡献/组织项目开始算,我远程协作的经验有 17 年了。

所以疫情之下,主动隔离在家又有网络,对于俺基本没什么影响。无论社区项目/原创项目/网络课程/视频|音频课程/...所有进行中的事务,一直都是完全网络化协同的,特别是网络课程用的 zoom.us,是经过多年,10 多种直播/网络会议系统/软件/工具 PK 出来的。虽然去年有被和谐过一个月,好在刚好在疫情暴发前,zoom.us 公司及时完成了市场再入,通过 zoom.com.cn 以及专用中国版的发布得以重新使用。之前采购的 Pro 版服务,也没受影响。有关远程工作以及相关工具,其实,我在各种社区交流以及公开演讲中也提及过:

  • 大规模基于网络的远程协作,这原本就是自由/开源软件诞生时,40 多年前的自然状态

  • 那时,连 QQ 都没有,更别说现在这么多云办公平台以及专用工具了

  • 大家完全通过电话线,在模拟信号上加载数字信息,用非常低的速度来交换数据

  • 通过非常简陋的工具,完全基于文字/文本/diff 补丁,就能流畅推进了 Linux 这种级别的大型软件项目协同开发

  • 所以,远程协同,根本就是计算机技术的看家本领

  • 只是,在和开源技术社区根本不同的公司文化框架之内,难以兼容以职级而不是能力为基础的协同

同时,最近在有关社区内部开展的协同平台试用过程中,也综合体验了 shimo/feishu/yuque/.. 等等用拼音来命名的各种远程协同工具。

深深敬佩所有在职软件工程师,要使用这么难用的东西,来远程完成工作,实在是太辛苦了。

你目前在 GitChat 平台发布了 4 篇文章,包括《初学者如何通过技术社区加速成长?》、《如何在繁重工作间隙保持良好的自学节奏和效能?》等。你希望通过这些 Chat 向读者传递什么?从你的角度看,你的收获是什么?

首先得向 GitChat 自我剖白一下,俺可以说是 GitChat 的原始种子用户,最早领取饭桶指数的作者之一。虽然,在图灵时代就参加过各种线下活动,对 GitChat 的初心非常认同:只有水平相近,在小空间、小人数场景中,才能深入对话题进行精彩的碰撞。所以这种碰撞非常难得。

可以通过预约,先看文章,在所有人有充分准备时,再进行网络交流,来部分达成这种效果。可惜,GitChat 发布初期,俺刚好处于创业期间,实在没多少时间来额外投入这种输出;而当创业失败,重回自由身时,GitChat 又已经进入 CSDN ,调整了运营目标。

Chat 已经极大丰富,而且申报 Chat 的流程和要求也完全不同了,导致俺成功发布的 Chat 只有早期应邀的试水式 Chat。不过,直觉一般都是正确的。通过这几则 Chat 可以体会到,俺一直想帮助当下的程序员们突破的,不再是技术细节,而是如何掌握自己的学习节奏,从而得以在职场中持续发展。不要快速沦为那种,将工作第一年经验反复用 10 年的人,而拥有所谓 10 年经验的人,从俺几次线上交流的体验,其实不少。

对其他学习或奋斗中的人,你有什么建议?

要说俺工作 20 多年的建议,可能真正有信心的只有两点:

  • 得保持自学,因为其他人不可能关心你如何进步,只能用任务来检验你的成色

  • 得保持输出,因为只有持续输出,才能积累自己的影响力,从而获得机会

问题在于,普通人通过传统义务教育后,如果没进入科研领域,经过硕士以上学位的再教育,基本都变成了合格的听话的产业工人,忘记了独立/清晰思考的力量,甚至于无法有条理/清晰的/完备的提出一个正确的问题。

最明显的证据就是,大家都焦虑如何夯实自己的经济实力,于是除了工作中的各种奋斗外,总是尝试各种线下/线上的课程/培训,但是效果都不好。

就像想要 8 块腹肌,但是向健身中心缴纳了高昂年费后,却没去几次,即便去了,也主要是洗个澡。也就是说,在丧失了自学能力后,无论上什么课程,也只能是用学习行为来替代学习从而驱散焦虑却没有真正学到任何东西

这个观察结果,导致了俺设计蟒营™101.camp 开源网络课程。

最后还想建议,可以参考这个系列文章: 《如何应对,就是不愿意上班的心情? +0》。相信能有学习/奋斗空间的人,多数都有一份儿普通的工作。那么,请珍惜她,并开始科学「摸鱼」,利用工作提供的平台/空间/环境/机会/...发展出自己真正的资本,这样才能有所准备地被机会青睐。

以上。


《「作者面对面」访谈录》是 GitChat 团队出品的对话优秀技术人的窗口。我们希望能代替读者坐到作者们对面,和他们聊聊自己的生活和选择,观念和理想。最新一期访谈将由 GitChat 微信服务号首发,敬请期待。

扫码免费订阅专栏

作者面对面 | 工作之外,社区之内的 Pythonic 精神相关推荐

  1. 【作者面对面问答】包邮送《Redis 5设计与源码分析》5本

    墨墨导读:本文节选自<Redis 5设计与源码分析>,主要为读者分析Redis高性能内幕,重点从源码层次讲解了Redis事件模型,网络IO事件重在使用IO复用模型,时间事件重在限制最大执行 ...

  2. 「作者面对面」访谈录

    技术人的时间是宝贵的. 但是很多技术人却经常会利用自己的闲暇时间来写文章.那么技术人究竟为什么要把本应用来关心自己外表.甚至健康的时间用在写文章上呢?要理解这一点,我们就要说一说技术人的工作了. 有人 ...

  3. 作者面对面 | 95 后工程师 zhisheng 的 Flink 之路

    Hi,先给大家做个简单的自我介绍吧 hello,大家好,我是 zhisheng.有的童鞋可能会好奇为啥是叫这个,其实就是我名字的拼音,没啥别的典故 ????.我毕业一年半了,现在在某家大型互联网公司工 ...

  4. 【程序人生】那些工作之外的技术挣钱方式

    转载地址:https://blog.csdn.net/qq_36538012/article/details/82457062 作为一名程序员,在上班之余,我们有大把的时间,不能浪费,这些时间其实都是 ...

  5. 工作之外如何实现自我提升

    如果你想在自己的职场中有所成就,除了干好目前的本职工作外,在工作之余的自我提升也是非常重要的.没有什么工作是仅仅靠目前所具有的技能就可以衣食无忧的,我们要根据工作所需不断提升自己,这样我们才能将我们的 ...

  6. 北京 || Java 技术、生活、工作交流社区

    欢迎加入北京(Java)技术交流群,在北京工作的朋友有兴趣入群的话,可以扫码添加我的微信,备注"北京",拉你入群.空位有限,在北京地区工作的朋友再添加! 混群推广营销的朋友绕个道( ...

  7. 时间拆分法------高效率的使用完成开发工作之外的剩余时间掌握多门开发语言

    利用工作之余学习的时间拆分法 时间拆分法:灵光一闪,被我抓到了o(* ̄︶ ̄*)o 在某一天我突然产生了一个想法,每隔一段时间学习一门编程语言(当前吃饭的语言要学精,多门语言要摸清o(* ̄︶ ̄*)o). ...

  8. 复合型人才八种能力_刚毕业在设计院做结构设计,感觉自己对很多东西都没有判断的能力,工作之外如何提升自己在结构方面的知识?...

    题主看过来! 这几天有不少毕业生来我们这边咨询的,几乎都是毕业后刚步入设计院准备从事结构设计的.钢结构/幕墙设计的设计师们,工作期间感觉到自己的技能不熟练后选择了我们的实战班进行学习,一边网课学习着一 ...

  9. 活动报名丨悟道开放日:大模型最新研究进展、应用开发训练营、50+闪电演讲作者面对面...

    时间地点 时间:2023年3月19日 09:30-20日16:30 地点:智源大厦一层报告厅(海淀区成府路150号) 活动详情 2022年3月19-20日,由北京智源人工智能研究院主办的「2022悟道 ...

最新文章

  1. 日志系统新贵Loki,确实比笨重的ELK轻
  2. 会员管理scrm系统精细化运营更好促进成交
  3. java配置出现的问题解释_java SE问题总结(持续更新。。。)
  4. java 抽象类和接口有什么区别
  5. 在非托管对象中使用Spring托管Bean
  6. C++学习之路 | PTA乙级—— 1052 卖个萌 (20 分)(精简)
  7. 计算机网络之物理层:3、奈式准则和香农公式
  8. 只读域控制器在Server Core中的部署
  9. 黑客攻防技术宝典Web实战篇第2版—第3章 Web应用程序技术
  10. 1网络编程OSI协议
  11. 操作系统重装或还原后Domino 8 无法启动解决方法
  12. [CTO札记]Disney也进军数字出版市场了
  13. matlab:图像的余弦变换(DCT)
  14. 【C语言开源项目】盘点 GitHub 上不错的 4 个C语言项目
  15. win7c盘空间越来越小:C盘哪些文件可以清理删除呢
  16. 使用ROSE寻找超级增强子
  17. Shell -----grep
  18. 什么是高维组合特征?
  19. SAP SD 自定义销售订单审批状态
  20. 《大型网站技术架构:核心原理与案例分析》之读后小结

热门文章

  1. shell编程入门(二)
  2. vi/vim下字符串搜索
  3. DP----鬼畜的数字三角形
  4. Python大佬总结出了超级详细的Python爬虫学习清单,新手免费领取
  5. 绘王推出三款大画幅数位屏新品;大连华信和浙江友邦吊顶正式签署战略合作协议 | 全球TMT...
  6. CFA——The Time Value of Money
  7. Latex排版介绍比较好的网站总结
  8. 机械电子工程中的计算机思维,人工智能技术在机械电子工程领域的应用
  9. 硬盘格式化后数据恢复【图文教程】
  10. 游戏服务器如何修改属性,游戏服务器数据修改