初学者如何通过技术社区加速成长?

两年前开始, 持续至今的一个话题.

from:   Zoom.Quiet <zoom.quiet@gmail.com>
to: CPyUG~华蠎用户组 <python-cn@googlegroups.com>
date:   Fri, Jan 23, 2015 at 11:40 PM
subject:    [101] 新人到底需要什么?


俺以为现在 Python 的中文资料/图书 极大丰富的情况下,
入门已经不是问题了,,,,要不怎么 CPyUG 列表越来越不活跃了呢?!
但是,几乎每周,俺都能从各种渠道收到类似的求助:'''
    ...我是一名学习python的初学者,并且没有任何基础,
    我现在学习陷入了困难,希望找一名老师帮助我,十分感谢..
所以, 俺想这里是真的哪里有不对,
但是, 俺真心不知道90后新人, 心目中,老师可以给予的具体帮助是什么
大家是否能共同给出一个永久性解决 
    "不知道如何自学/开始学习 Python" 
类似的入门求助问题解答?

故事

无意间发起的讨论, 自己也没想到持续了这么长时间, 看起来, 只要列表存在, 随时可能有人挖坟重启讨论,

因为, 这是个有长久意义的基础命题:

如何在任何一个领域
通过社区
获得高速成长?

先回顾一下讨论的进展:

所以, 作为被公认的社区 大妈 从多年亲身体验中, 总结一些 自学+社区 的经验,应该能帮助那些刚刚接触到技术社区这一生态的上进者们.

新人

~ 先明确一下界限

论述开始前, 当然得先明确探讨对象的界定, 否则随时可能陷入鳮同鸭讲的囧态中.

在讨论过程中, 大家对 新人 的共识是:

那么,对技术社区而言:

那么对于原始命题: 新人到底需要什么? 这其中的 新人 就应该限定为:

无基础的初学者

究竟什么是基础?

那接下来的问题就是:

对于编程
究竟应该有什么基础?

在列表线索讨论中,大家给出了一系列悲伤的故事, 经典的有代表性的:

91年的堂弟, 中专电子专业文凭, 突然来深圳找工作, 性格内向,期望找酒店服务生之类,考虑到他一只腿有点瘸,走起路来不方便, 所以推荐他去学电脑/前端之类的.

他选择了学习PHP, 帮他找了PHP培训机构. 4个多月培训出来之后还是找不到工作,都嫌弃他没经验或者面试就直接没通过.

只能边找工作边辅导教他学习 Linux 及 VIM, 能照着文档把 LNMP 顺利编译完成 (两个星期才全部弄好,一有编译问题就等着, 直到下班问他有没有问题, 他才说有问题,结果都是些一google就能找到方法的问题)

之前就跟他说过有问题直接在QQ上问, 然尔一次也没有QQ上问过.

而且, 只是把自己在学校练习的PHP项目放进本地 LINUX 中 PHP 环境一跑就报错, 每天我下班回来问他搞好了没?

他回:"还没有,遇到了点问题"; 我说:"你自己google解决吧" (翻墙是我教他的)

过了三天,还是没有动静, 周末我这个没学过 PHP 的运维帮他调试了下, 马上定位问题所在:原来他代码里引用的其它文件使用了绝对路径!

觉得这样的问题都解决不了真的是太让人绝望了, 在培训学校的时候这样的问题应该有遇到过, 或者应该有能力去排查掉这样问题.

期间我告诉他你在这里住好吃好, 边找工作边自己学习, 不用着急想着赚钱, 你要是实在找不到,就去找能给实习工作的公司也行.

结果这周自己不先打个招呼走了,后来电话告诉我自己去龙岗那边找工厂上班...

总的来说:

当然, 也有正面的案例:

还在大学的时候, 曾经参与了FFVII的汉化, 其中有一项重要的工作:

这项工作是由一位之前没接触过编程的朋友完成的.

他因为太想完成汉化这件事, 自学了汇编以及程序调试相关的知识, 花了相当长的时间最终独立完成了这项工作!

这个案例说明了当你有一个迫切想解决的问题, 你会用尽一切办法去学习相关知识, 而这种学习往往是提升最大的.

进一步的, 所有标准的: 不折腾会死星人 在独立熬过入门阶段后, 最怨念的是: "...想去搜搜看却连应该搜什么都不知道"

笑来老师曰过:

初级知识
    需要对高级知识深入了解
        才能真正深入了解

所以,现在可以基本明确:

那么最初问题可以推进到:

如何回答新人们
经典的入门问题?

入门?!

引用列表中的有关回答:

嗯哼?!

这个入门的指标, 在多数新人眼中, 已经是专家级别了吧...

真正的需要

还得引用讨论中的经典嗯哼:

开始学习

是的, 一切新人式问题的根源只是因为并没有开始学习, 而是, 依然在传统学校灌输式被学习的心理依赖状态中, 等待被灌输...

问题在,计算机编程, 是门手艺活:

学习, 本身就包含了学和习两种行为

即,在编程领域中的学习, 能比其它领域建立起来更快的 MVP

社区

~ 是的, 社区是建立这一过程的最快场景

讨论中最重量级的断言是:

from:
Shell Xu via googlegroups.com 
reply-to:
python-cn@googlegroups.com
date:
Sun, Oct 18, 2015 at 11:06 AM

你可以教授所有东西,但是唯有求知欲和学习能力除外。

大家表示同意:

不过,最后阶段反转性断言,指出了社区存在的意义:

date: Tue, Mar 21, 2017 at 8:27 PM

庄表伟:

求知欲不能教授
    但可传染
学习能力无从教
    却能修炼

无法同意更多:

技术社区,可以说, 本身就是由成功的自学者们组成的, 乐于分享自学成果,前提是问对问题:

以及大家可能都没有意识到:

引用讨论中的经典断言:

其实 "开发语言" 真是很好的命名
编程这东西就像学外语一样
突然有一天
    当你发现自己居然可以自由运用了
    那么你就会说这门语言了
    计算机理解你写的代码了

综上

初学者如何通过技术社区加速成长?

这个命题其实有一系列背景问题:

逐一展开, 不知道要写多少字了;

先说这些, 在语音分享过程中, 我们再看能挖掘出什么有趣的问题, 引发下一期 GitChat 吧.

后记

这个分享应该算 CPyUG 的集体创作, 在 28个月的列表讨论期间, 贡献过意见的 Pythonista 部分名单:

Glowin 风间星魂 shichen shell909090 XO y 悔恨的阿毛 bosby j yourzhaozhao 牛魔王 yegle Adieu feiandxs ubunoon Leo Xu qyb Elias Soong balckwing laike9m Jex fy0748 Pengfei shhgs whycrying Rongxing khsing ...

QA

作为一个半新人,我的困惑如下: 公司平时任务很多,所以深入学习技术的时间少。 每次碰到一个知识点,看源码看文档,刚要接近真相的时候,突然意识到任务为重, 然后就把这个知识点暂时放下了,导致积累了很多要学的知识。 这令我很困惑,我该如何去权衡这两者之间的关系呢?谢谢

这其实是个个人技术债务的管理过程:


Author: Zoom.Quiet /mail / gittip / github