首页 > 代码库 > 热爱编程,热爱生活,高速适应IT新技术

热爱编程,热爱生活,高速适应IT新技术

如今新技术层出不穷。我们没有那么多时间去深入学习每一门。对于大多数技术,我们仅仅须要搞懂概念部分。从宏观上了解一下,决定我们要不要深入地去学习它。有了这些了解。就能轻松地与别人聊天了,也能够为以后技术选型做一些储备。



技术分享

前几天 fork 了 Ruby China 的源代码,面对陌生的 Ruby 技术栈,一头雾水。

我 fork 它并不单为了学习。而是要在最短的时间搭建起我脑海中的社区站点。

所以我不可能针对每一门新技术都去买一本书来读上半个月。

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

  1. # 能否发帖  
  2. def newbie?

     

  3.   return false if self.verified == true 
  4.   self.created_at > 1.week.ago  
  5. end 

明明是一星期嘛,代码是不会说谎的。于是把文字改掉。顺便提个 pull request。

扯远了。代码说假设是self.verified就不是新手了,我先去管理后台看了一下,没有改动这个字段的界面。

于是我不得不去数据库里更新这个字段。我大概知道 mongodb 是数据库,但我不知道该怎么操作。

从宏观出发

当我了解到一个新的技术名词,不会直接陷入细节,而是从宏观上把握它。

了解它的背景,为何出现,解决什么问题,有什么同类技术。没有它之前我们怎样工作。由于有了宏观的了解,我就能非常easy把它和我熟悉的技术去建立关联,从而更快地理解它。

技术分享

实践出真知

打开官网。发现有个很棒的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 同步的博客系统后,就开通了这样一个博客,其它人遇到相同的问题时也更easy找到答案了。

当我真正对一门技术感兴趣而且有足够的时间去学习时,我一般会依照以下的步骤去学习。

技术分享

教是最好的学

实践足够多后时,我可能认为已经掌握这门技术了。

但当我尝试去表达的时候。会吃惊地发现还有非常多概念是似懂非懂的。

于是我会去查资料。完好自己的体系。

仅仅有当我把学到的东西用自己的语言表达出来,而且能让听众明确的时候。才是真正掌握了该技术。

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

推迟学习

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

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

如今新技术层出不穷。我们没有那么多时间去深入学习每一门。

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

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

热爱编程,热爱生活,高速适应IT新技术