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