相關閱讀 |
>>> 技術話題—商業文明的嶄新時代 >>> | 簡體 傳統 |
作者 lucida 現在就職于 Google London;是 LucSoft 和 IdaSoft 的創建者,其下包含撥號助手和金庸全集等熱門應用;
lucida 的博客園賬戶:http://home.cnblogs.com/u/figure9/
新浪微博:@peng_gong
關鍵字
技術,生活,反思。
關于
Bjarne Stroustrup 在他的新書《A tour of C++》
里面舉了一個旅行的例子來比喻初學編程語言:
…as an analogy, think of a short sightseeing tour of a city, such as Copenhagen or New York. In just a few hours, you are given a quick peek at the major attractions, told a few background stories, and usually given some suggestions what to see next…
…you do not know the city after such a tour. You do not understand all you have seen and heard. You do not know how to navigate the formal and informal rules that govern life in the city…
…to really know a city, you have to live in it, often for years.
簡而言之,編程語言是 City,而開發者則是 Traveller——這是一個很有意思的比喻,在這篇文章里,我試圖延續這個類比(Analogy)——把這個類比放大到初學,掌握,了解以至精通一門技術的層面。
不過需要注意:我自己并沒有精通哪一門技術——所以這篇文章的內容是值得懷疑(susceptible)的,但它可以作為一個不錯的參考。
0. Stranger(陌生人)
使用一項技術最初的層次就是聽說過沒用過——就像我們之中的大多數人都聽過南極,聽過北極,知道南極有企鵝,北極有北極熊,但是卻從來沒有去過南極或北極。
Stranger 具有以下的特征:
以我本人和 RoR 來打個比方:
所以我是一個 RoR 的 Stranger。
對于新技術,絕大多數人都是 Stranger——但是就我對國內技術社區的觀察,相當數量的 Stranger 意識不到自己還是 Stranger——認為知道一點術語一些人名就算了解一門技術,甚至把它寫在簡歷上(Familiar with XXX)或是開始與別人進行討論(當然都是毫無意義的討論)。
1. Tourist(旅行者)
當開發者真正開始用一項技術作出了可以用的東西:
這時這個開發者就進入到了 Tourist 階段:
根據的學習目的的不同,Tourist 又可以分為 Salesman 和 Sightseer。
1. 1. Salesman(旅行商)
Salesman 是具有明確目的的 Tourist——他們學習技術的目標是為了完成某一項業務,就像旅行商去某地出差是為了賣商品而非觀光一樣。
絕大多數職業開發者在開發生涯中都會扮演 Salesman 這個角色——接到一個任務,涉及到某項不熟悉的技術,需要在限定時間內完成。
1. 2. Sightseer(觀光者)
和 Salesman 相反,Sightseer 學習技術的目標是為了拓展視野,增加見識,而非完成某項特定業務。
具有主動學習精神的開發者在業余時會時常扮演 Sightseer 角色——找到自己認為有價值的新技術或是基礎知識進行系統學習,從而拓寬視野,提高水平。
2. Resident(居住者)
如果一個旅行者在一個地方待了半年以上,那么他/她就會變得原來越像當地人。隨著 Tourist 對某項技術的日益精進,他/她會逐漸演變成這項技術的 Resident:
同 Tourist 一樣,根據使用技術的目標不同,Resident 可以分為 Worker 和 Craftsman:
2. 1. Worker(工人)
技術是 Worker 的謀生手段,一個優秀的 Worker 應具備以下特征:
2. 2. Craftsman(工匠)
同 Worker 不同,技術并非 Craftsman 的謀生手段,而是某種“副業”——用來提升聲望,修煉開發水平。
一個優秀的 Craftman 往往具備以下特點:
3. Architect(架構者)
有想法且有能力的人在一個地方待久了都會有將這個地方變的更好的沖動——一種方式是從源頭出發,推翻舊制度建立新社會,也就是革命;另一種方式則是保留現有的制度,對其進行溫和但持續的改進,也就是改良。
技術也是如此,任何技術都跟不上開發者成長的腳步,當這種差距到達一定程度時,就會有卓越的開發者站出來,創造出新的技術,他們就是 Architect:
如果你看過 Matrix 2: Reloaded
就會知道 Architect 這個詞放在這里再好不過。
根據目標不同,Architect 分為 Reformist 和 Revolutionist。
3. 1. Reformist(改良者)
改良者的目標:把現有技術變的更好。(Makes existing technology better)
例如:
3. 2. Revolutionist(革命者)
革命者的目標:用更好的技術取代現有技術。(Replaces existing technology with better one)
例如:
小結
這篇文章利用 A Tour of C++里的隱喻,把學習/使用技術分成了四個層次七個頭銜:
然后給出了各個頭銜所應具備的特征和能力。
關于同類文章
這些文章的共同點:
本文的應用場景
考察狀態
以我自己對編程語言的掌握為例:
將上面的列表轉置:
結合這些頭銜的定義,一目了然。
制定計劃
運用本文的詞匯,可以進行非常精煉的計劃制定:
以上。
網載 2014-07-02 10:01:32
稱謂:
内容: