Dreyfus Model 的五個階段

标签: 讀書摘要 | 发表时间:2011-03-01 00:51 | 作者:xdite dylan
出处:http://blog.xdite.net

這是在閱讀「程序員的思維修煉:開發認知潛能的九堂課 」時看到的一個模型:「Dreyfus model of skill acquisition」,印證在職場上蠻有感覺的,就摘錄下來…

階段一:新手(Novice)

由定義可知,新手在該技能領域經驗很少或者根本沒有經驗。這裡提到的經驗,指的是通過實施這項技術促進了思維的改變。舉個反例,可能一個開發人員聲稱擁有了十年的經驗,但實際上只是一年的經驗重複了九次,那麼這就不算經驗。

新手非常在乎他們能否成功,沒有太多經驗指導他們,他們不知道自己的行為是對是錯。新手不是特別想學習,他們只是想實現一個立竿見影的目標。他們不知道如何應付錯誤,所以出錯的時候,他們非常容易慌亂。

但是,如果給新手提供與情境無關的規則去參照。他們就會變得能幹起來。也就是說,需要這種形式的規則:「當 X 發生時,執行 Y 。」換言之,需要一份指令清單。

這就是 Call Center 的工作原理。你可以雇用一大批對當前技術沒有很多經驗的人,然後讓他們按照一個決策樹按部就班地執行下去。

當然,新手所面臨的問題是,對於某種竟,不知道哪調規則是最相關的。當一些意想不到的事情發生時,他們就會不知所措。

指令清單(包含情境無關的規則)的問題在於你不能一五一十地將所有事情解釋清楚。你可以設立更多的規則去解釋,然後再用更多的規則去解設剛設立的規則,沒有一個實際的界線約定你需要說得多明白。這種現象被稱為無限遞迴(infinite regression)。因此,你必須明確終止反覆解釋。

規則只能讓你啟程,不會讓你走得更遠。

階段二:高級新手(Advanced beginner)

一旦經過新手的歷練,人們開始以高級新手的角度看待問題。高級新手能夠開始多多少少地擺脫固定的規則。他們可以獨自嘗試任務,但仍難以解決問題。

他們想要快速獲取信息。例如,當學習一門新語言或 API 時,你可能會感覺到這點,你發現自己會快速瀏覽文檔以尋找一個方法定義或參數列表。你不想在此刻尋根究底,或者重新溫習一遍基礎知識。

高級新手能夠根據過去的經驗,逐步在正確的情境中採納建議,但比較吃力。同時,他們能夠開始形成一些總體原則,但不是「全貌」。他們沒有全面的理解,而且的確不想有。如果你試圖把一個更大的情境強加給高級新手,他們可能會認為該情境與那些原則不相關而忽略掉

當公司 CEO 舉行全體會議並展示銷售預測圖表和數據時,你可能會看到這樣的反應。許多在這方面經驗較少的員工對這些會不加理會,以為這與他們自己的工作不相關。當然,其實這是非常相關的,它可以幫助你判斷明年你在這家公司是否還能繼續幹下去。但是,你看不到這種聯繫,因為你層次還不夠,只處於較低的技能水平。

階段三:勝任者 ( Competent )

在第三階段,從業者現在能夠建立問題域的概念模型,並有效地使用它們。他們可以獨力解決自己遇到的問題,並開始考慮如何解決新的問題 — 那些他們之前沒有遇過的問題。他們開始尋求和運用專家的意見,並有效利用。

與更高水平者追隨下意識反應不同,勝任者會探尋和解決問題,他們的工作更多是基於謹慎的計畫和過去的經驗。如果沒有更多的經驗,在解決問題時,他們將難以確定關注哪些細節

你可能會看到,處於這一水平的人通常被認為「有主動性」和「足智多謀」。他們往往在團隊中發揮領導作用(無論是否有正式的頭銜)。他們是團隊裡的好人,既可以指導新手,也不會經常騷擾專家。

在軟件開發領域,我們達到了這個水平。但是即使在這一水平,人們仍然無法按照我們希望的方式來應用敏捷方法 — 大家還沒有足夠的能力反思和自我糾正。為此,我們需要取得突破,達到一個新的水平:精通。

階段四:精通者(Proficient)

