Pythoneer 如何科学的增殖同类?
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 了 ;-)
- 所以, 这一促生过程, 就是最科学的增殖姿态
- 问题是:
- 这种过程有什么内在模型?
- 有什么可复用的经验?
- 对应哪家靠谱的教程?
- ...
分析
什么是"课"?
朔源
小篆的"课"字是个形声兼会意字. 左边的言字旁是形符,表示这个字与讲话发言有关. 右边的"果"是读音.
- "课"的本义是按照一定的标准进行试验,考核,以检验成果.
- 所以引申为国家根据数额征收赋税,如:
- 国课,课税
- 按照规定的内容和分量,教授和学习称之为"课"
- 按照规定的教学内容,教学时间所设置的教学科目,也称之为"课"
- "课"也用来表示教学单位
- 如:一节课. 也表示教授段落
- 如:这本教材共有十五课.
反转
结合以往持续自学各种技术知识的过程, 综合出自己心目中的课:
- 按照本义, 上课,其实就是来向先生阐述所得, 印证学习成果来的
- 所谓 言
- 以证 果
- 是然 课
- 只是, 向先生阐述的,是之前,约定的课题/问题/疑题/试题....
- 只有这样,每个人,才是真正用自个儿最有效的方式在正确的方向上积累智慧
- 以往,所谓 "上课" 其实变成了:
- 老师求学生记忆单元知识点
- 如若不然,用考试用分数用体罚 来加以开导
- 至于强填到学生脑子里的东西,老师一般也不以为然的
- 反正,考卷怎么要求,就怎么教
- 回想一下,可怕嘛?! 挺可怕的,但是,我们也十几年熬过来了
- 可是,为什么又主动要求, 再来"享受"这种无谓的灌输呢?!
斯德哥尔摩综合症
?
综上, 科学的促生仪式/课程宏观设计应该是: 教学反转
- 学员提出想变身成什么人物
- 导师根据自身经验,结合资源限制,设定到一个中阶任务
- 然后,以负基础为起点,设计学习路线
- 最后,将路线分析为跨度合适的任务发布给学员
- 学员,分阶段认领到任务,在预期时间点前, 想尽一切办法,完成任务
- 过程中,如果有具体的困难/问题,可以随时提问
- 导师尽力结合学员当前的进展,以及学习姿势,给予提示
- 最终,学员在自身的驱动力下, 完美的将 6个月 前的自己打造为心目中当前的人物
- 以上,收功!
倡议
通常, 这种模拟现实工程师在岗位上高速自学新技术的过程, 形成的网络课程中, 学员通常会报怨:
我是真不知道每天应该干什么... 这不是"课"么, 为什么完全是自力更生的感觉... 没有教学,没有资料,最多的就是"可以到XXX中搜索XXX"...
合理解释和引导就好, 千万别按照那些从来不动手实践, 却习惯大声反对学员的要求,
- 增加代码
- 追加视频
- 补充文案
- ...
因为, 现在是 2018 了,不是10多年前, 除了官方文档,几乎没有其它完备的资料,
- 通过 google 可搜索出海量的 Python 代码
- 在 Youtube 上有海量的 Python 相关工程实践演讲/演示/...
- 即, 任何一个 Python 相关的问题, 网络中都有海量的解决方案/思考/解说/代码/...
而掌握 Python 基本开发能力, 对于任何初学者来说, 关键是不是记忆足够多的知识点, 而是相反:
- 掌握足够少的知识点
- 但是, 能灵活根据问题组合应用最小技术来解决
- 即, 初步建立自主工程自信:
- 对具体开发目标有清醒的规划
- 面对具体技术问题, 能根据自己的理解设计解决方案
- 并逐一合理检验
- 从中选择自认最合理的
- 习惯根据编译器报错, 判定代码问题
- 习惯用英文关键词在 google 搜索资料
- 习惯用完备简洁又认真的问题在合理的场所中提问
- ...
简单的说
- 科学的增殖同伙, 最好的形式还是课程
- 但是, 课程的设计和运营,就不应该重复早已证明不靠谱的
教材+课件+长期讲解+考试
形式 - 而是, 教学反转:
- 以写出能教会半年前的自己学会 Python 为目标
- 通过设计具体又实用的开发任务, 来组织自学者直接开始使用 Python
- 在使用过程中, 逐步:
- 持续调整对程序的误解
- 习惯通常的调试过程
- 养成提问的智慧
- 唤醒自己的逻辑推理能力
- ...
- 导师全程答疑, 在所有反工程行为节点上, 就地引入故事/文档/案例/建议/工具/...激发学员的自学乐趣
- 只要, 熬过不适期, 体验到创造的乐趣时:
- 本质上, 无论当前学员掌握了多少知识点
- 只要他:
- 问出来的问题, 和正常工程师相似
- 管理代码的行为, 和正常工作环境中的行为相似
- 那么就已经是名合格的 Pythonista 了.
是也乎
- 181012 高速完成 4K 版本
- 181011 被小编摧稿, 嗯哼初版
- 181010 被小编忽悠应允
Author: /mail / gittip / github