俗話說一天不讀書,沒人看的出;兩天不讀書,開口會爆粗;三天不讀書,智商輸給豬。因此,爲了讓本身的「智商」保持在pig之上,都會逼着本身天天讀點東西^_^。但身處信息大爆炸時代精力又極有限的咱們,面對層出不窮突飛猛進的技術,咱們應該怎麼辦呢?mongodb
其實不少時候只須要掌握一個大概就行了。數據庫
我在作測試的時候很喜歡套用5W1H的框架,後來慢慢的就發現這個框架不只適用於作測試計劃、瞭解系統業務,還很適合用來作知識的學習——這個想法跟下面的文章不謀而合,故而轉之。編程
——————————————————我是花麗麗的分割線——————————————————————ruby
前幾天fork了Ruby China的源碼,面對陌生的Ruby技術棧,一頭霧水。
我fork它並不單爲了學習,而是要在最短的時間搭建起我腦海中的社區網站。因此我不可能針對每一門新技術都去買一本書來讀上半個月。框架
我在本機運行起Ruby China,新註冊一個用戶,發現不能發帖,提示說要註冊一個月以上才能夠。因而我去找相關代碼:ide
# 是否能發帖
1 def newbie? 2 return false if self.verified == true 3 self.created_at > 1.week.ago 4 end
明明是一星期嘛,代碼是不會說謊的。因而把文字改掉,順便提個pull request。
扯遠了,代碼說若是是self.verified
就不是新手了,我先去管理後臺看了一下,沒有修改這個字段的界面。因而我不得不去數據庫裏更新這個字段。我大概知道mongodb是數據庫,但我不知道該怎麼操做。post
當我瞭解到一個新的技術名詞,不會直接陷入細節,而是從宏觀上把握它。瞭解它的背景,爲什麼出現,解決什麼問題,有什麼同類技術,沒有它以前咱們如何工做。由於有了宏觀的瞭解,我就能很容易把它和我熟悉的技術去創建關聯,從而更快地理解它。學習
打開官網,發現有個很是棒的Try it out,先花10分鐘玩一下,對其玩法有個大概瞭解,而後再來解決實際的問題。測試
從前面的Try it out中我知道了help
命令,因而便經過help
知道了show dbs
,use ruby_china_dev
。根據使用SQL的經驗,我想固然地認爲更新一條記錄的一個字段應該是這樣:網站
1 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多本書的同事說:
你一年才能讀幾十本書,就不要什麼書都看了,多花點時間挑書吧。
如今新技術層出不窮,咱們沒有那麼多時間去深刻學習每一門。對於大多數技術,咱們只須要搞懂概念部分,從宏觀上了解一下,決定咱們要不要深刻地去學習它。有了這些瞭解,就能輕鬆地與別人聊天了,也能夠爲之後技術選型作一些儲備。當面對真正的需求時,或者你有足夠的時間作技術儲備時,纔去進入實踐部分。
編程是一個知識更新很快的行業,只有真正有熱情並掌握了好的學習方法的人,才能走的長久。