精通水平的從業者需要全局思維。他們將圍繞這個技術,尋找並想了解更大的概念框架。對於過於簡單化的訊息,他們會非常沮喪。

例如,處於精通階段的人撥打計算機的技術支持熱線電話,被詢問是否插上了電源的時候,不會做出良好反應。

但是,在 Dreyfus Model 中,處於精通水平的從業人員有一項重大突破:他們能夠糾正以往不好的工作表現。他們會反思以前是如何做的,並修改其作法,期望下一次表現得更好。到這個階段,自我改進才會出現。

同時,他們會學習他人的經驗。作為精通者,它能夠閱讀案例研究,傾聽有關失敗項目的流言蜚語,觀察別人怎麼做,從故事中認真學習,即便他沒有親自參與。

伴隨向他人學習的能力而來的,是理解和運用格言經驗之談(maxim)的能力,這些經驗之談猶如諺言或格言,是可以應用於當前情境的基本原理。經驗之談不是指令清單,他們必須在一定的情境下使用。

舉例來說,一個眾所週知的極限編程方法的經驗之談是「測試一切可能出錯的東西」。

對於新手來說,這只是一個指令清單。測試什麼?是所有的 setter 與 getter method,還只是打印語句?他們最終會測試所有無關的東西。

但是,處於精通水平的人員知道什麼地方有可能出錯,或者更確切地說,什麼地方非常有可能出錯。他們具有經驗和判斷力,能夠理解這句格言在情境中意味著什麼。事實證明,理解情境是成為專家的關鍵

精通者有足夠的經驗,他們知道下一步會發生什麼,如果沒有發生又需要改變什麼。他們非常明確哪些計畫需要取消,而應該採取什麼行動

同樣,處於精通水平的人可以有效地運用 Software Pattern,但是這不是較低技能水平所必須掌握的。

現在我們已經到達了一個層次。精通者可以充分利用思考和反饋,這些都是敏捷方法的核心。相對於早期階段,這是一次巨大的飛躍。處於精通階段的人更像是初級專家,而不是高級勝任者。

階段五:專家(Expert)

終於,我們來到了第五個也是最後一個階段:專家。

專家是各個領域知識和信息的主要來源。他們總是不斷地尋找更好的方法和方式去做事。他們有豐富的經驗,可以在恰當的情境中選取和應用這些經驗。他們著書、寫文章、做巡迴演講。他們是當代的 Wizard。

根據統具,專家的數量很少,大概佔總人數的 1% ~ 5%。

專家根據直覺工作,而不需要理由。這帶來一些非常有趣的影響,並引出了一些重大問題 — 到底什麼是直覺?

雖然專家非常有直覺 — 這一點對我們其他人來說非常神奇,他們可能會對如何得到結論完全說不清楚。他們的確不知道,只是「覺得是正確的」。

專家知道哪些是無關緊要的細節,哪些是非常重要的細節。也許不是有意識的,但是專家知道應該關注哪些細節,可以放心地忽略哪些細節。專家非常擅長做有針對性的特徵匹配。

專家通常很難把他們的行為恰如其分地解釋清楚,他們的很多行為是如此地熟練以至於已經變成無意識的了。他們的大量經驗都是通過大腦的非語言、無意識區域儲存的,這讓我們難以觀察,而專家則難以表述。

當專家在做事時,我們其他人覺得十分神奇。神祕的魔法看起來似乎無處可循,當我們甚至還不完全認識問題的時候,專家就已經憑藉一種不可思議的能力知道了正確的答案。當然,這不是魔法,只是他們認識世界的方式、解決問題的的方法、運用的思維模型都和普通人顯著不同。

相关 [dreyfus model] 推荐:

Dreyfus Model 的五個階段

- dylan - Blog.XDite.net
這是在閱讀「程序員的思維修煉:開發認知潛能的九堂課 」時看到的一個模型:「Dreyfus model of skill acquisition」,印證在職場上蠻有感覺的,就摘錄下來…. 階段一:新手(Novice). 由定義可知,新手在該技能領域經驗很少或者根本沒有經驗. 這裡提到的經驗,指的是通過實施這項技術促進了思維的改變.

續:Dreyfus Model 的五個階段

