专栏名称: 算法与数据结构
算法与数据结构知识、资源分享
目录
相关文章推荐
九章算法  ·  job market,要反弹了 ·  5 天前  
九章算法  ·  这回,马斯克要把美国公务员逼疯了…… ·  3 天前  
九章算法  ·  K.O大厂“原题”的《大厂OOD面试宝典》, ... ·  5 天前  
九章算法  ·  湾区不卷娃的底气! ·  1 周前  
九章算法  ·  100个正在actively hiring的公司… ·  1 周前  
51好读  ›  专栏  ›  算法与数据结构

如何快速学习一门新技术

算法与数据结构  · 公众号  · 算法  · 2017-04-06 09:18

正文

来自:中国软件匠艺小组

作者:hkliya (Seaborn Lee)

链接:https://codingstyle.cn/topics/3(点击尾部阅读原文前往)

程序猿自媒体已经获转载授权


前几天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 dbs,use 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多本书的同事说:

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


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


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



本文编号362,以后想阅读这篇文章直接输入362即可。

●输入m可以获取到文章目录。

相关推荐↓↓↓
 

大数据技术

推荐15个技术类公众微信

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。

推荐文章
九章算法  ·  job market,要反弹了
5 天前
九章算法  ·  湾区不卷娃的底气!
1 周前
九章算法  ·  100个正在actively hiring的公司…
1 周前
经典人生感悟  ·  世上最神奇的一句话(经典)
7 年前
天文八卦学  ·  仰望星空,何止万年 | 长图预警
6 年前