綠毛肉粽

          大海從魚躍,長空任鳥飛。(此博客已停止更新,新地址:blog.csdn.net/evangel_z)

           

          程序員水平分級 你屬于哪一類?(轉(zhuǎn))

          導(dǎo)讀:近日,whattofix.com刊登了一篇Daniel Markham的文章《What Level Programmer Are You?》,文內(nèi)將參差不齊的程序員按照技術(shù)水平分為從“讀寫”到“上帝”,共十一個階段,以幫助廣大程序員找到自身定位并從中發(fā)現(xiàn)自己發(fā)展方向。以下是文章摘要:

          隨著技術(shù)發(fā)展,編程悄然融入了我們的生活。我們已然離不開那些程序和編程語言。很多人都在不同程度地談?wù)撝绾尉幊蹋舱Q生出很多編程語言排行,那么程序員到底應(yīng)該如何分級呢?

          首先要明白什么是程序員。設(shè)計自己的Apache Web服務(wù)器的家伙?制作一個復(fù)雜Excel的家伙?還是能自己開發(fā)RPG的家伙?Minecraft的玩家?這些都屬于程序員的哪一個級別呢?當(dāng)我們說:“每個人都需要了解編程”,這句話意味著什么?

          所以,我們需要制定一個程序員的等級,以便讓程序員們了解自己所處的環(huán)境和發(fā)展方向。

          Level 1,讀寫——他們了解設(shè)置Web服務(wù)器的方法,在普通情況下能夠通過配置方式獲取工作所需要的東西。他們有使用文本編輯器和文件系統(tǒng)的基礎(chǔ)知識,還擁有移動和操作文件的能力,如ZIP和FTP。也能在結(jié)構(gòu)中使用抽象符號、解析方式以及系統(tǒng)技能。

          Level 2,腳本——能夠編寫線性腳本告訴電腦要做什么,能夠?qū)W習(xí)和使用自己的符號。如果有足夠的時間和書面指導(dǎo),他們可以使用bash或VB編寫一些簡單腳本,為自己做些實用的事情。

          Level 3,管理員——這些人了解庫和API,并有能力學(xué)習(xí)更多。他們知道不管使用什么腳本語言都需要連接庫。如果他們遇到問題,可以通過閱讀使用手冊或是在網(wǎng)上搜索庫來解決。在工作中他能夠發(fā)現(xiàn)或是開發(fā)自己的符號(使用struct編寫函數(shù)或是聲明)。大多數(shù)系統(tǒng)程序員都處在這個等級階段,Excel的初級宏系統(tǒng)用戶也同樣處在這個階段。

          Level 4,高級實踐者——剛開始接觸耦合性與內(nèi)核,他們能編寫自己的對象化腳本(有公有/私有成員和方法)。這些人能玩轉(zhuǎn)技巧,了解庫和構(gòu)建類。如果不使用類,他們也能夠創(chuàng)建自己的模塊或是代碼文件。高級腳本用戶可遠(yuǎn)不止這樣,有一些Excel技巧經(jīng)驗豐富的股票經(jīng)紀(jì)人,他們使用自己VBA作為基礎(chǔ)代碼,而沒有意識到自己處于這個級別。

          Level 5,掌握多種技能——一旦上升到這個級別,將會遇到各種各樣的麻煩。常見編程下一階段就是能夠使用多重框架。這些人可以編寫C#,也知道如何創(chuàng)建表格和編寫SQL語句;可以編寫C,同時也會使用JavaScript和HTML。這兩個技能并不代表他們就是大師,只是要學(xué)會在理解同一個問題上,需要通過多種不同的方式來找尋答案。

          Level 6,初級構(gòu)架師——這階段的人才算是真正的從事編程工作。他們每天的工作就是要深入了解庫和API。并不要求他們必須記住這些,但要了解用不同的模式去實現(xiàn)自己的目標(biāo)。想要在Win32中繪制?可能需要一些GDI資源句柄,他們知道句柄是在系統(tǒng)表某處的一個UInt32 hash——常見的Win32范例。想在自己的庫中添加jQuery?新庫里有很多格式,他們應(yīng)該知道怎么做并且能解釋其工作方式。與此同時,也要開始學(xué)習(xí)如何重構(gòu)自己的代碼并突顯亮點,增強(qiáng)其代碼的質(zhì)量,慢慢地你會理解。

          Level 7,資深構(gòu)架師——他們的時間是用來創(chuàng)建自己的API、平臺或是庫。也許這是一個大項目的必需品,也許只是他們個人想把自己的學(xué)識推廣出去。他們開發(fā)的系統(tǒng)為用戶解決實際問題,所面對的受眾群是Level 5程序員。在這個階段需要深入OOAD,模板和實踐。我們大多數(shù)人在剛開始都會搞得一團(tuán)糟,不能理解怎么用更加簡單的方法將復(fù)雜事情簡易化。這個階段需要歷經(jīng)很長時間,需要不斷修正錯誤,開發(fā)高質(zhì)量的系統(tǒng)并創(chuàng)建更復(fù)雜、靈活性高的庫。當(dāng)他們從外面接受幾個月的特定培訓(xùn)回來,肯定希望團(tuán)隊其他人都能理解他做了什么。

          Level 8,詮釋者——在某些時候,希望這些人能意識到大量復(fù)雜信息投入結(jié)構(gòu)和構(gòu)架中可以更好地形容特定域的語言,其受眾群體是Level 4程序員。代碼的復(fù)雜性增大,就能減少代碼的數(shù)量,DSL開放可以將代碼展示到各種地方。總之,他們將成為程序員使用腳本語言方面的作家。通過易于使用的腳本和導(dǎo)向?qū)⑺麄兊南到y(tǒng)開放給初學(xué)者。可以分別學(xué)習(xí)這些技能,但大多數(shù)情況是在復(fù)雜的結(jié)構(gòu)后,最終走向DSL的道路。很快就能看到最初規(guī)模:利用自己編寫的DSL能夠很好的理解問題。

          Level 9,函數(shù)式編程——慢慢接近獎金,他們要開始學(xué)習(xí)如何函數(shù)式編程。其受眾群是Level 3的程序員。函數(shù)式編程是必不可少的,幫助他們輕松地脫離DSL,并能夠大幅度減少代碼數(shù)量來解決問題,同時擁有較高的擴(kuò)展性。某些功能語言在系統(tǒng)運(yùn)行時可以hot–swap,慢慢就會感覺到已經(jīng)接近先進(jìn)水平。函數(shù)式編程是一切問題的答案,它可以減少Bug,提升開發(fā)效率,但代碼也相對來說很難學(xué)。程序員的腦海里需要時刻記憶很多東西——他們必須要記住繁瑣的復(fù)雜符號。但是,結(jié)根到底函數(shù)式編程只是道路上的一個階段,就像OOAD一樣。

          Level 10,面向語言設(shè)計師——他們查看所有新創(chuàng)建的編程語言程序。惟一的區(qū)別是新語言應(yīng)該做什么。他們了解如何開發(fā)面向?qū)ο笳Z言,語言功能和腳本語言,知道每一個語言在何時何地的用途。其受眾群是Level 2程序員。他們對每一個項目都會問:“這個項目我們需要什么樣的語言?”在項目完結(jié)后他們將會得到一個很好的工具,既解決了問題并易于理解還擴(kuò)展了入門級程序員。大多數(shù)項目不需要面向語言設(shè)計師。

          上帝級別,計算機(jī)科學(xué)家——要么就是編程的頂峰要么就不存在,這個取決于自己的觀點。這個就是科學(xué)規(guī)劃,在里面有很多很酷的東西。任何一個人都是其受眾群體。但重點不是在于做人們想要的東西,而是促進(jìn)學(xué)術(shù)的發(fā)展。因為大多數(shù)編程能力水平都是基于人而言,人們居住在世界各地,也是必要條件之一。如何簡單的在兩國之間相互來往?

          你在這里可能受到很多啟發(fā),例如,首先學(xué)習(xí)函數(shù)式編程再學(xué)習(xí)OOP。你也可以開發(fā)自己的編譯器,這不是大學(xué)的樂趣嗎?或是程序集,或是真正理解集理論,或是如何開發(fā)適用于數(shù)據(jù)庫與編程數(shù)據(jù)的結(jié)構(gòu),或是開發(fā)你的第一個編程工具。

          這些是我所看到的大多數(shù)程序員所遵循的道路。

          原文鏈接:whattofix.com
          你認(rèn)為自己屬于哪一級別的程序員?
          Level 1,讀寫
          Level 2,腳本
          Level 3,管理員
          Level 4,高級實踐者
          Level 5,掌握多種技能
          Level 6,初級構(gòu)架師
          Level 7,資深構(gòu)架師
          Level 8,詮釋者
          Level 9,函數(shù)式編程
          Level 10,面向語言設(shè)計師
          Level God,計算機(jī)科學(xué)家
           

           

          posted on 2012-02-18 15:39 綠毛肉粽 閱讀(1092) 評論(2)  編輯  收藏

          評論

          # re: 程序員水平分級 你屬于哪一類?(轉(zhuǎn)) 2012-02-19 14:53 何楊

          Title并不重要,關(guān)鍵是薪水和自我實現(xiàn)。  回復(fù)  更多評論   

          # re: 程序員水平分級 你屬于哪一類?(轉(zhuǎn)) 2012-02-19 15:07 綠毛肉粽

          That's right~  回復(fù)  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計

          公告

          此博客已停用,新地址:
          blog.csdn.net/evangel_z

          常用鏈接

          留言簿

          隨筆檔案

          Common

          Freedom

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 龙州县| 张家界市| 葵青区| 西乌| 沐川县| 顺昌县| 汉阴县| 厦门市| 思南县| 浮山县| 晋宁县| 青铜峡市| 桓台县| 连州市| 保靖县| 万盛区| 安顺市| 中牟县| 五常市| 象山县| 乌拉特前旗| 宜宾市| 丹东市| 四川省| 明水县| 且末县| 高陵县| 武鸣县| 和平区| 澄迈县| 麦盖提县| 分宜县| 揭东县| 西安市| 邹城市| 阳江市| 简阳市| 巫溪县| 红河县| 前郭尔| 和政县|