如何快速学习一门新技术 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
seabornlee
V2EX    自言自语

如何快速学习一门新技术

  •  1
     
  •   seabornlee 2015-12-31 13:53:14 +08:00 624 次点击
    这是一个创建于 3627 天前的主题,其中的信息可能已经有所发展或是发生改变。

    >本文写于 2014 年 5 月。

    前几天 fork 了 Ruby China 的源码,面对陌生的 Rub 技术栈,一头雾水。
    我 fork 它并不单为了学习,而是要在最短的时间搭建起我脑海中的社区网站。所以我不可能针对每一门新技术都去买一本书来读上半个月。

    我在本机运行起 Ruby China ,新注册一个用户,发现不能发帖,提示说要注册一个月以上才可以。于是我去找相关代码:

    # 是否能发帖
    def newbie?
    return false if self.verified == true
    self.created_at > 1.week.ago
    end

    明明是一星期嘛,代码是不会说谎的。于是把文字改掉,顺便提个pull request
    扯远了,代码说如果是self.verified就不是新手了,我先去管理后台看了一下,没有修改这个字段的界面。于是我不得不去数据库里更新这个字段。我大概知道 mongodb 是数据库,但我不知道该怎么操作。

    从宏观出发

    当我了解到一个新的技术名词,不会直接陷入细节,而是从宏观上把握它。了解它的背景,为何出现,解决什么问题,有什么同类技术,没有它之前我们如何工作。因为有了宏观的了解,我就能很容易把它和我熟悉的技术去建立关联,从而更快地理解它。

    实践出真知

    打开官网,发现有个非常棒的Try it out,先花 10 分钟玩一下,对其玩法有个大概了解,然后再来解决实际的问题。

    从前面的 Try it out 中我知道了help命令,于是便通过help知道了show dbsuse ruby_china_dev。根据使用 SQL 的经验,我想当然地认为更新一条记录的一个字段应该是这样:

    db.users.update({"_id":3}, {verified: true})

    但我悲剧地发现,整条记录被替换了,好吧,这就是文档型数据库。于是放狗搜索:How to update specific field in mongodb,很快便找到了答案。

    db.myCollection.update({condField: 'condValue'}, { $set: { dateField: new Date(2011, 0, 1)}}, false, true);

    对应我这里的需求就是:

    db.users.update({_id:3}, {$set:{verified:true}}, false, true)

    问题解决了。

    随着接触的越来越深,遇到的问题就会越来越多。我会把每一个解决掉的问题放到我的 Evernote 里,这样下次再遇到就能很快找到答案。当我发现postach.io这个可以和 Evernote 同步的博客系统后,就开通了这样一个博客,其他人遇到同样的问题时也更容易找到答案了。

    当我真正对一门技术感兴趣并且有足够的时间去学习时,我通常会按照下面的步骤去学习。

    教是最好的学

    实践足够多后时,我可能觉得已经掌握这门技术了。但当我尝试去表达的时候,会惊讶地发现还有很多概念是似懂非懂的。于是我会去查资料,完善自己的体系。只有当我把学到的东西用自己的语言表达出来,并且能让听众明白的时候,才是真正掌握了该技术。

    学会分享是很重要的,把在该技术上的经验总结出来,写成博客,集结成书出版,再到行业会议上分享实践经验。这样才能成为该领域公认的专家。

    推迟学习

    一位一年读 100 多本书的同事说:

    你一年才能读几十本书,就不要什么书都看了,多花点时间挑书吧。

    现在新技术层出不穷,我们没有那么多时间去深入学习每一门。对于大多数技术,我们只需要搞懂概念部分,从宏观上了解一下,决定我们要不要深入地去学习它。有了这些了解,就能轻松地与别人聊天了,也可以为以后技术选型做一些储备。当面对真正的需求时,或者你有足够的时间做技术储备时,才去进入实践部分。

    编程是一个知识更新很快的行业,只有真正有热情并掌握了好的学的方法的人,才能走的长久。

    2 条回复    2016-01-01 13:42:16 +08:00
    XianZaiZhuCe
        1
    XianZaiZhuCe  
       2015-12-31 22:44:30 +08:00 via Android
    为什么编程的知识更新这么快?
    sammo
        2
    sammo  
       2016-01-01 13:42:16 +08:00
    底子好,学得自然快。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1249 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 17:28 PVG 01:28 LAX 09:28 JFK 12:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86