Pythoneer 如何科学的增殖同类?

466 阅读9分钟

juejin.im 程序猿节日专题约稿要求:

...一篇Python相关的技术干货,字数最低在1000-2000字。无上限,包括但不限于Python爬虫、数据可视化、web开发相关...

俺认为具体技术问题的分析解答, 其实对技术社区生态的促进很有限, 远没有一个好问题带出更多嗯哼来的有意思, 有用, 有种;

所以, 俺丢个命题, 并尝试回答一下:

  • Pythoneer "A pioneer within the Python programming language community." 即 Pythoneer 是更积极的 Pythonista.
  • 科学而不是市场/宣传/作秀/..导向的
  • 增殖 , 偏重短语哪, 繁殖嘛大家都能, 主要看缘份, 关注增加这个方向

毕竟一个技术领域是否有吸引力, 还得看社区人口否足够大, 成功的项目案例是否多, 有多少大厂在积极折腾…

否则,走街上一说 PHP 旁人只道是 "拍黄片" 的, 多尴尬.

背景

俺在专注吐糟35年后, 找到了真爱....

不是, 俺想说的是:在 PyCon Asia Pacific 2010 , 8 年前, 私下代表中国, 去新加坡参加第2届亚太 Python 大会时, 分享的是有关在 被毕业 大环境下, 中国专业教育出来的学生很少有能打的, 如何能通过靠谱的培训, 快速将具有一定知识背景, 又对 Python 有好奇心的学生快速转变为一名基本合格的程序猿?

可惜, 到现在学校方面的情况并没有变好…

作为 Python 老司机, 也感受到新语言(类似 golang) 在公司里话语权的快速增长.

现象

2018.3 教育部将Python纳入全国计算机等级考试科目,

这一政策是在以 Google 为首的大数据厂商, 联合宣传 AI 系列概念/服务/产品时环境压力下, 并发现所有人工智能/机械学习/深度学习/...框架都以 Python 为主要编程界面,

因为 Python 从一开始, 设计思想就是面向非专业用户, 导致数据科学这个领域, 早年折腾的那些数学/经济/社会学/…等等学科专家们使用的都是 Python 生态作品.

进一步的, Python 相对其它开发语言, 更少的关键词, 更多的选模块, 更简洁的代码形式... 都在加强 Python 用户的增长, 以及社会影响力:

比如:

获得 2018 年度诺贝尔经济学奖的 Paul Romer 就是一位 Python 编程语言的使用者, 在对比了各种数据分析平台后, 大力宣扬 Jupyter 平台的开放和便利... --> Jupyter, Mathematica, and the Future of the Research Paper – Paul Romer

等等, 各种成功故事, 都将 Python 的名望在推高.

但是, 对应的国内学校教育根本来不及反应, 毕竟 谭浩强 不会 Python 哪.

所以, 这一市场就被敏锐的生意人们发现了:

  • 无数大小 Python 专家冒出来在各种知识变现平台上发布课程
  • 无数培训机构发布 Python 相关各级咨询/课程
  • MOOC 平台上 Python 有关课程点购率爆发
  • 公司职位要求中包含 Python 的比率上升
  • ...

对应技术社区的反应...嗯哼, 几乎没有对应的足够呼应:

  • CPyUG 列表的订阅, 从之前, 每周10人左右, 增长了一倍
  • 中国流行的各种技术交流平台上, Python 频道订阅人数有一定增长
  • 以 Python 为主要内容的公众号, 每次发文, 从一篇变成了3篇左右
  • ...

为什么?

破题

从各种青鸟们出来的学员, Python 依然不够用.

正是因为, 即便环境上 Python 突然变热, 但是, 真正的 Pythonista 并没有对应增长, 导致技术社区没有受到足够的触发.

环境变好了, 为了社区以及自身生存环境的改善, 趁机多多发展爱好者, 扩大社区影响力不是正解嘛?

问题在, 自学编程, 和教授他人编程是完全两个技术桟哪, 不通用的.

俺认识的大小专家, 其实都有讲课/咨询/培训的经历, 无论是自己组课, 被邀请去讲课/培训, 回想起来, 效果都不明显, 并没有那个课程, 能坚持3年以上, 并逐步变成 Python 技术学习首选什么的倾向.

为什么? 课程效果不佳?

所以, Pythoneer :

  • 有责任主动增殖同类, 为自己和社区的发展
  • 同类的增殖有很多正法/渠道/形式
  • 其中最科学的, 当然是将他人逐一或是批量变成真正的 Pythonista
    • 什么是 Pythonista?
    • 具备 Pythonic 素养的 Python 用户
    • 嗯哼? Pythonic 又是什么?
    • 是了, 只要领悟到 Pythonic 就标志着一头 Pythonista 诞生了
    • 而促进任何一只 Pythonista 诞生的 Pythonista 也就升格为一名 Pythoneer 了 ;-)
  • 所以, 这一促生过程, 就是最科学的增殖姿态
  • 问题是:
    • 这种过程有什么内在模型?
    • 有什么可复用的经验?
    • 对应哪家靠谱的教程?
    • ...

