• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 4,  comments - 13,  trackbacks - 0

            [譯文]程序員能力矩陣 Programmer Competency Matrix

            注意:每個層次的知識都是漸增的,位于層次n,也蘊涵了你需了解所有低于層次n的知識。
            計算機科學 Computer Science
             2n (Level 0)n2 (Level 1)(Level 2)log(n) (Level 3)Comments
            數據結構不知道數組和鏈表的差異能夠解釋和使用數組,鏈表,字典等,并且能夠用于實際的編程任務。了解基本數據結構時間和空間的折中,比如數組vs 鏈表,能夠解釋如何實現哈希表和處理沖突,了解優(yōu)先隊列及其實現。高等的數據結構的知識,比如B-樹、二項堆、斐波那契堆、AVL樹、紅黑樹、伸展樹、跳躍表以及前綴樹等。
            算法不能夠找出一個數組各數的平均值(這令人難以置信,但是我的確在應聘者中遇到過)基本的排序,搜索和數據的遍歷和檢索算法。樹,圖,簡單的貪婪算法和分而治之算法,能夠適度了解矩陣該層的含義。能夠辨識和編寫動態(tài)規(guī)劃方案,良好的圖算法知識,良好的數值估算的知識,能夠辨別NP問題等。Working with someone who has a good topcoder ranking would be an unbelievable piece of luck!
            編程體系不知道何為編譯器、鏈接器和解釋器。對編譯器、鏈接器、解釋器有基本的了解。知道什么是匯編代碼以及在硬件層如何工作。有一些虛擬內存和分頁知識。了解內核模式vs用戶模式,多線程,同步原語以及它們如何實現,能夠閱讀匯編代碼。了解網絡如何工作,了解網絡協議和socket級別編程。了解整個程序堆棧、硬件(CPU+內存+中斷+微碼)、二進制代碼、匯編、靜態(tài)和動態(tài)鏈接、編碼、解釋、JIT(just-in-time)編譯、內存碎片回收、堆、棧、存儲器編址…
            軟件工程 Software Engineering
             2n (Level 0)n2 (Level 1)(Level 2)log(n) (Level 3)Comments
            源碼版本控制通過日期備份文件夾VSS和初級的CVS/SVN用戶熟練地使用CVS和SVN特性。知道如何分支和歸并,使用程序庫補丁安裝特性等有分布式VCS系統(tǒng)的知識。嘗試過Bzr/Mercurial/Darcs/Git
            自動化編譯只知道在IDE下編譯知道如何編譯在命令行下編譯系統(tǒng)能夠安裝一個腳本構建基本的系統(tǒng)能夠安裝一個腳本來構建系統(tǒng)并且歸檔,安裝程序,生成發(fā)布記錄和給源碼控制中的代碼分配標簽。
            自動化測試認為所有的測試都是測試員的工作。能夠編寫自動化的單元測試,能夠為正在編寫的代碼提出良好的測試用例。按照TDD (Test Driven Development)方式編寫代碼。了解并且能夠有效自動化安裝,載入/性能和UI測試
            程序設計 Programming
             2n (Level 0)n2 (Level 1)(Level 2)log(n) (Level 3)Comments
            問題分解只有直線式的代碼,通過復制粘貼來復用能夠把問題分散到多個函數中能夠想出可復用的函數/對象來解決大題的問題使用適宜的數據結構和算法,寫出通用的/面向對象的代碼來封裝問題的易改變的層面。
            系統(tǒng)分解N想不出比單一的文件/類更好的層面如果不在同一平臺或沒采用相同的技術,能夠把問題空間和設計方案分解。能夠設計跨技術/平臺的系統(tǒng)。能夠在多個產品線和與外部體系一體化中虛擬化和設計復制的系統(tǒng)。同時也能夠設計支持系統(tǒng)監(jiān)視、報告、故障恢復等。
            交流不能向同伴表達想法/主意。匱乏拼寫和語法的能力。同伴能了解你在說什么。有良好的拼寫和語法能力。能夠和同伴進行高效的交流能夠使用清晰的方式了解和交流想法/設計/主意/細則,能適應每種環(huán)境的交流This is an often under rated but very critical criteria for judging a programmer. With the increase in outsourcing of programming tasks to places where English is not the native tongue this issue has become more prominent. I know of several projects that failed because the programmers could not understand what the intent of the communication was.
            同一文件中代碼組織同一文件中組織沒有依據按照邏輯性或者易接近的方法代碼分塊和對于其他源文件來說是易于是釋,引用其他源文件時有良好的注釋文檔頭部有許可聲明,總結,良好的注釋,一致的空格縮進。文檔外觀美觀。
             2n (Level 0)n2 (Level 1)(Level 2)log(n) (Level 3)Comments
            跨文件代碼組織沒夠想過給代碼跨文件組織相關文件按文件夾分組每個物理文件都有獨立的目的,比如一個類的定義,一個特性的實現等。代碼在物理層組織緊密,在文件名上與設計和外觀相匹配,可以通過文件分布方式洞察設計理念。
            源碼樹組織一切都放在一個文件夾內初步地將代碼分散進對應邏輯的文件夾。沒有循環(huán)依賴,二進制文件,庫,文檔,構建,第三方的代碼都組織進合適的文件夾內。源碼樹的物理布局與邏輯層次、組織方式相匹配。可以通過目錄名稱和組織方式洞察設計理念。The difference between this and the previous item is in the scale of organization, source tree organization relates to the entire set of artifacts that define the system.
            代碼可讀性單音節(jié)的名稱 (在國內應該是那些類似用漢語拼音命名的習慣)對文件、變量、類、方法等,有良好的命名。沒有長函數、注釋解釋不常規(guī)的代碼,bug修復,代碼假設。代碼假設驗證使用斷言,自然的代碼流,沒有深層嵌套的條件和方法
            防御性編碼不知道這個概念檢查代碼中所有的參數,對關鍵的假設進行斷言確保檢查了返回值和使代碼失敗的異常。有自己的庫來幫助防御性編程、編寫單元測試模擬故障
             2n (Level 0)n2 (Level 1)(Level 2)log(n) (Level 3)Comments
            錯誤處理只給樂觀的情形編碼基本的代碼錯誤處理,拋出異常/生成錯誤確保錯誤/異常留在程序中有良好的狀態(tài),資源,連接,內存都有被合適的清理。在編碼之前察覺可能出現的異常,在代碼的所有層次中維持一致性的異常處理策略,提出整個系統(tǒng)的錯誤處理準則。
            IDEIDE大部分用來進行文本編輯了解其周圍的接口,能夠高效地通過菜單來使用IDE了解最常操作的鍵盤快捷鍵編寫自定義宏
            API需要頻繁地查閱文檔把最頻繁使用的API記在腦子里廣闊且深入的API知識。為了使實際任務中常用API使用更加便捷,編寫過API的上層庫,填補API之間的缺口。E.g. of API can be Java library, .net framework or the custom API for the application
            框架沒有使用過主平臺外的任何框架聽過但沒用過平臺下流行的可用框架在專業(yè)的職位中使用過一個以上的框架,通曉各框架的特色。某框架的作者
             2n (Level 0)n2 (Level 1)(Level 2)log(n) (Level 3)Comments
            需求分析接受給定的需求和代碼規(guī)格能對規(guī)格的遺漏提出疑問了解全面情況,提出需要被規(guī)格化的整體范圍。能夠提出更好的可選方案,根據經驗的浮現給出需求
            腳本不具備腳本工具的知識批處理文件/shell腳本Perl/Python/Ruby/VBScript/Powershell寫過并且發(fā)表過可重用的代碼
            數據庫認為Excel就是數據庫知道基本的數據庫概念,規(guī)范化、ACID(原子性Atomicity、一致性Consistency、隔離性Isolation、持久性Durability)、事務化,能夠寫簡單的select語句能夠牢記在運行時必要查詢中設計良好的規(guī)范化數據庫模式, 精通用戶視圖,存儲過程,觸發(fā)器和用戶定義類型。知道聚集與非聚集索引之間的差異。精通使用ORM(Object Relational Mapping對象關系映射)工具能做基本的數據庫管理,性能優(yōu)化,索引優(yōu)化,編寫高級的select查詢,能夠使用相關sql來替換游標,理解數據內部的存儲,了解如何鏡像、復制數據庫。知道兩段數據提交如何工作
            經驗 Experience
             2n (Level 0)n2 (Level 1)(Level 2)log(n) (Level 3)Comments
            專業(yè)語言經驗命令式語言和面向對象語言命令式語言,面向對象語言和說明型語言(SQL),如果了解靜態(tài)類型vs動態(tài)類型,弱類型vs強類型則有加分函數式語言,如果了解延緩求值,局部套用函數,延續(xù)則有加分并發(fā)語言(Erlang, Oz) 邏輯語言(Prolog)
            專業(yè)平臺經驗12-34-56+
            專業(yè)經驗年齡12-56-910+
            領域知識沒有該領域的知識在該領域中曾經至少為一個產品工作過在同一領域中為多個產品工作過領域專家。在該領域設計和實現數種產品/方案。精通該領域使用的標準條款和協議
            學識 Knowledge
             2n (Level 0)n2 (Level 1)(Level 2)log(n) (Level 3)Comments
            工具知識僅限于主要的IDE(VS.Net, Eclipse等)知道一些流行和標準工具的備選方案對編輯器、調試器、IDE、開源的備選方案有很好的了解。比如某人了解大多數Scott Hanselman的威力工具列表中的工具,使用過ORM工具。實際地編寫過工具和腳本,如果這些被發(fā)布則有加分
            語言接觸命令式語言和面向對象語言命令式語言、面向對象語言和說明型語言(SQL),如果了解靜態(tài)類型vs動態(tài)類型、弱類型vs強類型則有加分函數式語言,如果了解延緩求值、局部套用函數、continuations (源于scheme中的一種高級控制結構)則有加分并發(fā)語言(Erlang, Oz) 邏輯語言(Prolog)
            代碼庫知識從來沒有查詢過代碼庫基本的代碼層知識,了解如果構建系統(tǒng)良好的代碼庫工作知識,實現過幾次bug修復或者完成了一些細小的特性實現了代碼庫中多個大型特性,能夠輕松地將多數特性的需求變更具體化,從容地處理bug修復。
            下一代技術知識從來沒聽說過即將到來的技術聽說過某領域即將到來的技術下載過alpha preview/CTP/beta版本,并且讀過一些文章和手冊試用過預覽版而且實際地構建過某物,如果共享給其他人的話則有加分
             2n (Level 0)n2 (Level 1)(Level 2)log(n) (Level 3)Comments
            平臺內部對平臺內部毫無所知有平臺基本的內部工作的知識深度的平臺內部知識,能夠設想平臺如何將程序轉換成可執(zhí)行代碼。編寫過增強平臺或者為其平臺內部提供信息的工具。比如,反匯編工具,反編譯工具,調試工具等。
            書籍菜鳥系列,21天系列,24小時系列,蠢貨系列...《代碼大全》,《別讓我思考》, 《精通正則表達式》《設計模式》,《人件》,《代碼珠璣》,《算法設計手冊》,《程序員修煉之道》,《人月神話》《計算機程序設計與解釋》,《事務處理:概念與技術》,《計算機程序設計模型》,《計算機程序設計藝術》,《數據庫系統(tǒng)導論》 C.J Date版,《Thinking Forth》 ,《Little Schemer》(沒找到其中譯本)
            博客聽過但是從來抽不出空去接觸閱讀一些科技/編程/軟件工程的博客,并且經常的收聽一些播客維護一些博客的鏈接,收集博主分享的有用的文章和工具維護一個在編程方面,分享有個人見解和思考的博客

            轉載自:http://static.icybear.net/[CN]Programmer%20competency%20matrix.htm
            原文:http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm
            posted on 2010-06-18 22:31 乘風破浪小樹葉 閱讀(141) 評論(0)  編輯 收藏 引用 所屬分類: 技術之路
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            樂者為王

            長風破浪會有時
            直掛云帆濟滄海
            Enjoy your life!
            QQ:345825606

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            收藏夾

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲中文字幕无码久久综合网| 日本一区精品久久久久影院| 久久久国产精华液| 久久亚洲国产精品123区| 久久久国产亚洲精品| 人妻无码αv中文字幕久久琪琪布| 中文字幕人妻色偷偷久久| 99久久精品国产高清一区二区| 99热成人精品免费久久| 色播久久人人爽人人爽人人片AV| 久久精品无码午夜福利理论片| 激情综合色综合久久综合| 亚洲日韩中文无码久久| 国产精品久久久久9999高清| 久久久受www免费人成| 久久人人爽人人爽人人AV东京热| 伊人热人久久中文字幕| 久久综合亚洲色一区二区三区| 久久综合久久综合久久| 久久笫一福利免费导航 | 欧美黑人激情性久久| 久久久久亚洲AV无码专区体验 | 久久影视国产亚洲| 97久久综合精品久久久综合| 青青草原综合久久大伊人导航| 成人久久久观看免费毛片| 亚洲αv久久久噜噜噜噜噜| 久久亚洲AV无码西西人体| 成人a毛片久久免费播放| 精品免费久久久久久久| 99久久精品免费看国产一区二区三区 | 久久精品国产清自在天天线| 99麻豆久久久国产精品免费| 午夜人妻久久久久久久久| 区久久AAA片69亚洲 | 日产精品久久久久久久| 久久www免费人成看片| 思思久久精品在热线热| 久久婷婷五月综合97色直播| 亚洲国产精品无码久久久久久曰 | 久久国产一区二区|