有关自学的公开秘密
俗话说:“开始回忆过去才标志进入老年”
对应断言则是:“人类的进步根源在 — 一向没从历史中学到什么教训”
结合起来理解, 应该就是:
经验其实并没什么用?
但历史故事却总是很有市场,那么俺就专注说说故事吧,私人的……
每个好故事都必须狗血开篇
从 Pascal 到 Python
90 年代,大家如果看穿越小说就知道,那是中国开始腾飞的年代,计算机专业最火的年代。
俺也无法逃避历史规律,
又因为是第一批宅文化受洗者,从海南摄影美术出版社开始,深度沉迷在日本漫画/动画中,并且,在广州无意间看到深夜转播香港电视台的:“アキラ”,惊为天人;
也进一步明确,3D 动画是趋势,所以,专业选择计算机及应用;以便日后转向 3D 动画制作,毕竟, 3D 动画是只能由电脑生成了嘛; 可以说, 当年的内心戏非常中二了;然而按部就班四年读下来:
- Pascal
- 汇编
- C
- C++
- …
同时利用图书馆资源, 自学 JAVA 以及 Photoshop/3DMAX/Flash/… , 结果发现:
- 毕业了, 依然不知道如何独立完成一个软件的构造和发布
- 同时, 美术能力,并不是会几个绘图软件就能自动生成的
不甘心, 毕业找到一个小广告公司, 全职折腾排版/图片处理/图形绘制/… 期间用业余时间尝试独立完成美术作品:
- 用两个月, 才边学边用 Illustrator 9.0 所有可用功能, 将 CLAMP 的作品 – “圣战”中一幅彩页复刻出来
- 用两个星期, 才能在 Flash 2.0 上完成一个 10 秒左右动画场景
进一步在市电视台, 了解到进行视频编辑的 SGI 工作站都是 20 万美元起… 计算一下自己当时工资, 得上百年才买得起。
而工作一年的我, 连拼装兼容机都买不起; 生活所迫, 听从同学劝告去上海, 回到软件行业。
虽然, 当时已有一年多没怎么编程了, 只是习惯性的关注技术动向, 看过几眼 ASP;
好在整个儿行业也都在初期, 就凭那种勇于看文档照着瞎搞下来的经验, 也通过了面试, 回到代码世界。
那时, 还没有全栈工程师概念,但实质已经在承担相同职责了, 岗位是软件工程师, 而在公司看来一切和电脑相关的都归软件管, 所以:
- 用 ASP 开发产品后台
- 用 Dreamwave 设计网站,用 Firework 完成网页特效, 用 Flash 制作动画barnner
- 用 IIS 发布网站
- 用 Access 数据库提供支持
- 网络配置
- 电脑修理
- …
算是暂时在魔都立足生存下来了;
恢复自学习惯, 周末去公司用企业网络搜索国外技术资源下载/整理/实验…
从大学时代就知道 Linux 的传奇, 于是当然的在旧机器上开始尝试安装 RedHat 2.4, 首个可以邮购光盘的版本, 之前都是几十张软盘的发行版。
然后, 实验 LAMP :
- Linux
- Apache
- MySQL
- PHP
这是当前至高技术组合;
为了在 Linux 上复现 ASP 那种流畅的开发/运行/调试体验, 折腾了整整3个月, 因为那时中文资料很少, 又还没习惯官方英文文档 , 加上网络还只是 512K …
总算 PHP 入门了, BBS 也知道怎么架设了,但是, 为了一个功能网页要从系统到Web 服务到数据库都要折腾一遍的体验, 实在太麻烦了…
这时, 注意到 Zope, 全新互联网应用开发机制, all-in-one 的开发者/调试/运行集成环境…
虽然中文资料几乎没有, 但竟然已经有中文技术社区了——CZUG.org(China Zope User Group):
- 是润普公司, 用 Plone 1.0 发布的一个综合 CMS 网站
- 开放注册, 能在其中 BBS 版块可以自由讨论
- 甚至于开放了一定接口,允许用户定制网站界面;
- 正好综合自己的技能, 贡献了几个
以此为契机, 接触到了 Python / 自由软件 / 开源技术社区 /… 业余时间多数不是在邮件列表中被人骂笨, 就是在 BBS 中被人骂笨; 但是, 技术是切实在跌跌撞撞过程中学到了;
也有能力反馈社区, 再通过部署发布 moinmoin 维基服务给啄木鸟社区, 进而参与在线协同开发项目, 完成了几个基于 Python 的小模块, 才知道, 发布任务的大牛, 是 SINA 技术部领导, 从而获得了 SINA 的面试机会, 北漂帝都, 技术成长开始加速.
回想这个阶段, 最大的变化是不再独自折腾, 而是:
- 第一时间注册社区列表/BBS
- 任何实践/问题都及时反馈给社区
- 积极回答自己知道的折腾过的问题
- 也积极发表看法, 和其它学习者相互印证
- 并开始有意识的收集好文章/资料/网页
建立自我检验机制
如何一周学会一门新语言?
光阴似箭, 几年过去, 也从 SINA 进入金山, 南下到珠海, 之前通过成立 CPUG(China Python User Group, 中国Python 用户组), 在北京主持了 47 场线下分享活动, 也在线上用 code.google 项目托管服务完成了几本图书的翻译, 更是参加以及组织了一系列社区, 自己也无意间变成 大妈。
因为组建团队, 不得不开始面试, 才发现, 社区中聚集起来那么多靠谱工程师, 并不是能直接转化为自己同事的。
而人才市场上基本都是有证书无对应能力的工程师原胚;
刚好当时在探索 知识管理, 根据有限的几本书, 结合自己以往技术社区体验, 一冲动就认领了金山大学的任务, 负责对内部培训,将实习生中对 Python 有兴趣的毕业生, 快速转化为软件工程师;
为了最小化指导时间, 将课程设计为项目驱动式:
- 不教 Python 本身, 只快速展示合理的 编写-运行-调试 工具链
- 从一开始就直接分组, 各组自行设立目标作品
- 立即进入敏捷开发循环:
- 配置好项目托管(Trac)+邮件列表
- 每天下午进行站立会议, 公开逐一阐述:
- 完成了什么
- 没完成什么
- 需要什么帮助
- 明天计划完成什么
- 现场实时点评
- 其它时间, 通过网络随时回答
- 每周 5 下午, 进行一次版本迭代发布会
- 连续 8 周, 8 个作品, 5 个可用
- 全部学员养成团队协作节奏
- 大半学员通过用人部门考核
简单说, 就是在企业内部, 构造出一个主题技术社区, 以原创产品为目标, 驱动学生直接针对具体问题来自学,
同时, 用定期会议控制节奏,配合随时提供软件工程涉及所有方面的指导,
好在使用项目托管系统, 对内所有信息共享, 那么相同问题, 只要回答一次, 再次发生时, 给个链接就好。
经过那次实践, 算是形成了明确的自学框架。
后来有机会为公司构建开源社区, 为了推广公司安全服务接口, 尝试用相同方法, 快速自学新技术栈完成小工具来演示和推广接口:
- 自学一周 golang ,完成 CLI 检验原型工具
- 自学一周 node.js, 用 CoffeeScript 发布单一功能 API
- 自学一周 chrome , 完成 crx 扩展插件工具
- 自学一周 lua , 完成 OpenResty 检验插件
- 自学一周 微信后台, 基于 SAE 完成检验功能
- …
也都转化为在线教程: http://chaos2.zoomquiet.top
那之后, 就有信心传播 Feynman 技法是对的:
如何证明自己学会了?
能教会其它人时…
进一步发现必需支持
环境和目标
金山大学中 Python 训练营代号: PythoniCamp, 简称 蟒营 ,
后来通过金山高校联盟, 在本地几个大学试点过几期:
- 时间缩短到 6-4 周
- 项目托管也迁移为外部的 code.google(是的,那时 GitHub 还没有发布)
- 其它基本不变
但是, 发现学生和实习生, 心态完全不同, 没经历过人才市场碾压, 进入大学就开始放飞的学生, 明显对这种连续迭代的节奏不适应, 或是说, 不想适应…
后来, 有几位学生毕业后, 进入金山, 前后对比, 才发现蟒营当时的所有要求, 都是软件工程师的最低职业要求… 这才重新理解, 并认同蟒营的 教学反转 过程。
通过持续交流, 以及后来 GDG 社区各种校园活动的展开, 也慢慢认识到, 技术社区式自学 想成立, 不仅仅需要线上项目空间,
更加重要的是:
- 关注所有成员成长的社区氛围
- 怼事不怼人全员平等的社区关系
- 作品目标明确的版本迭代共识
- 标准规范的提问机制和行文礼节
- …
加速自毁的努力
自豪的自毁是种觉悟
又近 10 年过去, 随着大数据/AI 的兴起, Python 重新回到大众视野, 各种培训班/线上课程扎堆暴发。
但是, 软件行业和其它行业不同:
- 其它行业的技术发展目标都是令本行业永续发展
- 而软件行业相反:
- 甚至于, 软件这个概念本身的提出目标, 也是为了辅助机械替代人来劳动
- 即,软件行业的努力目标就是通过提升软件能力
- 直到软件可以自动生成新软件
- 从而不再由人来写软件
- 也就是说, 软件行业的目标就是消灭软件行业
这当然也是 IT 技术圈一惯的自食风骨, 比如说:
GNU
~ GNU is Not Unix
综上, 在这么多年开发/社区/培训的实践/尝试/积累后, 发现正确的编程培训姿势:
- 不对编程语言或是具体框架/软件进行讲解(官方文档足够权威和充分了)
- 应该专注激发原有自学能力
- 直接通过编程体验的积累
- 获得可以自学任何 IT 技术的习惯
- 从而, 再也不用参加任何入门培训班
所以, 和软件行业一样:
蟒营
就是为了消灭蟒营本身
而设计出来的课程
要知道, 我们在婴儿阶段, 任何自然语言都不会时, 仅仅通过有限的对话尝试,就能在两年以内, 用没发育好的大脑, 对世界上最复杂的语言 — 汉语, 完成完美自学,
这足以证明, 所有中国人都有完美的自学能力(无论哪种严格意义上)。
只是, 在通过近 20 年系统教育后, 被体制化消灭/压制了这种天然自学能力; 转而迷信权威/教材/考试/要点/学习方法/….
毕竟, 我们的高等教育源自苏联产业工人的大规模培训体制。
而当前高速发展的智能移动互联网时代, 手机已经变成人体器官, 编程能力也演变为基本社会能力。
从 PythoniCamp
一步步演化来的 蟒营, 应该说, 综合上古时代, 互联网技术爱好者们共同自学经历, 结合知识管理思想, 基于实践型社区, 形成以 Python 为入口, 重获综合自学能力的课程:
伴你重新享受自学的乐趣
Reactivate Joy by Self-teach with You
第二期入门班正在报名, 希望有效获得编程经验请访问:
https://py.101.camp/
本文作者:
Zoom.Quiet (大妈)
Python 中文社区创始成员 / 管理员;
热心于 Python 社区公益事业,
作为大家熟知的社区“大妈”,
因主持 OSTC 2015 “程序媛专场”,坐实这一称号,得到广大程序猿认可;
OBP 及蟒营工程设计者 /主持人;
主持编撰“可爱的 Python”/“真实世界的 Python 仪器监控”等技术图书;
参与并主持各种线上 / 线下活动,
坚持用 Pythonic 感化国人进入 FLOSS 世界进行学习 / 分享 / 创造…http://zoomquiet.io/
PS:
题图是出自书法世家的 吴雅婷 小姐姐,
她还曾为 PyCon2015China T裇题字,纪念衫深得 Guido 老爹赞赏。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/linux/56520.html