![](https://ruby-china-files.b0.upaiyun.com/photo/2014/1a98ddb4f805530b07372e3556a114da.png)
前幾天fork了Ruby China的源碼,面對陌生的Ruby技術(shù)棧乡洼,一頭霧水变抽。
我fork它并不單為了學習,而是要在最短的時間搭建起我腦海中的社區(qū)網(wǎng)站呀伙。所以我不可能針對每一門新技術(shù)都去買一本書來讀上半個月补履。
我在本機運行起Ruby China,新注冊一個用戶剿另,發(fā)現(xiàn)不能發(fā)帖,提示說要注冊一個月以上才可以贬蛙。于是我去找相關(guān)代碼:
# 是否能發(fā)帖 def newbie? return false if self.verified == true self.created_at > 1.week.ago end
明明是一星期嘛雨女,代碼是不會說謊的。于是把文字改掉阳准,順便提個pull request氛堕。
扯遠了,代碼說如果是self.verified
就不是新手了野蝇,我先去管理后臺看了一下讼稚,沒有修改這個字段的界面。于是我不得不去數(shù)據(jù)庫里更新這個字段绕沈。我大概知道m(xù)ongodb是數(shù)據(jù)庫锐想,但我不知道該怎么操作。
從宏觀出發(fā)
當我了解到一個新的技術(shù)名詞乍狐,不會直接陷入細節(jié)赠摇,而是從宏觀上把握它。了解它的背景浅蚪,為何出現(xiàn)藕帜,解決什么問題,有什么同類技術(shù)惜傲,沒有它之前我們?nèi)绾喂ぷ髑⒐省R驗橛辛撕暧^的了解,我就能很容易把它和我熟悉的技術(shù)去建立關(guān)聯(lián)盗誊,從而更快地理解它时甚。
![](https://ruby-china-files.b0.upaiyun.com/photo/2014/e7a89c5f0195bf03d1a853409df2b486.png)
實踐出真知
打開官網(wǎng),發(fā)現(xiàn)有個非常棒的Try it out浊伙,先花10分鐘玩一下撞秋,對其玩法有個大概了解,然后再來解決實際的問題嚣鄙。
從前面的Try it out中我知道了help
命令吻贿,于是便通過help知道了show dbs
,use ruby_china_dev
哑子。根據(jù)使用SQL的經(jīng)驗舅列,我想當然地認為更新一條記錄的一個字段應(yīng)該是這樣:
db.users.update({"_id":3}, {verified: true})
但我悲劇地發(fā)現(xiàn)肌割,整條記錄被替換了,好吧帐要,這就是文檔型數(shù)據(jù)庫把敞。于是放狗搜索:
How to update specific field in mongodb
很快便找到了答案。
db.myCollection.update({condField: 'condValue'}, { $set: { dateField: new Date(2011, 0, 1)}}, false, true);
對應(yīng)我這里的需求就是:
db.users.update({_id:3}, {$set:{verified:true}}, false, true)
問題解決了榨惠。
隨著接觸的越來越深奋早,遇到的問題就會越來越多。我會把每一個解決掉的問題放到我的Evernote里赠橙,這樣下次再遇到就能很快找到答案耽装。當我發(fā)現(xiàn)postach.io這個可以和Evernote同步的博客系統(tǒng)后,就開通了這樣一個博客期揪,其他人遇到同樣的問題時也更容易找到答案了掉奄。
當我真正對一門技術(shù)感興趣并且有足夠的時間去學習時,我通常會按照下面的步驟去學習凤薛。
![](https://ruby-china-files.b0.upaiyun.com/photo/2014/aa5e5804cea2290ea552eb62c18e7505.png)
教是最好的學
實踐足夠多后時姓建,我可能覺得已經(jīng)掌握這門技術(shù)了。但當我嘗試去表達的時候缤苫,會驚訝地發(fā)現(xiàn)還有很多概念是似懂非懂的速兔。于是我會去查資料,完善自己的體系榨馁。只有當我把學到的東西用自己的語言表達出來憨栽,并且能讓聽眾明白的時候,才是真正掌握了該技術(shù)翼虫。
學會分享是很重要的屑柔,把在該技術(shù)上的經(jīng)驗總結(jié)出來,寫成博客珍剑,集結(jié)成書出版掸宛,再到行業(yè)會議上分享實踐經(jīng)驗。這樣才能成為該領(lǐng)域公認的專家招拙。
推遲學習
一位一年讀100多本書的同事說:
你一年才能讀幾十本書唧瘾,就不要什么書都看了,多花點時間挑書吧别凤。
現(xiàn)在新技術(shù)層出不窮饰序,我們沒有那么多時間去深入學習每一門。對于大多數(shù)技術(shù)规哪,我們只需要搞懂概念部分求豫,從宏觀上了解一下,決定我們要不要深入地去學習它。有了這些了解蝠嘉,就能輕松地與別人聊天了最疆,也可以為以后技術(shù)選型做一些儲備。當面對真正的需求時蚤告,或者你有足夠的時間做技術(shù)儲備時努酸,才去進入實踐部分。
編程是一個知識更新很快的行業(yè)杜恰,只有真正有熱情并掌握了好的學習方法的人获诈,才能走的長久。
(整理自:Ruby-China論壇)