不是每一個寫代碼的都是程序員。這里,我把程序員定義為以編程為生的人。我認為世界上存在四類程序員:科學(xué)家、碼農(nóng)、專家和工匠。下面我一一介紹自己的觀點。
科學(xué)家,與其說他們是程序員,不如說他們是數(shù)學(xué)家。他們發(fā)明了各種理論、算法和術(shù)語,教科書上那深入的證明和計算也出自他們之手,其他的程序員都或多或少受益于他們的成果。有時,他們的一篇論文能改變整個業(yè)界的思維方式,但他們通常不會也不喜歡把那驚世駭俗的理論商業(yè)化。相比之下,他們更喜歡沉浸在科學(xué)的象牙塔里,自得其樂,好不快活。他們是程序員中最不經(jīng)常寫程序的人,甚至有一些大師一輩子都沒寫過程序,你也許認為這違反了我們開頭對程序員的定義,可誰說編程非要用鍵盤呢?
碼農(nóng),這個詞匯來自網(wǎng)絡(luò)上程序員的自嘲。但在這里,我把他定義為軟件的主體實現(xiàn)者。正如農(nóng)民工兄弟一樣,他們是軟件大廈的實際締造者,他們通常熟悉或精通一到兩門語言,在現(xiàn)有的架構(gòu)下進行開發(fā)。他們是程序員中的藍領(lǐng),干著某種程度上的體力活,但這并不是什么壞事,事情總要有人做,并且編程的自由行賦予了碼農(nóng)很大的創(chuàng)造和學(xué)習(xí)空間。如果承認自己是個碼農(nóng)并樂于所從事的工作,那也是件極其美好的事,可問題在于很多人并不是自己愿意做碼農(nóng),而是被迫成為了碼農(nóng),他們本應(yīng)是音樂家、運動員或者是商人,可因為種種原因成為了碼農(nóng),干著他們認為枯燥且重復(fù)的體力活,所以他們不開心,這種狀態(tài)下工作身心俱疲,也就是他們最容易發(fā)出程序員吃青春飯,三十歲以后還寫程序沒出息,應(yīng)該轉(zhuǎn)管理之類的蠢話。可當他們真的成為了管理者,通常情況下,只有極少部分人找到了自己喜歡做的事,其他大部分碼農(nóng)仍將繼續(xù)他們的抱怨。綜上,碼農(nóng)是程序員中占比最大的群體,他們的可塑性最高,有剛學(xué)習(xí)編程的中學(xué)生,有剛參加工作的畢業(yè)生,也有工作多年仍樂于戰(zhàn)斗在第一線的資深工程師;作為碼農(nóng),首先要承認自己的身份,然后找到自己的興趣與方向,或者樂于做一輩子碼農(nóng),或者準備向其他三類程序員轉(zhuǎn)換,再或者換個行業(yè),追尋自己最初的夢想。
專家,他們在軟件行業(yè)中摸爬滾打多年,見多識廣且精于一個或多個領(lǐng)域。他們在公司里通常被稱之為高級程序員,架構(gòu)師或是CTO,他們通常設(shè)計軟件大廈的結(jié)構(gòu),然后安排碼農(nóng)去實現(xiàn),或者自己寫一些核心代碼。他們經(jīng)驗豐富,具有技術(shù)前瞻性,能夠未雨綢繆,提前做出反應(yīng)以應(yīng)對軟件大廈腐朽的趨勢和業(yè)界的技術(shù)變化。他們性格單純,喜歡自己的工作,且薪水不菲,通過閱讀科學(xué)家的論文來保持與時代共同進步。軟件行業(yè)很特殊,對于制造業(yè),杰出者與平庸者帶來的結(jié)果差距通常只有一到兩倍,可在軟件行業(yè)恐怕用千萬倍形容都不為過。所以專家是公司的寶貝,任何一家公司都要不懈余力去爭取或培養(yǎng)專家;同時,成為專家通常也是很多碼農(nóng)的終極夢想。因此,如果你是一位專家,請接受我致以的崇高敬意。
工匠,他們是很特殊的程序員,與其他程序員關(guān)心技術(shù)本身相比,他們更關(guān)注實現(xiàn)的結(jié)果,他們是把科學(xué)家論文商業(yè)化的實踐者。對他們而言,重要的不是技術(shù)本身,而是利用技術(shù)創(chuàng)造偉大的產(chǎn)品。因此,你很難用前端、后臺、DBA、安全工程師定義他們,為了創(chuàng)造偉大的產(chǎn)品,他們愿意學(xué)習(xí)任何技術(shù),有些淺嘗而止,有些因為需要或興趣而精通無比。他們通常具有叛逆精神,本能地抵制權(quán)威,喜歡挑戰(zhàn)某個領(lǐng)域的領(lǐng)導(dǎo)者,具有傳統(tǒng)意義的黑客精神。他們對自己和別人都極其嚴格,具有很強的控制欲,喜歡插手編程之外與產(chǎn)品有關(guān)的事物,如設(shè)計、UI、市場等等;因為他們不希望因為某個環(huán)節(jié)的失誤而降低了產(chǎn)品的影響力,雖然他們并不總是對的。他們喜歡編程,但編程通常并不占據(jù)生活的全部,他們一定會有一些與大眾眼中程序員氣質(zhì)不符的愛好,如吹笛子,打劍道,玩音樂,繪畫,種地,旅行等等。他們特立獨行,性格倔強,工作瘋狂,只愿和優(yōu)秀的人合作。因為如此種種,在一般的企業(yè)中,工匠很難共事,他們總會覺得自己的才華受到了限制,周圍的人跟不上他的節(jié)奏;他們在某種意義上是公司的不穩(wěn)定因素,要么是天使,要么是魔鬼;絕大部分的企業(yè)不需要工匠,但對偉大或立志偉大的企業(yè)而言,工匠比專家還重要,專家可以把現(xiàn)有的產(chǎn)品做到行業(yè)領(lǐng)先,但工匠可以創(chuàng)造新的產(chǎn)品從而改變游戲規(guī)則。因為適合工匠的企業(yè)如此至少,他們中的有些人選擇自己創(chuàng)辦一個。
以上是個人對程序員的分類,科學(xué)家、碼農(nóng)、專家、工匠;每一個程序員依據(jù)技術(shù)能力,性格習(xí)慣一定會找到自己的類型,但通常或多或少都會具有其他類型的氣質(zhì),有工匠氣質(zhì)的科學(xué)家,喜歡與碼農(nóng)并將作戰(zhàn)的專家等等。對于每一位程序員,重要的不是你現(xiàn)在屬于哪種類型的程序員,而是找到你希望成為的那種程序員,并為之努力。每一位程序員,都會有自己的精彩。
-
程序員
+關(guān)注
關(guān)注
4文章
951瀏覽量
29799
發(fā)布評論請先 登錄
相關(guān)推薦
評論