分析

什么是"课"?

朔源

8AB2

小篆的"课"字是个形声兼会意字. 左边的言字旁是形符,表示这个字与讲话发言有关. 右边的"果"是读音.

  • "课"的本义是按照一定的标准进行试验,考核,以检验成果.
  • 所以引申为国家根据数额征收赋税,如:
    • 国课,课税
  • 按照规定的内容和分量,教授和学习称之为"课"
  • 按照规定的教学内容,教学时间所设置的教学科目,也称之为"课"
  • "课"也用来表示教学单位
    • 如:一节课. 也表示教授段落
    • 如:这本教材共有十五课.

反转

结合以往持续自学各种技术知识的过程, 综合出自己心目中的课:

  • 按照本义, 上课,其实就是来向先生阐述所得, 印证学习成果来的
    • 所谓 言
    • 以证 果
    • 是然 课
  • 只是, 向先生阐述的,是之前,约定的课题/问题/疑题/试题....
  • 只有这样,每个人,才是真正用自个儿最有效的方式在正确的方向上积累智慧
  • 以往,所谓 "上课" 其实变成了:
    • 老师求学生记忆单元知识点
    • 如若不然,用考试用分数用体罚 来加以开导
    • 至于强填到学生脑子里的东西,老师一般也不以为然的
    • 反正,考卷怎么要求,就怎么教
  • 回想一下,可怕嘛?! 挺可怕的,但是,我们也十几年熬过来了
  • 可是,为什么又主动要求, 再来"享受"这种无谓的灌输呢?! 斯德哥尔摩综合症 ?

综上, 科学的促生仪式/课程宏观设计应该是: 教学反转

  • 学员提出想变身成什么人物
  • 导师根据自身经验,结合资源限制,设定到一个中阶任务
  • 然后,以负基础为起点,设计学习路线
  • 最后,将路线分析为跨度合适的任务发布给学员
  • 学员,分阶段认领到任务,在预期时间点前, 想尽一切办法,完成任务
    • 过程中,如果有具体的困难/问题,可以随时提问
    • 导师尽力结合学员当前的进展,以及学习姿势,给予提示
  • 最终,学员在自身的驱动力下, 完美的将 6个月 前的自己打造为心目中当前的人物
  • 以上,收功!

倡议

通常, 这种模拟现实工程师在岗位上高速自学新技术的过程, 形成的网络课程中, 学员通常会报怨:

我是真不知道每天应该干什么...
这不是"课"么,
为什么完全是自力更生的感觉...  
没有教学,没有资料,最多的就是"可以到XXX中搜索XXX"... 

合理解释和引导就好, 千万别按照那些从来不动手实践, 却习惯大声反对学员的要求,

  • 增加代码
  • 追加视频
  • 补充文案
  • ...

因为, 现在是 2018 了,不是10多年前, 除了官方文档,几乎没有其它完备的资料,

  • 通过 google 可搜索出海量的 Python 代码
  • 在 Youtube 上有海量的 Python 相关工程实践演讲/演示/...
  • 即, 任何一个 Python 相关的问题, 网络中都有海量的解决方案/思考/解说/代码/...

而掌握 Python 基本开发能力, 对于任何初学者来说, 关键是不是记忆足够多的知识点, 而是相反:

  • 掌握足够少的知识点
  • 但是, 能灵活根据问题组合应用最小技术来解决
  • 即, 初步建立自主工程自信:
    • 对具体开发目标有清醒的规划
    • 面对具体技术问题, 能根据自己的理解设计解决方案
      • 并逐一合理检验
      • 从中选择自认最合理的
    • 习惯根据编译器报错, 判定代码问题
    • 习惯用英文关键词在 google 搜索资料
    • 习惯用完备简洁又认真的问题在合理的场所中提问
    • ...

简单的说

  • 科学的增殖同伙, 最好的形式还是课程
  • 但是, 课程的设计和运营,就不应该重复早已证明不靠谱的 教材+课件+长期讲解+考试 形式
  • 而是, 教学反转:
    • 以写出能教会半年前的自己学会 Python 为目标
    • 通过设计具体又实用的开发任务, 来组织自学者直接开始使用 Python
    • 在使用过程中, 逐步:
      • 持续调整对程序的误解
      • 习惯通常的调试过程
      • 养成提问的智慧
      • 唤醒自己的逻辑推理能力
      • ...
    • 导师全程答疑, 在所有反工程行为节点上, 就地引入故事/文档/案例/建议/工具/...激发学员的自学乐趣
  • 只要, 熬过不适期, 体验到创造的乐趣时:
    • 本质上, 无论当前学员掌握了多少知识点
    • 只要他:
      • 问出来的问题, 和正常工程师相似
      • 管理代码的行为, 和正常工作环境中的行为相似
      • 那么就已经是名合格的 Pythonista 了.

是也乎

  • 181012 高速完成 4K 版本
  • 181011 被小编摧稿, 嗯哼初版
  • 181010 被小编忽悠应允