程序員水平分級(jí) 你屬于哪一類?
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
隨著技術(shù)發(fā)展,編程悄然融入了我們的生活。我們已然離不開那些程序和編程語(yǔ)言。很多人都在不同程度地談?wù)撝绾尉幊蹋乙舱Q生出很多編程語(yǔ)言排行。那么程序員到底應(yīng)該如何分級(jí)呢?
首先要明白什么是程序員?設(shè)計(jì)自己的 Apache Web 服務(wù)器的家伙?制作一個(gè)復(fù)雜的 Excel 電子表格的家伙?能自己開發(fā) RPG 的家伙?Minecraft 的玩家?這些都屬于程序員的哪一個(gè)級(jí)別呢?當(dāng)我們說:“每個(gè)人都需要了解編程”,這句話意味著什么? 所以,我們需要制定一個(gè)程序員的等級(jí),以便讓程序員們了解自己所處的環(huán)境和發(fā)展方向。 Level 1,只讀——這些人了解如何設(shè)置 Web 服務(wù)器的方法,在普通情況下能夠通過配置方式獲取工作所需要的東西。作為基礎(chǔ)他們知道如何使用文本編輯器和文件系統(tǒng),還擁有移動(dòng)和操作文件的能力,如 ZIP 和 FTP。也能在結(jié)構(gòu)中使用抽象符號(hào),解析方式以及系統(tǒng)技能。 Level 2,腳本——能夠編寫線性腳本告訴電腦要做什么,能夠?qū)W習(xí)和使用自己的符號(hào)。如果有足夠的時(shí)間和書面指導(dǎo),他們可以使用 bash 或是 VB 編寫一些簡(jiǎn)單腳本,為自己做些實(shí)用的事情。 Level 3,管理員——這些人了解庫(kù)和 API,并有能力學(xué)習(xí)更多。他們知道不管使用什么腳本語(yǔ)言都都需要連接庫(kù)。如果他們遇到問題,可以通過閱讀使用手冊(cè)解決,或是在網(wǎng)上搜索庫(kù)并利用找到的結(jié)果。在工作中他能夠發(fā)現(xiàn)或是開發(fā)自己的符號(hào)(使用 struct 編寫函數(shù)或是聲明)。大多數(shù)系統(tǒng)程序員都處在這個(gè)等級(jí)階段,Excel 的初級(jí)宏系統(tǒng)用戶也同樣處在這個(gè)階段。 Level 4,Object-Dot-Method——?jiǎng)傞_始學(xué)習(xí) coupling 和 cohesion,他們著手組織自己的腳本面對(duì)公共對(duì)象、私有成員和方法。這里有六周編程奇跡,介紹 .NET 程序員。這些人能玩轉(zhuǎn)導(dǎo)向,了解庫(kù)和構(gòu)建類。如果不使用類,他們也能夠創(chuàng)建自己的模塊或是代碼文件。高級(jí)腳本用戶可遠(yuǎn)不止這樣。有一些高級(jí) Excel 商店和股票經(jīng)紀(jì),他們使用自己 VBA 作為基礎(chǔ)代碼,而沒有意識(shí)到自己處于這個(gè)級(jí)別。 Level 5,多重框架——一旦上升到這個(gè)級(jí)別,將會(huì)遇到各種各樣的麻煩。常見編程下一階段就是能夠使用多重框架。這些人可以編寫C#,但也知道如何創(chuàng)建表格和編寫 SQL 語(yǔ)句;可以編寫C,同時(shí)也會(huì)使用 JavaScript 和 HTML。這兩個(gè)技能并不代表他們就是大師,只是要學(xué)會(huì)在理解同一個(gè)問題上,需要通過多種不同的方式來找尋答案。 Level 6,初級(jí)建筑師——這階段的人才算是真正的從事編程工作。他們每天的工作就是要深入了解庫(kù)和 API。并不是要求他們必須記住這些,但是要了解用不同的模式去實(shí)現(xiàn)自己的目標(biāo)。想要在 Win32 中繪制?可能需要一些 GDI 資源句柄。他們知道句柄是在系統(tǒng)表某處的一個(gè) UInt32 hash——常見的 Win32 范例。想在自己的庫(kù)中添加 JQuery?新庫(kù)里有很多格式,他們應(yīng)該知道怎么做并且能解釋其工作方式。與此同時(shí),也要開始學(xué)習(xí)如何重構(gòu)自己的代碼并突顯亮點(diǎn),增強(qiáng)其代碼的質(zhì)量,慢慢的你會(huì)理解。 Level 7,資深架構(gòu)師——他們的時(shí)間是用來創(chuàng)建自己的 API,平臺(tái)或是庫(kù)。也許這是一個(gè)大項(xiàng)目的必需品,也許只是他們個(gè)人想把自己的學(xué)識(shí)推廣出去。他們開發(fā)的系統(tǒng)為用戶解決實(shí)際問題,所面對(duì)的受眾群是 Level 5 程序員。在這個(gè)階段需要深入 OOAD,模板和實(shí)踐。我們大多數(shù)人在剛開始都會(huì)搞得一團(tuán)糟,不能理解怎么用更加簡(jiǎn)單的方法將復(fù)雜事情簡(jiǎn)易化。這個(gè)階段需要?dú)v經(jīng)很長(zhǎng)時(shí)間,需要不斷修正錯(cuò)誤,開發(fā)高質(zhì)量的系統(tǒng)并創(chuàng)建更復(fù)雜、靈活性高的庫(kù)。當(dāng)他們從外面接受幾個(gè)月的特定培訓(xùn)回來,肯定希望團(tuán)隊(duì)其他人都能理解他做了什么。 Level 8,Meta——在某些時(shí)候,希望這些人能意識(shí)到大量復(fù)雜信息投入結(jié)構(gòu)和構(gòu)架中可以更好地形容特定域的語(yǔ)言,其受眾群體是 Level 4 程序員。代碼的復(fù)雜性增大,就能減少代碼的數(shù)量,DSL 開放可以將代碼展示到各種地方。總之,他們將成為程序員使用腳本語(yǔ)言方面的作家。通過易于使用的腳本和導(dǎo)向?qū)⑺麄兊南到y(tǒng)開放給初學(xué)者。可以分別學(xué)習(xí)這些技能,但大多數(shù)情況是在復(fù)雜的結(jié)構(gòu)后,最終走向 DSL 的道路。很快就能看到最初規(guī)模:利用自己編寫的 DSL 能夠很好的理解問題。 Level 9,F(xiàn)unctional Nirvana——慢慢接近獎(jiǎng)金,他們要開始學(xué)習(xí)如何編寫功能規(guī)劃。其受眾群是 Level 3 的程序員。FP 是必不可少的,幫助他們輕松的脫離 DSL,并能夠大幅度減少代碼數(shù)量來解決問題,同時(shí)擁有較高的擴(kuò)展性。某些函數(shù)式編程語(yǔ)言在系統(tǒng)運(yùn)行時(shí)可以 hot–swap,慢慢就會(huì)感覺到已經(jīng)接近先進(jìn)水平。FP 是一切問題的答案。雖然 FP 可以減少 BUG,提升開發(fā)效率,但代碼也相對(duì)來說很難學(xué)。程序員的腦海里需要時(shí)刻記憶很多東西——他們必須要記住繁瑣的復(fù)雜符號(hào)。但是,結(jié)根到底 FP 只是道路上的一個(gè)階段,很多類似 OOAD。 Level 10,面向語(yǔ)言設(shè)計(jì)師——他們查看所有新創(chuàng)建的編程語(yǔ)言程序。惟一的區(qū)別是新語(yǔ)言應(yīng)該做什么。他們了解如何開發(fā)面向?qū)ο笳Z(yǔ)言,語(yǔ)言功能和腳本語(yǔ)言,知道每一個(gè)語(yǔ)言在何時(shí)何地的用途。其受眾群是 Level 2 程序員。他們對(duì)每一個(gè)項(xiàng)目都會(huì)問:“這個(gè)項(xiàng)目我們需要什么樣的語(yǔ)言?”在項(xiàng)目完結(jié)后他們將會(huì)得到一個(gè)很好的工具,既解決了問題并易于理解還擴(kuò)展了入門級(jí)程序員。大多數(shù)項(xiàng)目不需要面向語(yǔ)言設(shè)計(jì)師。 上帝級(jí)別,計(jì)算機(jī)科學(xué)家——要么就是編程的頂峰要么就不存在,這個(gè)取決于自己的觀點(diǎn)。這個(gè)就是科學(xué)規(guī)劃,在里面有很多很酷的東西。任何一個(gè)人都是其受眾群體。但重點(diǎn)不是在于做人們想要的東西,而是促進(jìn)學(xué)術(shù)的發(fā)展。因?yàn)榇蠖鄶?shù)編程能力水平都是基于人而言,人們居住在世界各地,也是必要條件之一。如何簡(jiǎn)單的在兩國(guó)之間相互來往? 你在這里可能受到很多啟發(fā),例如,首先學(xué)習(xí)函數(shù)式編程再學(xué)習(xí) OOP。你也可以開發(fā)自己的編譯器,這不是大學(xué)的樂趣嗎?或是程序集,或是真正理解集理論,或是如何開發(fā)適用于數(shù)據(jù)庫(kù)與編程數(shù)據(jù)的結(jié)構(gòu)。或是開發(fā)你的第一個(gè)編程工具。 這些是我所看到的大多數(shù)程序員所遵循的道路。 該文章在 2012/2/16 14:10:41 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |