如何快速学习一门新技术

?>本文写于 2014 年 5 月。

前几天fork了Ruby China的源码,面对陌生的Ruby技术栈,一头雾水。
我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多本书的同事说:

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

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

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

时间: 2024-08-02 15:11:14

如何快速学习一门新技术的相关文章

程序员如何快速学习一门新技术?

最近闲暇时间在bilibili看了大胖的程序员如何学习一门新技术视频教程,总结了一下几点 第一步:看官方API(2天左右的时间) 第二步:找实战教程(自己可以去各大资源网站上购买) 5天时间 第三步:推动新技术在工作中的使用 不建议使用新技术到公司的主营业务中,不然到时候没弄好就得走人 第四步:看Github上的开源项目或者自己可以去寻找技术生态 原文地址:https://www.cnblogs.com/yirufeng/p/12244284.html

React Native学习(1):怎么快速学习一门新技术

React Native学习方法论 这是我技术公众号的第一篇文章,也是ReactNative系列文章的第一篇,对我的文章感兴趣的可以加我微信16230091进行关注. 本文表面上讲React Native(以下简称RN),实际上对于学习任何语言和系统都适用. 对于新技术的学习,分为两种,一种是语言,类似Swift.Objective-C.Java.ES6,另一种是系统,比如Android.iOS.前端. 1. 语言层面,如果你精通某一门语言,那么是可以很快切换到另一门语言的.这就是语言的相通性.

如何快速学习一门新技术(转载)

前几天fork了Ruby China的源码,面对陌生的Ruby技术栈,一头雾水. 我fork它并不单为了学习,而是要在最短的时间搭建起我脑海中的社区网站.所以我不可能针对每一门新技术都去买一本书来读上半个月. 我在本机运行起Ruby China,新注册一个用户,发现不能发帖,提示说要注册一个月以上才可以.于是我去找相关代码: # 是否能发帖 def newbie? return false if self.verified == true self.created_at > 1.week.ago

《如何快速且深入的学习一门新技术》读后感

本文是学习颜群的<如何快速且深入的学习一门技术>的一篇记录文章,对方的很多观点和让我很受启发,虽然自己平时对学习方法有些心得,但是真正去总结自己的学习方法却很少.缺少盘点的结果就是任凭本能和学习状态,显然这种方法是不可持续的.为了提升个人或团队的学习效率,如何摸索一套针对技术类型的学习方法是非常值得每个技术人员去探索和总结的. 软件开发正处于快速发展的时代,新技术层出不穷,那么在这个日新月异的互联网时代作为软件开发者,我们应该如何保证自己的技术竞争力?我们今天就来聊一聊,如何快速且深入的学习一

如何快速高效的学习一门新技术

这个问题网上有很多不错的blog,每篇或长或短,我看了几篇评分较高的文章,认为有几个核心方法和思想: 原文链接:https://blog.csdn.net/foruok/article/details/49068181   https://blog.csdn.net/qq_30089191/article/details/73742425 (1)以未来某个阶段的目标和现阶段自身的需求出发,选择学习一门新技术. 以目标为导向,确定近期的学习方向,选择学习哪门技术.比如,现在遇到某个项目,该项目是你

如何快速掌握一门新技术/语言/框架

IT行业中的企业特点是都属于知识密集型企业.这种企业的核心竞争力与员工的知识和技能密切相关.而如果你在企业中扮演的是工程师的角色的话,那么你的核心竞争力就是IT相关的知识与技能的储备情况.而众所周知,IT行业是一个大量产生新知识的地方,就拿Web前端举例,短短的5,6年时间,Web前端已经经历了数次变革,就目前来看变革还将继续下去.从以前的div+css网格化布局到JavaScript的方兴未艾,然后是各种JavaScript框架的百家争鸣,HTML5和CSS3的落地,移动web冲击下带来的响应

快速学习一门新的编程语言

为什么 Objective-C 很难 - linux,dev - 博客园http://www.cnblogs.com/huapox/archive/2012/12/01/3251600.html 9 个指导开发者快速编码/学习的网站推荐 - 楚广明 - 博客园http://www.cnblogs.com/chu888chu888/archive/2012/02/16/2354813.html 教是最好的学 - MNight - 博客园http://www.cnblogs.com/mnight/p

怎样学习一门新技术?(转)

add by zhj: 我个人强调先整体后局部,先看要学的这个技术的整体框架是怎样的,然后再学,这样,可以把学到的东西用整体串起来, 形成树/图的数据结构,将知识进行了关联.人脑是非常喜欢这种数据结构的,也更容易存储这种数据结构,哈哈,从这个角度进行对比 人脑和计算机,两者的确是很像.而如果你没有整体的框架,存储集合类型的数据结构,那大脑就很容易忘记这些零散的知识. 原文:https://www.sohu.com/a/297468779_818692?spm=smpc.author.fd-d--

如何学习一门新技术

目录 1. 如何学习一门新技术 学习步骤 2. 数据库优化和关注点: 3. 数据库整体架构 1. 如何学习一门新技术 学习步骤 1:完形填空的方法从整体了解:了解技术的套路,模板:执行流程,重复代码: 2:深度学习 3:通过案例倒逼技术的驱动: 考试倒逼学习法: 对于各种微服务项目,进行整合,进而对于技术进行强化学习: 1. 技术难点: 偏离论:拆解目标, 碎片化学习: 偏实践:先熟悉理论, 实践就是理论的验证: 2. 提高个人学习氛围的方法: 1:分享成果,多互动: 2:做好技术沉淀, 提高影