怎樣快速學習一門新技術
前幾天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多本書的同事說:
你一年才能讀幾十本書,就不要什麼書都看了,多花點時間挑書吧。
現在新技術層出不窮,我們沒有那麼多時間去深入學習每一門。對於大多數技術,我們只需要搞懂概念部分,從巨集觀上了解一下,決定我們要不要深入地去學習它。有了這些瞭解,就能輕鬆地與別人聊天了,也可以為以後技術選型做一些儲備。當面對真正的需求時,或者你有足夠的時間做技術儲備時,才去進入實踐部分。
程式設計是一個知識更新很快的行業,只有真正有熱情並掌握了好的學習方法的人,才能走的長久。
前幾天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多本書的同事說:
你一年才能讀幾十本書,就不要什麼書都看了,多花點時間挑書吧。
現在新技術層出不窮,我們沒有那麼多時間去深入學習每一門。對於大多數技術,我們只需要搞懂概念部分,從巨集觀上了解一下,決定我們要不要深入地去學習它。有了這些瞭解,就能輕鬆地與別人聊天了,也可以為以後技術選型做一些儲備。當面對真正的需求時,或者你有足夠的時間做技術儲備時,才去進入實踐部分。
程式設計是一個知識更新很快的行業,只有真正有熱情並掌握了好的學習方法的人,才能走的長久。
相關文章
- 怎樣新學一門技術
- 怎樣快速學會一門技術
- 程式設計師怎樣新學一門技術程式設計師
- 怎樣學習一個新的架構技術架構
- 怎麼樣才能快速學習人工智慧技術?人工智慧
- 怎樣快速學習
- 怎樣才能快速學習Linux技術?高效學linux運維Linux運維
- 如何快速掌握一門新技術/語言/框架...框架
- 如何快速掌握一門新技術/語言/框架框架
- 快速學習新技術的幾條建議
- 怎樣才能快速掌握ps技術
- 如何快速的學習一項技術?
- 怎樣學習一門程式語言
- 怎麼樣學習雲端計算相關技術?雲應用如何入門學習?
- 如何快速掌握一門技術?
- 如何快速掌握一門技術
- 如何學習新技術
- 學習java怎麼入門?怎樣學Java?Java
- 如何從 0 開始學一門新技術框架框架
- 或許你還不知道:到底該如何學習一門新技術?
- 陳天:如何快速掌握一門技術?
- 雲端計算學習路線圖課件:學Docker容器怎樣快速入門?Docker
- 快速學習 Spring Boot 技術棧Spring Boot
- 大資料怎樣入門學習?大資料
- Objective C 快速入門學習一Object
- 學習網路新技術要心中有數--那一層的技術
- 雲端計算教程學習入門影片課件:怎樣快速掌握Linux?Linux
- 學習一門技術需要有一顆堅持的心
- 運營學習者應該怎樣學習新媒體?
- 如何高效的學習掌握新技術
- 雲原生+新技術,會碰撞出怎樣的火花?
- 我是如何學習一門程式設計技術的?程式設計
- Session跟蹤機制是怎樣的?網路安全技術學習Session
- 小白怎麼學習短視訊剪輯?怎樣快速上手?
- 韓語學習小技巧:怎樣快速記單詞
- 學習新技術的10個建議
- 入門 Web前端需要學習哪些技術?Web前端
- 如何學習一門新的語言