当前位置: 首页 > 科技观察

如何快速学习一门新技术

时间:2023-03-20 01:17:57 科技观察

前几天我fork了Ruby中国的源码,面对陌生的Ruby技术栈,不知所措。我fork它不只是为了学习,而是为了在最短的时间内搭建好我心目中的社区网站。所以我不可能每个新技术都买一本书,看半个月。我开始在本机上运行RubyChina,注册了一个新用户,发现发不了帖子,提示说要注册一个多月。所以我去找相关代码:#Canyoupostdefnewbie?returnfalseifself.verified==trueself.created_at>1.week.agoend显然是一周,代码不会说谎。所以我改了下文字,顺便提了一个pullrequest。扯远了,代码说如果是self.verified,就不是新手了。我先去管理后台查看了一下,没有修改这个字段的界面。所以我不得不更新数据库中的这个字段。大致知道mongodb是数据库,但是不知道怎么操作。从宏观角度出发学习一个新的技术名词时,我不会直接深入细节,而是从宏观角度去把握。了解它的背景、它产生的原因、它解决的问题、有哪些技术以及没有它我们将如何工作。因为有了宏观的认识,我很容易把它和我熟悉的技术联系起来,从而更快地理解它。真正的知识来自于实践打开官网,找一个很好的试一试,先花10分钟玩一下,大致了解它的玩法,然后解决实际问题。从前面的Tryitout,知道了help命令,所以通过help知道了showdbs和ruby_china_dev的使用。根据我使用SQL的经验,我理所当然地认为更新记录的字段应该是这样的:db.users.update({"_id":3},{verified:true})但我悲惨地发现整个记录是相反,嗯,这是一个文档数据库。于是放狗去搜索:Howtoupdatespecificfieldinmongodb,很快就找到了答案。db.myCollection.update({condField:'condValue'},{$set:{dateField:newDate(2011,0,1)}},false,true);这里对应我的需求是:db.users.update({_id:3},{$set:{verified:true}},false,true)问题解决了。随着接触越来越深,遇到的问题也会越来越多。我会把每一个解决的问题都放在我的印象笔记里,以便下次遇到的时候能快速找到答案。当我发现postach.io这个可以和印象笔记同步的博客系统后,我就开了这样一个博客,其他人遇到同样的问题时更容易找到答案。当我真的对一门技术感兴趣并且有足够的时间学习它时,我通常会按照下面的步骤来学习它。教学是最好的学习方式当我练习足够多时,我可能会觉得我已经掌握了这项技术。但是当我尝试去表达的时候,我惊奇地发现,还有很多概念我不明白。所以我会检查资料并改进我的系统。只有当我用自己的语言表达我所学到的东西并让听众理解时,我才真正掌握了技巧。学会分享很重要。总结在这门技术上的经验,写成博客,汇集成书出版,然后在行业会议上分享实践经验。这就是您成为该领域公认专家的方式。推迟学习一个一年看100多本书的同事说:一年只能看几十本书,所以不要什么都看,多花点时间在选书上。现在新技术层出不穷,我们没有那么多时间去深入学习每一项。对于大部分技术,我们只需要了解概念部分,从宏观的角度去理解,再决定是否要深入学习。有了这些了解,你就可以轻松地和别人聊天,也可以为以后的技术选择做一些储备。当面对真正的需求,或者你有足够的时间做技术储备的时候,才进入实战部分。编程是一个知识更新很快的行业。只有真正有热情,掌握了好的学习方法的人,才能走得长久。原文链接:https://ruby-china.org/topics/19578