- dylan - Blog.XDite.net
這篇是摘一些 Dreyfus Model 中有趣的敘述. 高級新手和勝任者經常會把指令清單和軟件設計模式混淆,有時這會導致災難性的後果. 就我知道曾經有一位開發人員剛看了 GoF 的書,並熱情地想開始使用設計模式. 他設法將 23 個設計模式中的 17 個用在他那段不幸的代碼片段中,終於被人發現. 直覺是專家的工具,但公司往往輕視它,因為他們錯誤地認位,直覺「不科學」或者「不可重製」.

使用Mono.Cecil辅助ASP.NET MVC使用dynamic类型Model

- wang - 老赵点滴 - 追求编程之美
这也是之前在珠三角技术沙龙上的示例之一,解决的是在ASP.NET MVC使用dynamic类型Model时遇到的一个真实问题. C# 4编译器支持dynamic类型,因此在编写页面模板的时候自然就可以把它作为视图的Model类型. 表现层的需求很容易改变,因此dynamic类型的Model可以减少我们反复修改强类型Model的麻烦,再配合匿名类型的使用,可谓是动静相宜,如鱼得水.

《推荐系统实践》关于Latent Factor Model

- - xlvector - Recommender System
Latent Factor Model,很多人称为SVD,其实是比较伪的SVD,一直是最近今年推荐系统研究的热点. 但LFM的研究一直是在评分预测问题上的,很少有人用它去生成TopN推荐的列表,而且也很少有人研究如何将这个数据用到非评分数据上. 本来这本书不准备在实践部分讲这个算法,而只准备在后面介绍学术界研究热点的时候讲这个算法.

css核心-盒子模型(Box Model)整理

- - CSDN博客Web前端推荐文章
1、对盒子模型的不同解释.      这里IE6、IE8、IE9相同,火狐和谷歌、遨游等相同. 先说盒子模型,CSS将所有的HTML块元素都看成是一个盒子(box),每个盒子有以下几个组成部分:Content(内容)、Padding(补白)、Border(边框)、Margin(边界). 火狐谷歌等较新的的浏览器实行加法运算,“向外扩张”.

可视化格式模型( Visual formatting model)再学习

- - 进步博客
“理论不懂就实践,实践不会就学理论”,非常赞同bluedavy的这句话. 实践过程中经常会遇到某个属性的使用,浏览器渲染效果与预期效果不符,虽然通过死记硬背能避免或巧妙应用这种效果,但总感心虚发慌、毫无自信,因为不知晓背后的原理. 这时就不要再用“就是这样的”的借口来搪塞自己,我们需要重新认识它. 元素A,C绝对定位,不设置top,bottom值;.

投行常说的「模型」(model) 是什么东西?

- - 知乎每日精选
投行或者投资界的财务模型(Financial Model)听起来是不是高大上白富美,然而细究其本质及原理,只有三个字:“Low爆了”. 数学原理不超过四则运算,顶多加上开方和乘法. 而且制作工具也非常简单,基本都是Excel. 这个领域的Financial Model的复杂性不是体现在理论,而是体现在:.

使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件 - Balla_兔子

- - 博客园_首页
  Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件. 关于Mybatis-Generator的下载可以到这个地址: https://github.com/mybatis/generator/releases.

Spring3 Mybatis3 freemarker 自动生成对应表的model、mapper、service、controller并自动修改mybatis配

- - 互联网 - ITeye博客
自己利用spring3、mybatis3进行开发时,前期花费了大量的时间去写对应的model、mapper、service文件,并想到用freemarker来动态生成对应的JAVA文件..   其实就是将数据库中的表取出来,表名作为类名,并把对应的列名取出来,作为字段名称,然后通过 freemarker定制的模版去生成相关的文件即可.

特斯拉的平价电动车 Model 3 终于交车了!你要知道的细节都在这里

- - PingWest品玩
周五的晚上 9 点,上千人出席……特斯拉从来没这么晚开过这么大规模的发布会. 然而这是一场快速开始快速结束的发布会:观众从 7 点开始入场,伊隆·马斯克 9 点整开着一辆 Model 3 入场开始演讲. 到了 9 点 23 分左右,发布会就结束了. 到 9 点半左右已经开始散场了. 马斯克真是个好人,大家看完发布会接着去湾区各地的大小酒吧 happy了……如果 Google、Facebook、苹果都能这样开发布会多好…….